Resource-based Constrained Delegation
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)
Dit is soortgelyk aan die basiese Beperkte Afvaardiging maar in plaas daarvan om toestemmings aan 'n objek te gee om enige gebruiker teen 'n diens te verteenwoordig. Hulpbronne-gebaseerde Beperkte Afvaardiging stel in die objek wie in staat is om enige gebruiker teen dit te verteenwoordig.
In hierdie geval sal die beperkte objek 'n attribuut hê genaamd msDS-AllowedToActOnBehalfOfOtherIdentity met die naam van die gebruiker wat enige ander gebruiker teen dit kan verteenwoordig.
'n Ander belangrike verskil van hierdie Beperkte Afvaardiging teenoor die ander afvaardigings is dat enige gebruiker met skryftoestemmings oor 'n masjienrekening (GenericAll/GenericWrite/WriteDacl/WriteProperty/etc) die msDS-AllowedToActOnBehalfOfOtherIdentity kan stel (In die ander vorme van Afvaardiging het jy domein admin regte nodig).
Terug by Beperkte Afvaardiging is daar gesê dat die TrustedToAuthForDelegation
vlag binne die userAccountControl waarde van die gebruiker nodig is om 'n S4U2Self uit te voer. Maar dit is nie heeltemal waar nie.
Die werklikheid is dat selfs sonder daardie waarde, jy 'n S4U2Self teen enige gebruiker kan uitvoer as jy 'n diens (het 'n SPN) is, maar, as jy TrustedToAuthForDelegation
het, sal die teruggegee TGS Forwardable wees en as jy nie het nie daardie vlag sal die teruggegee TGS nie Forwardable wees nie.
As die TGS wat in S4U2Proxy gebruik word NIE Forwardable is nie, sal dit nie werk om 'n basiese Beperkte Afvaardiging te misbruik nie. Maar as jy probeer om 'n Hulpbronne-gebaseerde beperkte afvaardiging te ontgin, sal dit werk (dit is nie 'n kwesbaarheid nie, dit is 'n kenmerk, blykbaar).
As jy skrywequivalente regte oor 'n Rekenaar rekening het, kan jy bevoorregte toegang in daardie masjien verkry.
Neem aan dat die aanvaller reeds skrywequivalente regte oor die slagoffer rekenaar het.
Die aanvaller kompromitteer 'n rekening wat 'n SPN het of skep een (“Diens A”). Let daarop dat enige Admin Gebruiker sonder enige ander spesiale regte tot 10 Rekenaarobjekte (MachineAccountQuota) kan skep en hulle 'n SPN kan stel. So die aanvaller kan net 'n Rekenaarobjek skep en 'n SPN stel.
Die aanvaller misbruik sy SKRYF regte oor die slagoffer rekenaar (DiensB) om hulpbronne-gebaseerde beperkte afvaardiging te konfigureer om DiensA toe te laat om enige gebruiker teen daardie slagoffer rekenaar (DiensB) te verteenwoordig.
Die aanvaller gebruik Rubeus om 'n volledige S4U aanval (S4U2Self en S4U2Proxy) van Diens A na Diens B vir 'n gebruiker met bevoorregte toegang tot Diens B uit te voer.
S4U2Self (van die SPN gecompromitteerde/geskepte rekening): Vra vir 'n TGS van Administrateur aan my (Nie Forwardable).
S4U2Proxy: Gebruik die nie Forwardable TGS van die vorige stap om vir 'n TGS van Administrateur na die slagoffer gasheer te vra.
Selfs al gebruik jy 'n nie Forwardable TGS, aangesien jy Hulpbronne-gebaseerde beperkte afvaardiging ontgin, sal dit werk.
Die aanvaller kan pass-the-ticket en verteenwoordig die gebruiker om toegang tot die slagoffer DiensB te verkry.
Om die MachineAccountQuota van die domein te kontroleer, kan jy gebruik:
Jy kan 'n rekenaarobjek binne die domein skep met behulp van powermad:
Gebruik activedirectory PowerShell-module
Gebruik powerview
Eerstens het ons die nuwe rekenaarobjek met die wagwoord 123456
geskep, so ons het die hash van daardie wagwoord nodig:
Dit sal die RC4 en AES hashes vir daardie rekening druk. Nou kan die aanval uitgevoer word:
U kan meer kaartjies genereer deur net een keer te vra met die /altservice
parameter van Rubeus:
Let daarop dat gebruikers 'n attribuut het genaamd "Kan nie gedelegeer word nie". As 'n gebruiker hierdie attribuut op Waar het, sal jy hom nie kan naboots nie. Hierdie eienskap kan binne bloodhound gesien word.
Die laaste opdraglyn sal die volledige S4U-aanval uitvoer en die TGS van Administrator na die slagoffer-gasheer in geheue inspuit. In hierdie voorbeeld is 'n TGS vir die CIFS diens van Administrator aangevra, so jy sal toegang hê tot C$:
Leer oor die beskikbare dienskaartjies hier.
KDC_ERR_ETYPE_NOTSUPP
: Dit beteken dat kerberos gekonfigureer is om nie DES of RC4 te gebruik nie en jy verskaf net die RC4-hash. Verskaf aan Rubeus ten minste die AES256-hash (of verskaf net die rc4, aes128 en aes256 hashes). Voorbeeld: [Rubeus.Program]::MainString("s4u /user:FAKECOMPUTER /aes256:CC648CF0F809EE1AA25C52E963AC0487E87AC32B1F71ACC5304C73BF566268DA /aes128:5FC3D06ED6E8EA2C9BB9CC301EA37AD4 /rc4:EF266C6B963C0BB683941032008AD47F /impersonateuser:Administrator /msdsspn:CIFS/M3DC.M3C.LOCAL /ptt".split())
KRB_AP_ERR_SKEW
: Dit beteken dat die tyd van die huidige rekenaar verskil van die een van die DC en kerberos werk nie behoorlik nie.
preauth_failed
: Dit beteken dat die gegewe gebruikersnaam + hashes nie werk om in te log nie. Jy mag dalk vergeet het om die "$" binne die gebruikersnaam te plaas toe jy die hashes genereer (.\Rubeus.exe hash /password:123456 /user:FAKECOMPUTER$ /domain:domain.local
)
KDC_ERR_BADOPTION
: Dit kan beteken:
Die gebruiker wat jy probeer om te verteenwoordig kan nie toegang tot die verlangde diens verkry nie (omdat jy dit nie kan verteenwoordig nie of omdat dit nie genoeg bevoegdhede het nie)
Die gevraagde diens bestaan nie (as jy vir 'n kaartjie vir winrm vra maar winrm nie loop nie)
Die fakecomputer wat geskep is, het sy bevoegdhede oor die kwesbare bediener verloor en jy moet dit teruggee.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)