WriteUp CTF AttacktiveDirectory de Try Hack Me

Introducción

En esta ocasión, vamos a tratar los pasos para explotar un directorio activo. Este desafío está diseñado por un usuario llamado Spooky.
Este ctf es un buen punto de partida para comenzar en la explotación de AD. Se tratarán diferentes protocolos, el uso de Kerberos y como descifrar sus hashes, como utilizar la herramienta Impacket Secretdump para hacer el volcado de los hashes de control de dominio y como acceder a la máquina utilizando únicamente el hash NTLM con EvilWinRM.

Comenzamos…

Enumeración

1

La ejecución del script scanports.sh nos ayuda a recopilar información sobre el directorio activo y nuestro objetivo. El siguiente paso será agregar el nombre de dominio DNS y agregarlo a /etc/hosts, ya que estamos practicando en una red de área local.

A continuación, enumeraremos los dos puertos utilizados por AD, 139 y 445 con enum4linux. Enum4linux –a representará una enumeración simple. Recopilará mucha información (lista de usuarios, lista de máquinas, información de políticas de contraseñas, lista de miembros…)

Se recopila una gran cantidad de datos que nos da más idea sobre nuestro directorio activo objetivo, pero no obtuvimos ninguna credencial o nombre de usuario. ¿Recordáis el puerto 88 de Kerberos? Es posible utilizarlo para enumerar usuarios. La próxima herramienta a utilizar es kerbrute.

Una vez tengamos una lista de usuarios dentro del dominio, podemos comenzar a trabajar. Usaremos para ello un script llamado GetNPUsers.py.

Explotación Kerberos

Podemos usar Impacket GetNUsers.py para hacer ASREPRoasting y determinar si hay una cuenta desde la que podamos consultar los tickets de Kerberos sin contraseña.

Y obtenemos un hash para el usuario svc-admin
$krb5asrep$23$svcadmin@SPOOKYSEC.LOCAL:0e6f0959c425138daf45058c2a40bccd$2ec9cc80d1bc2
3ec583a47308e1fee0b84e90aa878aeeac329726d604fb10034ee100f7709edd4791960ba
7e4bfdc65917ed7040c382dec7355ed3f7ed10228eb108e7dbca9aa3dc3fa7e9cccdee5e18
bde9c30ad0f687300ec6307397393f1b635500f9773500f6a4903d498e6b0fedbbc25a4ca
8c5c6787f847caf70e0a27a337d302fc5eb33139b5a9fe1000bffdb6e991b3f966a29bdfc56
9ae9af927e81aa2c99e10f6af34a3833cdc5ffdf0d80a37a59fc165e5f5fd830e39e57e8eec3
d5806d039660f50622ab99edc2c210299b9830e7134a102afb3aed709d4cc1db48bdde4c
45cd612afa57113629bee95b490b

Intentaremos descifrar este hash utilizando la herramienta hashcat. Para ello, utilizaremos el diccionario de contraseñas rockyou.txt.

Obtenemos la contraseña con la que podemos iniciar sesión utilizando smb.

Ahora que tenemos un nombre de usuario y una contraseña, podemos intentar iniciar sesión en el sistema. Es conocido que SMB se está ejecutando, así que probemos a verificar que recursos compartidos están disponibles e intentamos iniciar sesión en ellos si fuese posible.

Podemos recopilar el contenido del archivo backup_credentials.txt, sin embargo, parece estar codificado en Base64. Vamos a intentar decodificarlo.

Parece que hemos encontrado una combinación de usuario y contraseña. Ahora podemos intentar enumerar información adicional del usuario, e intentar incluir el hash NTLM si es posible. Vamos a utilizar la herramienta secretsdump.py de Impacket, utilizando las credenciales encontradas.

Ahora tenemos un hash para la cuenta de usuario Administrador y podemos utilizar dos rutas diferentes. La más factible es utilizar psexec.py para iniciar sesión “pass the hash”, utilizando el hash descubierto como contraseñas.

Otra alternativa que podemos utilizar es la herramienta Evil-WINRM, que es una herramienta que se utiliza para explotar Windows. A continuación, se muestra como iniciar sesión.

Elevación de privilegios

No responses yet

Deja una respuesta

Tu dirección de correo electrónico no será publicada.