Evil Foca : Outil d’attaque sur les réseaux IPv4 et IPv6

Dans le cadre des activités de recherche d’Intrinsec sur la sécurité du protocole IPv6, nous avons testé les fonctionnalités d’Evil Foca. Cet article étudie les attaques implémentées et leur pertinence. Evil Foca est un outil conçu par Informatica64 pour tester le niveau de sécurité des réseaux IPv4 et IPv6. La version Alpha sortie le 6 avril 2013, implémente trois types d’attaques : Man in the middle, une de type déni de service et une de détournement de DNS.

Scan réseau :

Au lancement de l’outil, l’utilisateur choisit l’interface réseau qui va être utilisée pour envoyer les paquets. Par défaut, il utilise le Ping ICMPv6 (type 128), avec comme destination, les adresses multicast, ff01::1, ff02::1, ff01::2 et ff02::2, comme illustré dans la capture réseau ci-dessous.

À ce stade, l’outil récupère toutes les réponses des machines existantes sur le réseau, puis envoie un message ICMPv6 de type « Neighbor Solicitation » afin de récupérer les adresses MAC des machines. Une fois les messages « Neighbor Advertisement » reçus, Evil Foca envoie un message ICMPv6 « Parameter problem » – de type 4, avec le champ « code » égal à 0 qui indique l’erreur « unrecognized Next Header type encountered » – à toutes les machines ayant répondu au message « Echo Request » envoyé lors du scan. L’objectif de ce paquet n’étant pas clair, nous avons contacté les développeurs de l’outil concernant son utilité. Sans retour jusqu’ici, ce point sera mis à jour ultérieurement. Pour plus d’information sur le message Parameter problem, se référer à la RFC 2463 section 3.4. Enfin, le processus de découverte de machines est réitéré toutes les 60 secondes.

Evil Foca propose un scan qui utilise les paquets Router Advertisement envoyés à l’adresse multicast ff02::1, sur laquelle toutes les machines du réseau doivent écouter pour recevoir les informations envoyées par les routeurs. En regardant plus en détail le paquet envoyé par Evil Foca, nous constatons qu’il impose au client de ne demander aucune configuration au serveur DHCPv6 tout en positionnant la machine de l’attaquant en tant que routeur avec la plus grande valeur de préférence, comme indiqué dans la capture suivante.

L’utilisateur peut choisir le type de scan qu’il souhaite effectuer en modifiant l’option dans le menu configuration (réglage).

Man in the middle :

Evil Foca implémente l’attaque Man in the middle pour les deux piles réseau IPv6 et IPv4, et ce, en utilisant plusieurs méthodes d’exploitation.

Pour les réseaux IPv6 :

Pour effectuer un Man in the middle sur des réseaux IPv6, Evil Foca propose trois méthodes. La première est d’utiliser le « Neighbor advertisement spoofing » qui consiste à envoyer des messages « Neighbor advertisement » malveillants pour modifier le « Neighbor cache » des machines cibles. La deuxième méthode consiste à utiliser les messages « Router Advertisement » pour se positionner en tant que routeur, ce qui causera la redirection des flux de toutes les cibles vers l’attaquant. La dernière méthode met en oeuvre un serveur DHCPv6 malveillant qui diffusera de fausses informations d’adressage.

Scénario :

Considérons le schéma réseau suivant :

Supposons qu’un attaquant arrive à se connecter au réseau et lance l’outil. Dès son lancement, Evil Foca effectuera un scan du réseau et affichera les résultats. Avant le lancement de l’attaque, le « Neighbor cache » de la machine cible contient un seul enregistrement, celui du routeur.

Pour pouvoir lancer l’attaque, il suffit d’ajouter les cibles puis de cliquer sur le bouton Start. Selon la méthode utilisée, l’outil commencera à envoyer les paquets malveillants pour corrompre le cache de la cible.

Après le lancement de l’attaque, le cache de la machine cible a bien été modifié, avec les adresses IPv6 du routeur légitime, ainsi que celle de l’attaquant. Les adresses du routeur sont toutefois affectées à la même adresse MAC (celle de la machine de l’attaquant) comme illustré ci-dessous.

À ce stade, nous sommes supposés recevoir les paquets en provenance et à destination de la machine cible. Cependant, lors de la phase de recherche de machines, Evil Foca n’a trouvé que les adresses « Link-local » que nous avons utilisé pour la corruption des caches de la machine cible et du routeur. Vu que les machines dans un réseau IPv6 peuvent avoir plusieurs adresses et notamment des adresses Global, nous ne pouvons intercepter que les communications utilisant les adresses « Link-local ». Ce qui peut être vu comme un inconvénient majeur de l’outil. Pour remédier à ce problème, nous pouvons réaliser un scan en utilisant d’autres outils comme Nmap (version 6.0 ou supérieure) qui assure parfaitement la collecte d’adresses « Global », et ensuite ajouter ces adresses à la liste des cibles.

Pour les réseaux IPv4 :

L’attaque Man in the middle implémentée par Evil Foca pour les réseaux IPv4 utilise deux méthodes d’exploitation. L’outil propose de faire de l’ARP Spoofing comme première méthode d’attaque ou d’effectuer un « DHCP ACK injection » comme illustré ci-dessous.

Cette attaque repose sur l’envoi de données erronées à la machine qui demande des informations d’adressage, en utilisant les paquets « DHCP ACK » et les informations diffusées par la machine cliente lors de sa recherche de serveur DHCP.

Attaques par déni de service :

L’attaque par déni de service contre les hôtes ayant la pile IPv6 activée est destinée aux machines Windows. Cette attaque exploite une vulnérabilité dans l’implémentation de NDP « Neighbor Discovery Protocol » (CVE-2012-4669). Lors de cette attaque, Evil Foca envoie plusieurs paquets RA « Router Advertisement » avec des adresses sources différentes, ce qui mènera à la consommation de toutes les ressources CPU et rendra indisponible l’équipement. En ce qui concerne l’attaque par déni de service contre les machines IPv4, l’outil permet de couper la connexion entre deux machines en modifiant le cache ARP de la cible avec un paquet ARP malveillant.

DNS Hijacking :

Evil Foca nous permet de mettre en place l’attaque « DNS Hijacking ». Le principe de cette attaque est de rediriger les requêtes DNS vers un serveur DNS malveillant. Pour réaliser cette attaque, un Man in the middle doit être réalisé au préalable.

Scénario :

Nous allons reprendre le même schéma réseau que présenté précédemment. Pour réaliser une campagne de « phishing », un attaquant a besoin de mettre en place un serveur web, qui simule une page d’authentification d’un site connu, offrant un service de messagerie, « Gmail » à titre d’exemple. Ensuite, pour rediriger les utilisateurs vers le site malveillant, nous utiliserons l’attaque « DNS Hijacking ». Afin de lier le nom de domaine www.gmail.com à l’adresse de l’attaquant comme présenté ci-dessous.

Après le lancement de l’attaque, lorsqu’un utilisateur du réseau voudra accéder au nom de domaine www.gmail.com, l’adresse IP qui sera envoyée au client sera celle de l’attaquant qui héberge le serveur malveillant.

Enfin, la page web sera chargée à partir du serveur web malveillant et ainsi l’attaquant pourra récupérer les informations de connexion rentrées par l’utilisateur.

Conclusion

Evil Foca est encore en développement, ce qui explique sa faiblesse au niveau de la recherche de nœuds. L’outil n’identifie pas les adresses globales des machines IPv6, ce qui limite l’intérêt de l’attaque « Man in the middle », les flux sortants ou entrants au réseau n’étant pas interceptés. Evil Foca contient des attaques intéressantes et spécialement l’attaque « Man in the middle » dans un réseau IPv6 qui n’existe dans aucun outil « user friendly », ce qui démocratise l’accès à ces attaques et augmente le risque de mise en œuvre.

Il existe des solutions qui se positionnent au niveau de la couche 2 pour se protéger contre ce type d’attaque. Notamment des solutions open source comme Rafixd et NDPMon, qui détectent les paquets malveillants qui transitent sur le réseau, ou FHS « First Hop Security », proposée par Cisco qui constitue une solution complète pour se protéger de ce type d’attaque.

La version finale d’Evil Foca implémentera une attaque utilisant IPv6 pour l’interception de flux dans un réseau IPv4, ce qui représentera une réel menace pour les réseaux ayant les deux piles IPv6 et IPv4 activées (pour plus d’information sur l’attaque NAT64/DNS64 se référer au blog d’informatica64). Pour se prémunir de cette attaque il faut désactiver la pile réseau IPv6 si elle n’est pas utilisée.