FOOTHOLD Metodoloji Cheat-sheet
389

LDAP

ad

LDAP (389/tcp) AD'nin dizin servisidir ve enumerasyonun ana kaynagidir. Anonim ya da kimlikli ldapsearch ile naming context, kullanicilar, gruplar, SPN'ler, ACL'ler, LAPS, delegation ozellikleri okunur. BloodHound veri toplama buradan beslenir.

┌──

Komutlar

ldapsearch ✓ EXAM-SAFE
ldapsearch -x -H ldap://{{DC_IP}} -s base namingcontexts
Anonim olarak RootDSE'den naming context'leri (base DN) cek. Cikti DC=corp,DC=local gibi domain DN'ini verir; sonraki tum sorgularda -b olarak kullanilir. HackTricks - LDAP enumeration / ldapsearch
ldapsearch ✓ EXAM-SAFE
ldapsearch -x -H ldap://{{DC_IP}} -b 'DC={{DOMAIN}}' '(objectClass=*)'
Anonim bind ile tum dizin nesnelerini dok (cogu modern DC anonim bind'i kapatir, bos donerse kimlikli sorguya gec). HackTricks - LDAP anonymous bind
ldapsearch ✓ EXAM-SAFE user
ldapsearch -x -H ldap://{{DC_IP}} -D '{{USER}}@{{DOMAIN}}' -w '{{PASS}}' -b 'DC={{DOMAIN}}' '(objectClass=user)' sAMAccountName description memberOf
Kimlikli bind ile tum kullanicilar, aciklamalari (description alaninda sifre olabilir!) ve grup uyeliklerini cek. HackTricks - LDAP authenticated enumeration
ldapsearch ✓ EXAM-SAFE user
ldapsearch -x -H ldap://{{DC_IP}} -D '{{USER}}@{{DOMAIN}}' -w '{{PASS}}' -b 'DC={{DOMAIN}}' '(&(objectClass=user)(servicePrincipalName=*))' sAMAccountName servicePrincipalName
Kerberoastable hesaplari LDAP filtresiyle bul (SPN'i olan kullanicilar). Bulduklarini GetUserSPNs ile roast et. The Hacker Recipes - Kerberoast / LDAP SPN filter
ldapsearch ✓ EXAM-SAFE user
ldapsearch -x -H ldap://{{DC_IP}} -D '{{USER}}@{{DOMAIN}}' -w '{{PASS}}' -b 'DC={{DOMAIN}}' '(&(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=4194304))' sAMAccountName
AS-REP roastable hesaplar: DONT_REQ_PREAUTH (0x400000) bayrakli kullanicilari LDAP bitwise filtresiyle bul. The Hacker Recipes - AS-REP Roasting / UAC filter
netexec ✓ EXAM-SAFE user
nxc ldap {{DC_IP}} -u {{USER}} -p '{{PASS}}' --users --groups
NetExec LDAP ile kullanici ve gruplari hizlica dok. --password-not-required, --admin-count gibi ek bayraklarla zenginlestir. NetExec Wiki - LDAP enumeration
netexec ✓ EXAM-SAFE user
nxc ldap {{DC_IP}} -u {{USER}} -p '{{PASS}}' -M get-desc-users
description alaninda parola/ipucu barindiran kullanicilari modul ile listele (klasik 'description: P@ssw0rd' bulgusu). NetExec Wiki - LDAP module get-desc-users
netexec ✓ EXAM-SAFE user
nxc ldap {{DC_IP}} -u {{USER}} -p '{{PASS}}' -M laps
LAPS okuma yetkin varsa yerel admin parolalarini cek (ms-Mcs-AdmPwd). ad-laps teknigine baglanir. NetExec Wiki - LDAP module laps
bloodhound-python ✓ EXAM-SAFE user
bloodhound-python -d {{DOMAIN}} -u {{USER}} -p '{{PASS}}' -ns {{DC_IP}} -c All --zip
Linux tarafindan LDAP uzerinden BloodHound toplama. -c All tum koleksiyon metodlarini calistirir; cikti zip BloodHound GUI'ye yuklenir. ACL/path analizinin temeli. HackTricks - BloodHound / bloodhound-python
windapsearch ✓ EXAM-SAFE user
windapsearch -d {{DOMAIN}} --dc {{DC_IP}} -u '{{USER}}@{{DOMAIN}}' -p '{{PASS}}' --da
windapsearch ile Domain Admins grubu uyelerini hizli listele (-PU privileged users, -G gruplar gibi modlari da var). WADComs - windapsearch
rpcclient ✓ EXAM-SAFE
rpcclient -U '' -N {{DC_IP}} -c 'enumdomusers'
Null session ile (LDAP kapaliysa) MS-RPC uzerinden kullanici enumerasyonu - LDAP'a tamamlayici. queryuser <rid> ile detay. HackTricks - RPC enumeration / rpcclient

Port 389 - LDAP (Dizin Enumerasyonu)

LDAP, AD’nin tum nesnelerini (kullanici, grup, bilgisayar, GPO, ACL) barindiran dizin servisidir. Enumerasyonun kalbidir.

1. Enum - Naming Context (Base DN)

Her sorgu bir base DN ister. Once RootDSE’den namingcontexts cek; bu sana DC=corp,DC=local gibi domain DN’ini verir. Bu degeri sonraki tum -b parametrelerinde kullanirsin. Bu adim anonimdir ve neredeyse her zaman calisir.

2. Enum - Anonim vs Kimlikli Bind

Eski/yanlis yapilandirilmis DC’ler anonim bind’e izin verir ve tum dizini dokebilirsin. Modern DC’lerde anonim bind kapalidir; bos sonuc alirsan kimlikli bind (-D user@domain -w pass) ya da NetExec’e gec. ad-enum-nocreds ile ad-enum-creds farki tam burasidir.

3. Attack Relevance - LDAP Filtreleri

LDAP, saldiri yuzeyini dogrudan gosterir:

  • servicePrincipalName=* -> Kerberoastable hesaplar (ad-kerberoast).
  • UAC bit 4194304 -> AS-REP roastable (ad-asrep).
  • description alani -> sik sik gomulu parola/ipucu (ad-cred-harvest).
  • ms-Mcs-AdmPwd -> LAPS yerel admin parolasi (ad-laps).

4. Attack - BloodHound Beslemesi

bloodhound-python -c All LDAP’tan kullanici/grup/ACL/session verisini cekip graf olusturur. Bu, ACL abuse (ad-acl-abuse), delegation ve en kisa Domain Admin yolunu bulmanin temelidir.

Gotchalar

  • Base DN yanlissa ‘No such object’ alirsin - once namingcontexts dogrula.
  • Bitwise UAC filtrelerinde OID (1.2.840.113556.1.4.803) tam yazilmalidir.
  • DC_HOST cozumlenemezse /etc/hosts’a ekle; LDAP IP ile, ama bazi sorgular FQDN ister.
  • description alanini her zaman tara - en kolay quick win.
┌──

İlgili teknikler

┌──

Kaynaklar

0/15 set