Administrator
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
Administrador es una máquina Windows de dificultad media diseñada en torno a un escenario de compromiso de dominio completo, en el que se proporcionan las credenciales de un usuario con pocos privilegios. Para obtener acceso a la cuenta michael
, se enumeran las ACLs (Access Control Lists) sobre objetos privilegiados, lo que nos lleva a descubrir que el usuario olivia
tiene permisos GenericAll
sobre michael
, permitiéndonos restablecer su contraseña. Con acceso como michael
, se revela que puede forzar un cambio de contraseña en el usuario benjamin
, cuya contraseña se restablece. Esto da acceso a FTP
, donde se descubre un archivo backup.psafe3
, que se descifra y revela las credenciales de varios usuarios. Estas credenciales se esparcen por el dominio, revelando credenciales válidas para el usuario «Emily». Una enumeración más detallada muestra que emily
tiene permisos GenericWrite
sobre el usuario ethan
, lo que nos permite realizar un ataque Kerberoasting dirigido. El hash recuperado se descifra y revela credenciales válidas para ethan
, que se encuentra que tiene derechos DCSync
en última instancia, lo que permite la recuperación del hash de la cuenta Administrator
y el compromiso completo del dominio.
Proceremos a realizar un reconocimiento con nmap para ver los puertos que están expuestos en la máquina Administrator.
Lanzaremos scripts de reconocimiento sobre los puertos encontrados y lo exportaremos en formato oN y oX.
Transformaremos el archivo XML obtenido en el resultado de nmap y lo transformaremos en un archivo HTML. Levantaremos un servidor HTTP con Python3.
Comprobaremos el nombre del dominio que nos enfrentamos, el nombre del equipo y que tipo de máquina nos enfrentamos.
Procederemos a añadir la entrada en nuestro archivo /etc/hosts
Verificamos que hemos procedido a enumerar la lista de usuarios que se encuentran en el dominio de administrator.htb.
Guardaremos los usuarios del dominio enumerados en el archivo users.txt.
Debido que disponemos de una lista potencial de usuarios, probaremos a realizar un AS-REP Roast Attack para intentar obtener un Ticket Granting Ticket (TGT) para luego crackearlo de manera offline.
Comprobamos que no obtenemos ningún TGT debido que ningun usuario dispone del atributo (DONT_REQ_PREAUTH) de Kerberos.
Dado que tenemos credenciales de un usuario válido del dominio, procederemos a realizar un Kerberoasting Attack para intentar obtener un TGS (Ticket Granting Service) para posteriormente crackear de manera offline el hash obtenido.
En este caso, comprobamos que no encontramos a ningún usuario kerberosteable.
Con ldapdomaindump dumpearemos toda la información del LDAP a través del usuario y contraseña que disponemos. Nos generará los resultados en distintos formatos.
Revisando el archivo "domain_users.html" verificamos que el usuario que disponemos forma parte del grupo "Remote Management Users", con el cual podríamos conectarnos al DC a través de WinRM, PsExec, etc.
Procederemos a acceder al WinRM a través de evil-winrm con el usuario que nos proporciona HackTheBox y hemos comprobado que forma parte del grupo "Remote Management Users".
Realizaremos una enumeración con BloodHound a través de bloodhound-python.
Revisando vectores de ataque desde BloodHound, verificamos que a través del usuario que disponemos (olivia@administrator.htb) tiene privilegios de GenericAll sobre el usuario (michael@administrator.htb).
Esto significa que podemos realizar un cambio de contraseña al usuario objetivo, en este caso, como tenemos acceso a la máquina Windows, podemos realizar el "Windows Abuse".
Volveremos a la terminal del WinRM, importaremos el módulo de PowerView.ps1 que disponemos en nuestra Kali y procederemos a asignarle una nueva contraseña al usuario (michael@administrator.htb).
Verificaremos que se han modificado las credenciales de usuario (michael@administrator) a través de netexec. Comprobamos que se ha realizado el cambio y además nos aparece como pwn3d, lo cual indica que podemos conectarnos remotamente al DC.
Accederemos a través del WinRM con el nuevo usuario obtenido.
Volviendo a revisar el BloodHound en busca de realizar un lateral movement o elevar nuestros privilegios, comprobamos que el usuario que disponemos actualmente (michael@administrator.htb) tiene privilegios de ForceChangePassword sobre el usuario (benjamin@administrator.htb).
Con lo cual, podemos también cambiarle la contraseña al usuario objetivo.
Realizaremos el mismo proceso desde la terminal que tenemos iniciada sesión la cuenta de (michael@administrator.htb).
Importaremos en memoria el módulo de PowerView.ps1 y procederemos a realizar el cambio de la contraseña del usuario objetivo.
Verificaremos nuevamente las credenciales modificadas del usuario (benjamin@administrator.htb).
Además, anteriormente en la enumeración con nmap verificamos que se encuentra el puerto 21 (FTP) . Probaremos de acceder con las credenciales de este usuario para acceder al protocolo FTP.
Verificando el archivo descargado de FTP, verificamos que se trata de um archivo de "Password Safe V3 database", que es un gestor de contraseñas similar a KeePass.
Probando de abrir el archivo de la base de datos de las contraseñas a través de la aplicación "Password Safe", verificamos que nos pide credenciales para abrir el archivo en cuestión.
A través de la herramienta pwsafe2john podemos obtener el hash de la contraseña para abrir el archivo de Password Safe. Almacenaremos el hash en "hash_backup" y a través de john procederemos a
Introduciremos la contraseña obtenida después de crackear el hash para abrir el archivo de la base de datos del Password Safe.
Verificamos que hemos podido acceder al archivo donde están almacenadas contraseñas y comprobamos que obtenemos una contraseña de la usuaria "Emily" que si bien recordamos es un usuario válido del dominio. Podemos intentar verificar si estas credenciales sirven para autenticarnos en el DC.
Validaremos las credenciales del usuario "emily@administrator.htb" , accederemos al WinRM y verificaremos la flag user.txt.
Se identificó que la cuenta Emily tenía el permiso GenericWrite sobre la cuenta Ethan, lo que permitía modificar atributos como servicePrincipalName (SPN)
. Aprovechando esto, se utilizó TargetedKerberoast para asignar temporalmente un SPN ficticio a la cuenta Ethan.
Luego, se solicitó un TGS (Ticket Granting Service) al DC, obteniendo un hash cifrado asociado al servicio. Finalmente, el SPN asignado fue eliminado para evitar dejar evidencias.
Se realizó el ataque a través de targetedKerberoast y se obtuvo un TGS (Ticket Granting Service) sobre el usuario "ethan@administrator.htb", que posteriormente crackearemos de manera offline.
Procederemos a crackear el hash obtenido para obtener la contraseña del usuario "ethan@adminsitrator.htb".
Validaremos que las credenciales son válidas para el dominio.
Al revisar nuevamente en BloodHound, se verificó que el usuario ethan@administrator.htb dispone de privilegios DCSync, lo que nos permite llevar a cabo un DCSync Attack. Esto nos da la posibilidad de obtener todos los hashes NTLM del archivo NTDS.dit, que es la base de datos de Active Directory y almacena las contraseñas de todos los usuarios del dominio.
Se realizó el ataque de DCSync Attack y obtuvimos todos los hashes NTLM, incluídos los del usuario Administrator.
Verficaremos que el hash NTLM es válido y procederemos a conectarnos a través de evil-winrm con el usuario administrator@administrator.htb y verificar la flag de root.txt.
Accederemos a y comprobaremos el resultado en un formato más cómodo para su análisis.
Debido que disponemos de credenciales de un usuario del dominio que nos aporta HackTheBox, procederemos a realizar una enumeración a través del protocolo RPC con la herramienta .