mitm con Docker

0

Sto provando a catturare il traffico tra due container Docker ("server web" e "chrome_client"), usando un contenitore "intermedio" in modalità MITM. Quindi abbiamo questa topologia di base:

[chrome_client] - > [intermedio] - > [Webserver]

Questa è una breve descrizione dei contenitori:

  • [chrome_client] : contenitore utilizzato per avviare graficamente Chrome

  • [intermedio] : contenitore Kali che usa ettercap per avviarlo in modalità mitm e catturare tutto il traffico che passa attraverso.

  • [server web] : un semplice server lighttpd che mostra un semplice editor Markdown.

Il modo in cui lancio i container è innanzitutto l'impostazione di una rete isolata e la distribuzione dei contenitori al suo interno (come spiegato qui ). Ad esempio:

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

ora, il contenitore "intermedio":

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

il browser 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

e il server web (un server lighttpd, che mostra un editor Markdown):

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

Nel contenitore "intermedio" eseguo:

# 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//

Ora inserisci l'URL del browser Chrome http://172.19.0.5 e non viene visualizzato nulla. Tutto è vuoto, mentre nell'output di ettercap ottengo:

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....

Non capisco cosa stia cercando di dirmi. Tieni presente che non utilizza https, quindi non dovrei avere problemi con i certificati. Giusto?

PD: Nel frattempo, sto cercando di utilizzare mitmproxy nel "proxy intermedio, ma ho pensato che potrei impostare il mitm nel modo sbagliato scartando qualsiasi problema con i certificati SSL.

EDIT:

Quindi ho appena ripetuto la procedura di cui sopra ma sostituendo il contenitore "Markdown" con un semplice server HTTP Python, e ho ottenuto lo stesso comportamento. In particolare, l'ho eseguito nel contenitore [webserver]:

python -m SimpleHTTPServer 80

e I non ho log nello stdout HTTP Python (come se non fosse stata fatta nessuna richiesta), mentre in ettercap (cioè  nel contenitore [intermedio] ottengo lo stesso risultato di cui sopra.

    
posta issrc 19.06.2018 - 21:33
fonte

0 risposte

Leggi altre domande sui tag