Reel
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
Reel
es una máquina de dificultad media a alta, que requiere un ataque del lado del cliente para eludir el perímetro y destaca una técnica para obtener privilegios en un entorno de Active Directory.
Realizaremos un reconocimiento con nmap para ver los puertos que están expuestos en la máquina Reel.
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.
Procederemos a realizar un reconocimiento inicial de la máquina a través de la herramienta de Netexec y verificaremos el nombre del equipo y del dominio.
Procederemos a añadir las entradas en nuestro archivo /etc/hosts.
Procederemos a realizar una enumeración al servicio del FTP, verificamos que podemos acceder con el usuario Anonymous sin proporcionarle credenciales.
Al verificar el contenido del FTP, comprobamos que existen 3 archivos que procederemos a descargar en nuestro equipo local.
Revisando el archivo readme.txt verificamos que indica un comentario informando de enviarle un correo con algún archivo con extensión RTF el cual revisará y convertirá posteriormente.
Esto puede ser una pista para poder avanzar.
Revisando de los metadatos del archivo (Windows Event Forwarding.docx), nos encontramos que el "Creator" del documento es (nico@megabank.com)
Procederemos a revisar el servicio SMTP (puerto 25) a través de realizar un telnet para ver si podemos encontrar información sobre el servidor SMTP.
Probaremos con usuarios aleatorios, verificamos que podemos enumerar usuarios a través del correo ya que nos devuelve un estado 250 OK.
Una vez identificado que el correo (nico@megabank.com) es válido al parecer, procederemos a intentar buscar información sobre archivos RTF maliciosos tal y como nos indicaba el archivo readme.txt que nos encontramos previamente, ya que supuestamente enviándole un correo con un archivo RTF, x usuario lo abriría.
El objetivo será intentar crear un archivo RTF malicioso con un payload para otorgarnos una Reverse Shell y ganar acceso al sistema.
Procederemos a descargarnos el repositorio de GitHub para intentar explotar esta vulnerabilidad, verificaremos que el exploit se ejecuta correctamente.
Creamos un payload de reverse shell con extensión HTA porque este tipo de archivo se ejecuta directamente en Windows usando mshta.exe. Esto nos permite aprovechar la vulnerabilidad del archivo RTF para que cargue y ejecute el HTA malicioso fácilmente. Además, el HTA puede lanzar comandos como PowerShell, que usamos para establecer la conexión de reverse shell.
Procederemos a realizar el archivo RTF malicioso con el exploit del GitHub descargado, procederemos a generar un archivo llamado "pawned.rtf" indicándole que ejecute el archivo HTA que dejaremos disponible a través de un servidor web desde nuestro equipo.
El siguiente paso será levantar un servidor web con Python donde tenemos alojado el archivo HTA, también nos pondremos en escucha por el puerto especificado en el payload HTA de la Reverse Shell, y también enviaremos un correo a (nico@megabank.com) pasándole el archivo RTF malicioso.
Verificamos que finalmente el archivo se ha enviado correctamente, y al parecer el usuario (nico@megabank.com) lo ha abierto y hemos recibido una Reverse Shell.
Verificaremos que encontramos la flag de user.txt.
Revisando el directorio (C:\Users\nico\Desktop), verificamos que nos encontramos con un archivo XML el cual contiene supuestamente las credenciales del usuario (Tom@htb.local).
La contraseña se encuentra en formato SecureString, por lo tanto, deberemos de desencriptarla para visualizarla en texto plano.
Usamos PowerShell para importar credenciales desde un archivo cred.xml
con Import-Clixml
, extraer la contraseña en texto plano usando $cred.GetNetworkCredential().Password
y mostrarla en la consola con Write-Output
.
Verificamos que la contraseña en texto plano es: 1ts-mag1c!!!
Procederemos a acceder a través de SSH con estas nuevas credenciales obtenidas, verificamos que hemos ganado acceso correctamente.
Revisando el directorio del usuario actual, verificamos que nos encontramos con unos directorios al parecer de una auditoría de AD que realizaron a través de BloodHound.
Investigando más sobre los directorios, nos encontramos un archivo (acls.csv) el cual parece ser un reporte de la auditoría realizada con BloodHound.
Para transferirnos este archivo a nuestro equipo local, procederemos a crear un servidor SMB y a compartir el archivo.
Revisaremos que disponemos del archivo en nuestro equipo local, procederemos a abrirlo para visualizar su contenido.
Revisando el archivo CSV, vemos que se trata de un reporte de BloodHound. Encontramos que el usuario que disponemos actualmente (tom@htb.local) dispone de permisos de WriteOwner sobre el usuario (claire@htb.local).
Este permiso nos otorga la capacidad de cambiar la contraseña del usuario.
Volveremos al equipo con el usuario (tom@htb.local) y verificamos que en uno de los directorios nos encontramos con el PowerView.ps1, necesario para realizar la explotación del privilegio.
Procederemos a importar el PS1 en el equipo.
Procederemos a convertirnos en propietarios del usuario (claire@htb.local), nos asignaremos permisos de "ResetPassword" y procederemos a modificar la contraseña del usuario.
Accederemos a través del SSH con el usuario (claire@htb.local).
Volviendo al archivo CSV, verificamos que el usuario que disponemos actualmente (claire@htb.local) dispone de permisos de WriteDacl sobre el grupo "Backup_Admins".
Este permiso nos permite añadirnos al grupo mencionado.
Procederemos a añadirnos como miembros del grupo "Backup_Admins", verificaremos que formamos parte del grupo.
Volveremos a iniciar sesión con estas credenciales en el SSH, para que los cambios se hayan asignado correctamente.
Revisamos que formando parte de este grupo, podemos listar el contenido del directorio (C:\Users\Administrator\Desktop). No podemos visualizar la flag de root.txt, pero nos encontramos con un directorio el cual contiene una copia de seguridad de Scripts.
Revisando el contenido de losscripts, verificamos que nos aparece una contraseña en texto plano supuestamente del Administrador.
Procederemos a acceder mediante el SSH con estas credenciales del usuario Administrator, verificamos el acceso correctamente y de la flag de root.txt
Accederemos a y comprobaremos el resultado en un formato más cómodo para su análisis.
Realizando una búsqueda por Internet, nos encontramos el siguiente GitHub el cual realiza archivos RTF maliciosos.