Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

Protocoles réseau

Protocoles de résolution d'hôte 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 en cas d'échec du DNS. De même, les systèmes Apple et Linux utilisent mDNS.

  • Ces protocoles sont vulnérables à l'interception et au spoofing en raison de leur nature de diffusion non authentifiée sur UDP.

  • Responder peut être utilisé pour se faire passer pour des services en envoyant des réponses forgées aux hôtes interrogeant ces protocoles.

  • Des informations supplémentaires sur l'usurpation de service à l'aide de 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 en cas d'échec du DNS, en utilisant LLMNR et NBT-NS en dernier recours.

  • Responder peut automatiser les attaques WPAD, redirigeant les clients vers des serveurs WPAD malveillants.

Responder pour l'empoisonnement 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 une sonde plus agressive (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 de WPAD peut être activée avec : responder -I <Interface> --wpad

  • Les demandes NetBIOS peuvent être résolues vers l'IP de l'attaquant, et un proxy d'authentification peut être configuré : responder.py -I <interface> -Pv

Empoisonnement DHCP avec Responder

  • L'usurpation des réponses DHCP peut empoisonner de manière permanente les informations de routage d'une victime, offrant une alternative plus furtive à l'empoisonnement 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 elle nécessite une manipulation soigneuse pour éviter les perturbations du réseau.

Capture de mots de passe avec Responder

  • Responder se fera passer pour des services en utilisant les protocoles mentionnés ci-dessus, capturant des mots de passe (généralement un défi/réponse NTLMv2) lorsque l'utilisateur tente de s'authentifier contre les services usurpés.

  • Des tentatives peuvent être faites pour rétrograder vers NetNTLMv1 ou désactiver ESS pour faciliter le craquage des mots de passe.

Il est crucial de noter que l'utilisation de ces techniques doit être légale et éthique, en garantissant une autorisation appropriée et en évitant les perturbations ou l'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 est passé d'un script PowerShell à un binaire C#, avec Inveigh et InveighZero comme versions principales. Les paramètres détaillés et les instructions peuvent être trouvés dans le wiki.

Inveigh peut être utilisé via PowerShell :

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

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

Inveigh.exe

Attaque de relais NTLM

Cette attaque exploite les sessions d'authentification SMB pour accéder à une machine cible, accordant un shell système en cas de succès. Les principaux prérequis incluent :

  • L'utilisateur authentifiant doit avoir un accès administrateur local sur l'hôte relais.

  • La signature SMB doit être désactivée.

Transfert et tunnelisation du port 445

Dans les scénarios où une introduction directe dans le réseau n'est pas réalisable, le trafic sur le port 445 doit être transféré et tunnelisé. 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 du pilote.

Configuration et utilisation de PortBender dans Cobalt Strike:

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 d'hôtes locaux et distants.

  • smbrelayx : Un script Python pour relayer des 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 répertoire /usr/share/responder/tools, ciblant des IPs ou des utilisateurs spécifiques.

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

Forcer les connexions NTLM

Sous Windows, vous pouvez peut-être forcer certains comptes privilégiés à s'authentifier sur des machines arbitraires. Consultez la page suivante pour en savoir plus :

pageForce NTLM Privileged Authentication

Références

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks :

Dernière mise à jour