FOOTHOLD Metodoloji Cheat-sheet
Enum ✓ EXAM-SAFE kolay :139:445:389:636:135:3268

Kimliksiz AD Enumerasyonu: Null Session SMB/LDAP, enum4linux-ng, RID Brute, rpcclient

Kimlik bilgisi yokken AD'den bilgi cek: anonymous SMB share listeleme (nxc -u '' -p '' --shares), LDAP anonymous bind ile naming context/RootDSE, enum4linux-ng ile toplu enum, rpcclient ile enumdomusers/querydominfo, RID cycling/lookupsid ile SID->kullanici cevrimi ve ldapsearch ile -x anonymous sorgular.

Bilgi: ÖN KOŞULLAR
  • Hedef DC'ye SMB(445/139) ve/veya LDAP(389/636) erisimi
  • Hicbir kimlik bilgisi gerekmez (null/anonymous test edilir)
  • Domain FQDN bilinmiyorsa nxc smb / ldap-rootdse ile once tespit et
┌──

Komutlar

nxc ✓ EXAM-SAFE
nxc smb {{DC_IP}} -u '' -p '' --shares
Anonymous (null) SMB oturumuyla erisilebilir share'leri ve READ/WRITE haklarini listele NetExec Wiki — Null session enumeration
nxc ✓ EXAM-SAFE
nxc smb {{DC_IP}} -u guest -p '' --rid-brute 10000
guest/null ile SAMR RID cycling: RID 500-10000 araligini kullanici/grup adlarina cevir NetExec Wiki — RID brute forcing
enum4linux-ng ✓ EXAM-SAFE
enum4linux-ng -A {{DC_IP}}
Toplu null-session enum: domain SID, parola politikasi, kullanici/grup/share, OS bilgisi tek komutta enum4linux-ng GitHub (cddmp)
rpcclient ✓ EXAM-SAFE
rpcclient -U '' -N {{DC_IP}}
Null kimlikle RPC oturumu ac (-N parola sorma); icinde enumdomusers/querydominfo/lsaquery calistir HackTricks — Enumerating AD via RPC (rpcclient)
rpcclient ✓ EXAM-SAFE
rpcclient -U '' -N {{DC_IP}} -c 'enumdomusers'
Tek atista domain kullanicilarini ve RID'lerini listele (null session izin veriyorsa) HackTricks — rpcclient enumdomusers
rpcclient ✓ EXAM-SAFE
rpcclient -U '' -N {{DC_IP}} -c 'querydominfo;getdompwinfo'
Domain bilgisi + parola politikasi (min uzunluk, lockout) cek — spray oncesi kritik HackTricks — rpcclient querydominfo
impacket-lookupsid ✓ EXAM-SAFE
impacket-lookupsid {{DOMAIN}}/guest@{{DC_IP}} -no-pass
SID brute (lookupsid): guest/null ile domain SID'i bul ve RID->kullanici/grup adi cevir WADComs — Impacket lookupsid
ldapsearch ✓ EXAM-SAFE
ldapsearch -x -H ldap://{{DC_IP}} -s base namingcontexts
Anonymous LDAP bind (-x) ile RootDSE'den naming context ve domain DN'ini al — sonraki LDAP sorgularinin tabani HackTricks — LDAP anonymous bind / RootDSE
ldapsearch ✓ EXAM-SAFE
ldapsearch -x -H ldap://{{DC_IP}} -b 'DC=corp,DC=local' '(objectClass=user)' sAMAccountName
Anonymous bind izin veriliyorsa kullanici objelerini ve sAMAccountName'leri cek (base DN'i RootDSE'den al) HackTricks — LDAP enumeration (anonymous)
nxc ✓ EXAM-SAFE
nxc ldap {{DC_IP}} -u '' -p '' --query '(objectClass=domain)' ''
NetExec ldap ile anonymous bind testi ve domain objesi sorgusu NetExec Wiki — LDAP anonymous
smbclient ✓ EXAM-SAFE
smbclient -L //{{DC_IP}} -N
Klasik null-session share listeleme (-N parola yok); nxc'ye alternatif hizli kontrol HackTricks — SMB null session (smbclient)

Genel Bakis

Kimlik bilgisi olmadan da AD genellikle sasirtici miktarda bilgi sizdirir: yanlis yapilandirilmis null session (anonymous SMB), anonymous LDAP bind ve RID cycling ile domain SID’i, parola politikasini, kullanici/grup listesini ve okunabilir share’leri toplayabilirsin. Bu enum, sonraki tum adimlarin (userenum, spray, AS-REP roast) girdisini uretir. Hicbir komut lockout tetiklemez; hepsi safe’tir.

SMB Null Session

Ilk kontrol nxc smb {{DC_IP}} -u '' -p '' --shares. Modern DC’lerde null genelde kapalidir ama guest hesabi (parolasiz) bazen acik kalir; o yuzden hem -u '' hem -u guest dene. Erisilebilir bir share (or. yazilabilir bir paylasim ya da SYSVOL/NETLOGON) GPP parolalari veya script’lerden kimlik sizdirabilir. Klasik alternatif smbclient -L //{{DC_IP}} -N.

RID Cycling / lookupsid

Kullanici adi listesi cikarmanin en guvenilir kimliksiz yolu RID brute’tur. SAMR uzerinden RID 500’den (Administrator) baslayarak yukari sayilir ve her RID bir SID->ad cevrimine sokulur. Iki yol:

  1. nxc smb {{DC_IP}} -u guest -p '' --rid-brute 10000
  2. impacket-lookupsid {{DOMAIN}}/guest@{{DC_IP}} -no-pass

Cikan sAMAccountName listesini bir dosyaya yaz; bu liste ad-userenum, ad-spray ve ad-asrep icin dogrudan besleme olur.

RPC Enum — rpcclient

rpcclient -U '' -N {{DC_IP}} ile null RPC oturumu acip su komutlari calistir:

  • enumdomusers / enumdomgroups — kullanici/grup ve RID listesi.
  • querydominfo — domain rolu, kullanici sayisi, sunucu rolu.
  • getdompwinfo — parola politikasi (min uzunluk, lockout esigi). Spray oncesi mutlaka bak: lockout threshold dusukse hesap kilitlersin.
  • lsaquery — domain SID.
  • queryuser 0x<RID> — belirli kullanicinin detaylari (son giris, bayraklar).

enum4linux-ng (toplu)

enum4linux-ng -A {{DC_IP}} yukaridaki RPC/SMB sorgularinin cogunu tek komutta birlestirir ve JSON ciktisi verebilir: domain SID, parola politikasi, kullanicilar, gruplar, share’ler, OS. Hizli ilk-gecis icin ideal; ancak ham kontrol icin rpcclient/ldapsearch’e dusmen gerekebilir.

Anonymous LDAP

LDAP cogu DC’de anonymous bind’e en azindan RootDSE okumasi icin izin verir. ldapsearch -x -H ldap://{{DC_IP}} -s base namingcontexts ile defaultNamingContext’i (or. DC=corp,DC=local) al; bu, sonraki tum LDAP sorgularinin base DN’idir. Domain anonymous okumaya tam izin veriyorsa (eski/yanlis yapilandirma) (objectClass=user) ile kullanicilari, (objectClass=group) ile gruplari cekersin. NetExec ile nxc ldap {{DC_IP}} -u '' -p '' --query da ayni isi gorur.

Notlar ve Tuzaklar

  • Domain FQDN’ini bilmiyorsan once nxc smb {{DC_IP}} (banner’da domain) veya ldapsearch ... rootDomainNamingContext ile tespit et; sonra /etc/hosts’a ekle.
  • lookupsid/--rid-brute icin guest devre disiysa ve null kapaliysa, bu yontemler bos doner — o zaman ad-userenum’daki Kerberos tabanli kerbrute userenum’a (kimliksiz calisir, pre-auth uzerinden) gec.
  • LDAPS (636) bazen anonymous bind’i 389’dan farkli yonetir; ikisini de dene.
  • Null session ciktisi parola politikasini verdiginde, lockout threshold’u not al; bu deger spray hizini (saat basina deneme) belirler.
┌──

Kaynaklar

0/15 set