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.
- 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 smb {{DC_IP}} -u '' -p '' --shares nxc smb {{DC_IP}} -u guest -p '' --rid-brute 10000 enum4linux-ng -A {{DC_IP}} rpcclient -U '' -N {{DC_IP}} rpcclient -U '' -N {{DC_IP}} -c 'enumdomusers' rpcclient -U '' -N {{DC_IP}} -c 'querydominfo;getdompwinfo' impacket-lookupsid {{DOMAIN}}/guest@{{DC_IP}} -no-pass ldapsearch -x -H ldap://{{DC_IP}} -s base namingcontexts ldapsearch -x -H ldap://{{DC_IP}} -b 'DC=corp,DC=local' '(objectClass=user)' sAMAccountName nxc ldap {{DC_IP}} -u '' -p '' --query '(objectClass=domain)' '' smbclient -L //{{DC_IP}} -N 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:
nxc smb {{DC_IP}} -u guest -p '' --rid-brute 10000impacket-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) veyaldapsearch ... rootDomainNamingContextile tespit et; sonra/etc/hosts’a ekle. lookupsid/--rid-bruteicin guest devre disiysa ve null kapaliysa, bu yontemler bos doner — o zaman ad-userenum’daki Kerberos tabanlikerbrute 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.