Skip to content

BloodHound ile Saldırı Yolu Analizi

ATT&CK T1087.002 metodoloji

ATT&CK T1087.002 metodoloji

BloodHound, AD nesneleri arasındaki ilişkileri (üyelik, ACL, oturum, delegasyon) bir grafik olarak modelleyip saldırgan bakışıyla en kısa yolu gösterir. “Elimdeki bu kullanıcıdan Domain Admin’e nasıl giderim?” sorusunu görselleştirir. Ham LDAP dump’ı okumak yerine kenarları somut saldırılara çevirmek asıl değeridir.

  • Collector — SharpHound (Windows) veya bloodhound-python / NetExec LDAP modülü; JSON/ZIP üretir.
  • Graph DB — BloodHound CE (PostgreSQL + UI) veya klasik Neo4j UI.
  • Analiz — Cypher / hazır sorgular; Owned → high-value yolları.
FlagNe toplarNot
AllDC + session + local group + ACL…En dolu; gürültülü
DCOnlyYalnızca LDAP (DC)Sessiz; session yok
Session / LoggedOnKim nerede oturum açmışFoothold + loop
Group / ACL / TrustsHedefliYeniden tarama
ObjectPropsDelegation, SPN, LAPS propsPrivesc için kritik
ContainerOU/GPO bağlantılarıGPO abuse yolları
Terminal window
SharpHound.exe -c All --zipfilename loot
Terminal window
SharpHound.exe -c DCOnly --zipfilename stealth
Terminal window
SharpHound.exe -c Session,LoggedOn --Loop --LoopDuration 01:00:00 --LoopInterval 00:05:00
Terminal window
SharpHound.exe -d domain.local -c All --ldapusername user --ldappassword 'Pass123'
Terminal window
SharpHound.exe -c All --ExcludeDCs # DC'lere session sorgusu atma (opsec)
Terminal window
SharpHound.exe -c All --throttle 1000 --jitter 20
Terminal window
bloodhound-python -d domain.local -u user -p 'Pass123' -ns 10.10.10.5 -c All --zip
Terminal window
bloodhound-python -d domain.local -u user -p 'Pass123' -ns 10.10.10.5 -c DCOnly,ObjectProps,ACL --zip
Terminal window
bloodhound-python -d domain.local -u user -hashes :NTHASH -ns 10.10.10.5 -c All --zip
Terminal window
bloodhound-python -d domain.local -u user -p 'Pass123' -dc dc01.domain.local -c All --dns-tcp --zip
Terminal window
nxc ldap 10.10.10.5 -u user -p 'Pass123' --bloodhound -c All --dns-server 10.10.10.5
Terminal window
nxc ldap 10.10.10.5 -u user -H :NTHASH --bloodhound -c DCOnly --dns-server 10.10.10.5
  1. İçe aktar — ZIP’i BloodHound CE’ye yükle; ingest bitene kadar bekle.

  2. High-value işaretle — Domain Admins, Enterprise Admins, DC’ler, Tier-0 sunucular, CA, backup sunucuları varsayılan olarak kritik.

  3. Owned işaretle — ele geçirdiğin her kullanıcı, grup, bilgisayar. Pathfinding Owned’dan başlar.

  4. Hazır sorguları çalıştır (CE / klasik): Shortest Paths to Domain Admins

  5. Shortest Paths from Owned Principals

  6. Find Principals with DCSync Rights

  7. Kerberoastable Users / AS-REP Roastable Users

  8. Computers with Unconstrained Delegation

  9. Shortest Paths to Unconstrained Delegation Systems

  10. Users with Foreign Domain Group Membership

  11. Kenarı tekniğe çevir — grafikteki her edge bir sayfaya map edilir (aşağıdaki tablo).

  12. Yolu doğrula — BH bazen stale session / yanlış ACL gösterebilir; PowerView veya bloodyAD get objectacl ile teyit et, sonra exploit.

BloodHound edgeAnlamTeknik
MemberOfGrup üyeliğiHakların kalıtımı
AdminToYerel adminPtH / exec / LSASS
HasSessionOturum açıkLSASS dump → credential
CanRDP / CanPSRemoteRDP / WinRMLateral
ForceChangePasswordParola sıfırlaACL Abuse
AddMemberGruba ekleDA/IT grupları
GenericAllTam kontrolparola, SPN, RBCD, shadow
GenericWriteÖzellik yaztargeted Kerberoast, RBCD, shadow
WriteDaclACL yazkendine GenericAll / DCSync
WriteOwnerSahip olardından WriteDacl
OwnsOwnerWriteDacl zinciri
AllExtendedRightsGeniş haklarForceChangePassword vb.
DCSync / GetChanges*ReplikasyonDCSync
AllowedToDelegateConstrained del.Delegation
AllowedToActRBCDRBCD
AddKeyCredentialLinkShadow credsShadow Credentials
ReadLAPSPasswordLAPS okuGPP & LAPS
ReadGMSAPasswordgMSA blobgMSA decrypt
AddAllowedToActRBCD yazRBCD kur
GPLink + Write on GPOGPO yazGPO Abuse
SyncLAPSPasswordLAPS sync hakkıLAPS okuma
// Owned'dan Domain Admins'e en kısa yollar
MATCH p=shortestPath((n)-[*1..]->(m:Group))
WHERE n.owned=true AND m.objectid ENDS WITH '-512'
RETURN p
// GenericAll / WriteDacl tutan low-priv → yüksek değer
MATCH (n)-[r:GenericAll|WriteDacl|GenericWrite|Owns]->(m)
WHERE NOT n.name CONTAINS 'ADMIN'
RETURN n.name, type(r), m.name LIMIT 50
// Unconstrained delegation bilgisayarları
MATCH (c:Computer {unconstraineddelegation:true}) RETURN c.name

BloodHound · collector

embedded tool
Generated command
bloodhound-python -d domain.local -u lowpriv -p Pass123 -c All -ns 10.10.10.5
Owned: bob
→ MemberOf HelpDesk
→ ForceChangePassword on jim
→ jim HasSession on FILE01
→ AdminTo on FILE01 (jim local admin)
→ dump LSASS → DA hash
→ DCSync
Owned: svc_web (Kerberoast kırıldı)
→ AllowedToDelegate → cifs/SQL01
→ S4U impersonate Administrator
→ SQL01 SYSTEM → pivot
  • Owned işaretlemeyi unutmak — pathfinding boş kalır.
  • Eski SharpHound + yeni CE şema uyumsuzluğu → collector sürümünü eşleştir.
  • Yalnızca DCOnly ile DA yolu “yok” sanmak; session kenarı olmadan yol görünmeyebilir — foothold sonrası loop şart.
  • adminCount=1 kullanıcılar AdminSDHolder korumalı; ACL kenarı “yazılabilir” görünse de SDProp geri alabilir — yine de AdminSDHolder persistence için bak.
  • DNS çözülemezse Python collector eksik bilgisayar bırakır ( -ns , –dns-tcp ).

BloodHound bir keşif/planlama aracıdır; her kenarı ilgili teknik sayfasıyla eşleştirip uygula: ACL Abuse, RBCD, Shadow Credentials, Unconstrained Delegation, GPO Abuse.