mitm con Docker

0

Estoy intentando capturar el tráfico entre dos contenedores de Docker ("webserver" y "chrome_client"), usando un contenedor "intermedio" en el modo MITM. Así que tenemos esta topología básica:

[cromo_cliente] - > [intermedio] - > [servidor web]

Esta es una breve descripción de los contenedores:

  • [chrome_client] : contenedor utilizado para iniciar Chrome gráficamente

  • [intermedio] : el contenedor Kali usa ettercap para iniciarlo en modo mitm y capturar el tráfico que pasa.

  • [servidor web] : un simple servidor lighttpd que muestra un simple editor de Markdown.

La forma en que lanzo los contenedores es establecer primero una red aislada, y desplegar los contenedores dentro de ella (como se explica aquí ). Al igual que:

# the isolated network
docker network create --subnet=172.19.0.0/24 --gateway 172.19.0.254 mynet123

ahora, el contenedor "intermedio":

docker run --rm -it --net mynet123 --ip=172.19.0.7 --privileged kali/wireless:ettercap bash

el navegador Chrome:

docker run --rm -d -u=1000:1000 --net mynet123 --ip=172.19.0.4 -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY -v $HOME/EmptyDir:/data -v /dev/shm:/dev/shm --cap-add=SYS_ADMIN image/chrome:latest

y el servidor web (un servidor lighttpd, que muestra un editor de Markdown):

docker run --rm -d --net mynet123 --ip=172.19.0.5 image/markdown:latest

En el contenedor "intermedio", ejecuto:

# First, some settings for forwarding
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv6.conf.all.forwarding=1
sysctl -w net.ipv4.conf.all.send_redirects=0
iptables -A FORWARD -i eth0@if16 -o eth0@if16 -j ACCEPT

# launch mitm to capture anything between the other 2 containers:
ettercap -T -M arp:remote -i eth0 /172.19.0.5// /172.19.0.4//

Ahora, ingrese la URL del navegador Chrome http://172.19.0.5 y no aparecerá nada. Todo está en blanco, mientras que en la salida de ettercap obtengo:

Tue Jun 19 16:19:22 2018 [463117]
TCP  172.19.0.4:51840 --> 172.19.0.5:80 | S (0)


Tue Jun 19 16:19:22 2018 [463119]
TCP  172.19.0.4:51842 --> 172.19.0.5:80 | S (0)

 ... and so on....

No entiendo qué es eso que trata de decirme. Tenga en cuenta que no estoy usando https, por lo que no debería tener ningún problema con los certificados. Derecho?

PD: Mientras tanto, estoy tratando de usar mitmproxy en el "proxy intermedio", pero pensé que podría estar configurando el mitm de manera incorrecta al descartar cualquier problema con los certificados SSL.

EDITAR:

Así que acabo de repetir el procedimiento anterior pero reemplazando el contenedor "Markdown" con un servidor HTTP Python simple, y obtuve el mismo comportamiento. Específicamente, ejecuté esto en el contenedor [servidor web]:

python -m SimpleHTTPServer 80

y no tengo registros en la salida estándar de Python-HTTP (como si no se hubiera realizado ninguna solicitud), mientras que en ettercap (es decir,  en el contenedor [intermedio]) obtengo el mismo resultado que el anterior.

    
pregunta issrc 19.06.2018 - 21:33
fuente

0 respuestas

Lea otras preguntas en las etiquetas