11 novembre 2011

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

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 <METHOD:ARGS> va utiliser les performances d’attaque du cache ARP
- T, –text   va faire apparaitre toute les activités textuel dans votre terminal
- i, –iface <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 <filename>, –write=<filename> 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 <port>, –listen=<port> 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 :

Aucun commentaire:

Enregistrer un commentaire