Windows Golden and Silver Ticket Persistence
Golden and Silver Tickets are forged Kerberos tickets that give persistent authenticated access bypassing standard authentication flows:
Golden Ticket: forged TGT signed with the
krbtgthash, grants access to any service in the domain, valid until thekrbtgtpassword is changed twiceSilver Ticket: forged TGS for a specific service, signed with that service account's hash, never touches the domain controller during authentication
Both require prior compromise of the relevant account hashes.
Obtaining the krbtgt hash
A Golden Ticket requires the krbtgt account's NT hash and the domain SID. Both come from a DCSync attack, which requires Domain Admin or specific replication rights on the domain controller.
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:7b5b518b1c33d1b22c3d0b70e76a6f90:::
Forging a Golden Ticket
With the krbtgt hash and domain SID, you can forge a TGT for any user including accounts that do not exist. The ticket is valid for 10 years by default and works until krbtgt is rotated twice.
Silver Ticket: service-specific persistence
A Silver Ticket targets one specific service. It is signed with the service account's hash rather than krbtgt, so it does not require DC interaction to use and is harder to detect. Common targets: cifs for SMB file access, host for task scheduling, http for WinRM.
Detecting and evading Golden Ticket detection
Modern defenses flag Golden Tickets with unusually long lifetimes (default mimikatz value is 10 years) and tickets for users not present in PAC validation. To reduce detection, set the ticket lifetime to match the domain default (10 hours) and use an existing valid username.
References
-
kerberos::golden, lsadump::dcsync full reference
-
Rubeus: GhostPack GitHubREPO: Rubeus: GhostPack GitHub, github.com/GhostPack/Rubeus (opens in new tab)
golden, silver, and ticket manipulation commands
-
Impacket ticketer: GitHubREPO: Impacket ticketer: GitHub, github.com/fortra/impacket (opens in new tab)
Linux-based Golden and Silver Ticket forging