Attaque DNS Spoofing – Théorie, mise en pratique et contre-mesures.
Rappel : L’article qui va suivre contient des techniques et méthodes qui peuvent s’avérer être dangereuses si elles sont utilisées à mauvais escient. Ce tutoriel a pour unique but de vous enseigner à vous protéger contre les « black-hat » (Hackers mal intentionnés) et ne doit en aucun cas être utilisé contre une entreprise, une organisation ou une administration publique de quelconque pays. Je me dédouane de toute responsabilité en cas de problèmes ou d’incidents de quelque nature que ce soit. Bon visionnage 🙂
Le DNS Spoofing (appelé aussi empoisonnement du cache ARP) est un type d’attaque dans lequel un utilisateur cible est « Forcé » de naviguer vers un faux site Web déguisé pour ressembler à un vrai, dans le but de détourner du trafic ou de voler les informations d’identification des utilisateurs.
Cette attaque est du type Man in the middle. Pour rappel, elle permet à un pirate d’écouter la communication entre deux utilisateurs. Comme son nom l’indique, le pirate agit comme l’homme au milieu qui intercepte la communication / requête en cours entre deux entités, afin de détourner le but final de cette si.
Comment empêcher / limiter ce type d’attaque ?
En tant que visiteur d’un site Web, vous ne pouvez pas faire grand-chose pour empêcher l’usurpation DNS. Au contraire, cela relève davantage des fournisseurs DNS / entreprises (…)
Par conséquent, voici quelques conseils de configuration à mettre en place pour s’en prémunir :
- Mettre en œuvre des mécanismes de détection d’usurpation DNS – il est important d’implémenter un logiciel de détection d’usurpation DNS. Des produits tels que XArp aident le produit contre l’empoisonnement du cache ARP en inspectant les données qui transitent avant de les transmettre.
- Utilisez des protocoles de transfert de données cryptés – L’utilisation du cryptage de bout en bout via SSL / TLS contribuera à réduire les risques qu’un site Web / ses visiteurs soient compromis par l’usurpation DNS. Ce type de cryptage permet aux utilisateurs de vérifier si le certificat numérique du serveur est valide et appartient au propriétaire attendu du site Web.
- Enfin éviter absolument d’avoir la même adresse de DNS et de passerelle, car sinon dans ce cas, un pirate peut s’il a accès au réseau local d’une entreprise « Spoofer » cette adresse de passerelle via une attaque du type ARP Spoofing, et alors contrôler totalement la résolution des noms de domaines. Encore trop d’entreprises, d’administrations ou d’organisations fonctionnent de cette manière ! Cela est réellement dangereux, dans le cas ou une personne mal intentionnée souhaite porter atteinte à l’intégrité du réseau.
Dans la section suivante, je vais justement prendre l’exemple du cas d’un réseau, ou le service DNS, et le routeur dispose de la même adresse IP.
Mise en pratique
Ce tutoriel est réalisé sur Kali Linux 2020.1 (attaquant) et Windows serveur 2019 (cible). J’utilise Vmware Workstation 15 comme Hyperviseur (Type 2).
Kali Linux : 192.168.40.200/24
Windows serveur 2019 : 192.168.40.128/24
Passerelle du réseau : 192.168.40.2
DNS de la victime : 192.168.40.2
Prérequis : Avoir un serveur WEB fonctionnel et démarré sur Kali, (pour la redirection des Requêtes) et l’outil bettercap 2.x. Il est évident, mais je le rappelle quand même que les deux machines doivent pouvoir communiquer entre elles !
Kali 2020.1 n’embarque pas bettercap par défaut, mais il est disponible par la gestionnaire de paquets apt.
apt install bettercap
bettercap
>>> set dns.spoof.domains ubuntu.com (à changer si vous le souhaitez)
>>> set dns.spoof.all true (cible tout le réseau local ex : 192.168.40.0/24)
>>> dns.spoof on
Optionnel : Si la machine cible est déjà allé sur le site ubuntu.com exécuter les commandes suivantes via le terminal de Windows :
arp -d * (Permet de vider le cache de la table ARP)
ipconfig /flushdns
Pinger maintenant le nom de domaine suivant : ubuntu.com
ping ubuntu.com
Vous voyez que l’adresse qui me répond est 192.168.40.200 (Kali), et non une IP publique du site ubuntu.com. Maintenant, nous allons ouvrir un navigateur et tenter d’accéder au site ubuntu.com
Vous voyez que nous somme redirigés non pas vers le vrai site Ubuntu.com, mais sur mon serveur Web apache, ou j’héberge ce site fictif pour faire office d’exemple pour ce tutoriel
Le DNS spoofing est clairement redoutable quand on sait que l’utilisateur peut être trompé sur un ou plusieurs sites tout en continuant sa navigation sur le WEB comme si de rien n’était.
La victime peut continuer a naviguer, sans penser qu’elle à été victime d’une attaque DNS spoofing.
Remarque : Cette attaque est réalisé par le biais du protocole HTTP. Dans le cas d’un site en Https, pensez à configurer notamment votre faux serveur web avec
- un certificat SSL auto signé (Qui provoquera le message d’avertissement habituel)
Selon moi, il n’est pas possible d’utiliser un certificat émis depuis une autorité de certification dans une situation de pentest réelle.
Voilà, c’est la fin de cette démonstration. Je pense que désormais vous saisissez mieux la dangerosité de cette attaque, notamment si elle est couplé avec une attaque de type phishing
à bientôt 🙂
brlndtech
En savoir plus sur Le Guide Du SecOps
Subscribe to get the latest posts sent to your email.