Kimlik Doğrulamalı Domain Enumeration (Authenticated Enum)
Gecerli bir domain kullanici kimligi (parola veya NT hash) ele gecirildikten sonra LDAP/SMB uzerinden kullanicilar, gruplar, parola politikasi, GPO ve ACL bilgilerini cikararak saldiri yuzeyini haritalandirma.
- Gecerli bir domain hesabi (USER + PASS veya NTHASH)
- DC ile ag baglantisi (LDAP 389/636, SMB 445)
- Kerberos icin saatler senkron (max 5 dk skew)
Komutlar
nxc smb {{DC_IP}} -u '{{USER}}' -p '{{PASS}}' --users nxc smb {{DC_IP}} -u '{{USER}}' -p '{{PASS}}' --groups nxc smb {{DC_IP}} -u '{{USER}}' -p '{{PASS}}' --pass-pol nxc ldap {{DC_IP}} -u '{{USER}}' -p '{{PASS}}' --users nxc ldap {{DC_IP}} -u '{{USER}}' -p '{{PASS}}' --password-not-required nxc ldap {{DC_IP}} -u '{{USER}}' -H {{NTHASH}} --trusted-for-delegation ldapsearch -x -H ldap://{{DC_IP}} -D '{{USER}}@{{DOMAIN}}' -w '{{PASS}}' -b 'DC=corp,DC=local' '(objectClass=user)' sAMAccountName description memberOf ldapsearch -x -H ldap://{{DC_IP}} -D '{{USER}}@{{DOMAIN}}' -w '{{PASS}}' -b 'DC=corp,DC=local' '(&(objectClass=user)(servicePrincipalName=*))' sAMAccountName servicePrincipalName rpcclient -U '{{DOMAIN}}/{{USER}}%{{PASS}}' {{DC_IP}} -c 'enumdomusers' rpcclient -U '{{DOMAIN}}/{{USER}}%{{PASS}}' {{DC_IP}} -c 'querygroupmem 0x200; queryuser 0x1f4' enum4linux-ng -u '{{USER}}' -p '{{PASS}}' -A {{DC_IP}} pywerview get-netuser -u '{{USER}}' -p '{{PASS}}' -d {{DOMAIN}} --dc-ip {{DC_IP}} impacket-GetADUsers -all -dc-ip {{DC_IP}} '{{DOMAIN}}/{{USER}}:{{PASS}}' Get-DomainUser -SPN -Properties samaccountname,serviceprincipalname | fl Get-DomainGroupMember -Identity 'Domain Admins' -Recurse ADSearch.exe --domain {{DOMAIN}} --search '(&(objectCategory=user)(servicePrincipalName=*))' --attributes samaccountname,serviceprincipalname ADExplorer.exe -snapshot "" C:\Temp\snap.dat {{DC_HOST}} Amac
Gecerli bir domain kimligi (parola veya NT hash) elde ettikten sonra amac, dizini icerden okuyarak hedef listesini ve istismar yollarini cikarmaktir. Kimliksiz enum’un aksine burada --users, --groups, --pass-pol ve tum LDAP nitelikleri gorunur hale gelir.
Neden Once Parola Politikasi?
Spray veya AS-REP/Kerberoast hash kirma denemelerinden ONCE --pass-pol ile lockout esigini ogrenmek zorunludur. Yanlis sayida deneme hesaplari kilitler (account lockout) ve hem testi bozar hem de IOC uretir.
Adimlar
- SMB hizli tarama:
nxc smb {{DC_IP}} -u {{USER}} -p {{PASS}} --users --groups --pass-polile temel listeyi al. - LDAP derinlestir:
nxc ldap ... --password-not-requiredve--trusted-for-delegationile yanlis yapilandirmalari yakala.descriptionalanlarinda sik sik duz metin parola bulunur. - SPN avi: LDAP filtresi
(&(objectClass=user)(servicePrincipalName=*))ile Kerberoast adaylarini cikar (bkz. ad-kerberoast). - rpcclient ile RID bazli dogrulama yap;
querygroupmem 0x200Domain Admins’i verir. - Windows ucu varsa PowerView (
Get-DomainUser -SPN,Get-DomainGroupMember -Recurse) veya ADSearch ile in-memory sorgula; disk’e arac dusurmemek EDR icin avantaj. - Snapshot: AD Explorer ile
.datsnapshot alip cevrimdisi analiz et — DC’ye tekrar tekrar sorgu atmaktan kacinir.
Hash ile Kimlik (Pass-the-Hash)
Parola yerine NT hash varsa netexec’te -H {{NTHASH}} kullanilir; ldapsearch dogrudan PtH desteklemez, bu durumda Kerberos bileti (KRB5CCNAME) veya impacket araclari tercih edilir.
Gotchalar
- LDAP
-bbase DN’i domain’e gore ayarla:corp.local->DC=corp,DC=local. - LDAPS (636) sertifika dogrulama hatasi verirse netexec/ldapsearch icin gerekli
-xve plaintext 389 dene; bazi DC’ler imzasiz LDAP’i reddeder (channel binding). - Bu cikti dogrudan BloodHound beslemesinin girdisidir — toplananlari ad-bloodhound’a aktar.