
Tengo una aplicación (el emulador de Android de Google que se ejecuta a través de QEMU) que se ejecuta en Ubuntu dentro de una instancia de Docker. Yo quiero:
- Capture todo el tráfico de red (paquetes) proveniente de una VM que se ejecuta dentro de QEMU.
- Evite que el tráfico de esa VM llegue a Internet mientras deja el resto de la instancia conectada
- Falsificar respuestas a solicitudes realizadas desde esa VM a otros servidores, pretendiendo que yo soy esos servidores
- Haga todo esto de forma automatizada y sin cabeza (sin intervención del usuario, solo scripts)
Al investigar esto descubríhttps://github.com/mandiant/flare-fakenet-ng, que es exactamente lo que necesito. El problema es que no parece funcionar en mi configuración (cada vez que se carga el controlador de red de Fakenet, desactiva todo el tráfico de la red independientemente de las configuraciones y pierdo el control de la instancia de la ventana acoplable). Hice una pregunta al respecto aquí (Habilitar un desviador en fakenet-ng en Ubuntu Linux deshabilita todo el tráfico de red), pero no recibió respuestas.
Como hasta ahora no he logrado solucionar este problema, estoy buscando una forma diferente de lograrlo. ¿Qué herramientas y métodos debo utilizar? ¿Cuáles son sus ventajas y desventajas?
Respuesta1
El propio Android Emulator contiene una implementación de tcpdump y una opción para volcar paquetes en un archivo. Úsalo así emulator -tcpdump {path_to_dump}.pcap {other_options}
.
En cuanto a evitar que llegue a Internet y falsifique respuestas, es posible iniciar el emulador en un grupo de usuarios separado y realizar un filtrado de iptables basado en los GID de los procesos, redirigiendo todo el tráfico proveniente del GID específico a un servidor local, donde se generarían respuestas falsificadas. ser implementado. Algo comohttps://pypi.org/project/spoof/ohttps://pypi.org/project/fake-server/podría funcionar para este caso de uso.