AD Kullanici Enumerasyonu: kerbrute userenum, lookupsid, NetExec, username-anarchy, OWA/MailSniper
Gecerli AD kullanici adlarini ortaya cikar: Kerberos pre-auth ile kerbrute userenum (lockout-suz), RID cycling icin lookupsid/NetExec --rid-brute, OSINT isimlerinden username-anarchy ile kullanici-adi permutasyonu uret ve dis yuzeyde OWA/Exchange'e karsi MailSniper ile zaman-tabanli enum. Cikan liste spray/AS-REP/Kerberoast'in girdisidir.
- DC'ye Kerberos(88) veya SMB/RPC(445/135) erisimi
- Domain FQDN bilgisi (kerbrute ve impacket icin gerekli)
- Aday kullanici-adi listesi (statistically-likely-usernames, OSINT isimleri ya da RID brute ciktisi)
Komutlar
kerbrute userenum -d {{DOMAIN}} --dc {{DC_IP}} {{WORDLIST}} kerbrute userenum -d {{DOMAIN}} --dc {{DC_IP}} /usr/share/seclists/Usernames/Names/names.txt impacket-lookupsid {{DOMAIN}}/guest@{{DC_IP}} -no-pass nxc smb {{DC_IP}} -u guest -p '' --rid-brute 10000 nxc smb {{DC_IP}} -u {{USER}} -p {{PASS}} --users username-anarchy -i names.txt > userlist.txt impacket-GetNPUsers {{DOMAIN}}/ -dc-ip {{DC_IP}} -usersfile userlist.txt -no-pass Invoke-UsernameHarvestOWA -ExchHostname {{RHOST}} -Domain {{DOMAIN}} -UserList userlist.txt -OutFile valid.txt Genel Bakis
Gecerli kullanici adlari AD saldirisinin yakitidir: bunlar olmadan password spray, AS-REP Roasting ve Kerberoast’a baslayamazsin. Bu sayfa kullanici-adi listesini kimliksiz (kerbrute, lookupsid, GetNPUsers) ve kimlikli (nxc —users) uretmenin yontemlerini ve listeyi sifirdan kurmak icin username-anarchy/OWA tekniklerini toplar.
Yontem 1 — Kerberos Pre-Auth (kerbrute userenum)
En tercih edilen kimliksiz yontem. Kerbrute, DC’ye her aday kullanici icin bir AS-REQ gonderir; DC’nin yaniti kullanicinin var olup olmadigini sizdirir (KDC_ERR_C_PRINCIPAL_UNKNOWN = yok, baska hata/yanit = var). Kritik avantaj: bu islem on-dogrulama oncesi oldugu icin badPwdCount’u artirmaz, yani hesap kilitlemez ve neredeyse iz birakmaz.
kerbrute userenum -d {{DOMAIN}} --dc {{DC_IP}} {{WORDLIST}} calistir; wordlist olarak SecLists’teki Usernames/Names/names.txt veya statistically-likely-usernames ideal. Domain FQDN ve DC IP dogru olmali; saat senkronu burada da gerekir.
Yontem 2 — RID Cycling (lookupsid / NetExec)
guest veya null erisimi varsa SID brute en eksiksiz listeyi verir: impacket-lookupsid {{DOMAIN}}/guest@{{DC_IP}} -no-pass veya nxc smb {{DC_IP}} -u guest -p '' --rid-brute 10000. Bu, domain’deki tum principal’leri (kullanici + grup + makine) RID sirasina gore dokumledigi icin kerbrute’tan farkli olarak tahmin gerektirmez. Detayli null-session baglami icin ad-enum-nocreds’e bak.
Yontem 3 — Kimlikli Enum (nxc —users)
Elinde bir kimlik varsa nxc smb {{DC_IP}} -u {{USER}} -p {{PASS}} --users tum kullanicilari badPwdCount ve description alanlariyla doker. Aciklama alaninda bazen parola ya da ipucu bulunur; badPwdCount ise hangi hesaplara guvenle spray yapabilecegini gosterir.
Yontem 4 — Liste Uretimi (username-anarchy)
Elinde sadece gercek isimler varsa (LinkedIn/OSINT’ten ad-soyad), username-anarchy -i names.txt ile kurum kullanici-adi kalibinin tum olasi permutasyonlarini (john.doe, jdoe, doej, j.doe, johnd…) uretip kerbrute’a beslersin. Kurumun gercek kalibini bir kez tespit edince (or. bir gecerli kullanicidan) listeyi o kalibla daraltabilirsin.
Yontem 5 — Dis Yuzey OWA/Exchange (MailSniper)
Hedefin internet-facing bir Exchange/OWA’si varsa MailSniper’in Invoke-UsernameHarvestOWA fonksiyonu zaman-tabanli (timing) bir yan-kanal ile gecerli kullanicilari ayirt eder: gecerli kullanicida yanit suresi farklidir. Bu, otomatik/harici bir teknik oldugu ve hedef disi servisle etkilesti icin examSafety: restricted kabul edilir; OSCP kapsam izni olmadan kullanma.
Notlar ve Tuzaklar
- kerbrute saat senkronuna duyarlidir;
KRB_AP_ERR_SKEWaliyorsansudo ntpdate {{DC_IP}}. - RID brute, guest/null kapaliysa bos doner; o durumda kerbrute (pre-auth) tek kimliksiz yoldur.
- Cikan her gecerli kullanici adini hemen AS-REP Roast (
GetNPUsers) ve spray adaylarina ekle; userenum tek basina degil, akisin besleyici adimidir. - GetNPUsers’i
-usersfileile calistirdiginda hem AS-REP’lenebilir hesaplari hem de (dolayli olarak) gecerli kullanicilari ayirt edebilirsin — iki amacli kullan.