[HTB Write-up] Reel

Volvemos con una nueva entrega de write-ups de HTB, en este caso Reel, una máquina Windows con mucha sabrosura y que nos enseñará bastante tela acerca de DA, Powershell y de cómo aprovechar privilegios heredados. ¡Vamos allá!
 
Scanning

Como siempre, empezamos con un SYN scan para descubrir puertos abiertos de la forma más rápida y sigilosa posible. Tras esto, podemos comprobar las versiones y ejecutar scripts NSE seguros.

-sS
-sV

 
Realizando las comprobaciones típicas con SMB no descubrimos nada interesante, por lo que nos centraremos en el FTP anónimo corriendo en el puerto 21. Encontramos información interesante en el archivo “Readme.txt” alojado en el servidor, del que es posible deducir que tenemos que enviar un email con un docx para que sea procesado en la parte del servidor pero, ¿con cualquier dirección de correo? Si echamos un vistazo a los metadatos… (la herramienta exiftool puede servirnos para este propósito)


Ya tenemos nuestro email origen y si tratamos de impersonar a “Nico”, parece que conseguimos enviar mensajes en su nombre.

 

Tras comprobar esto, necesitamos enviar un archivo malicioso. Para ello, utilizaremos el módulo de metasploit “office_word_hta”.


Adjuntando el archivo resultante al correo nos dará una reverse shell a los pocos minutos y podremos obtener la flag de usuario.

Privesc
 
El primer paso en el escalado es sencillo: encontramos un fichero en el Escritorio del usuario “Nico” llamado cred.xml, que nos llama bastante la atención…


¡Se trata de un PS-Credential stored object! Por tanto, debemos crear un objeto nuevo con este fichero para luego poder extraer las credenciales en texto plano.
Por tanto, creamos un script sencillo en Powershell (que creará el nuevo objeto utilizando como input el fichero .xml y mostrará las credenciales en claro) y lo ejecutaremos en remoto desde la máquina víctima utilizando el módulo de powershell downloadstring().



¡Ya tenemos nuestras credenciales para cambiar de usuario! Esta vez como “Tom”, descubrimos que si navegamos un poco por su Escritorio, hay una versión antigua de SharpHound.


SharpHound nos permite descubrir dependencias escondidas en entornos de Directorio Activo y, junto con BloodHound, que presenta una interfaz gráfica para ello, podremos de manera sencilla descubrir nuestro siguiente paso a seguir. Actualizamos SharpHound.ps1 a la última versión y lo subimos a la víctima.


La forma más sencilla de descargar el archivo resultante de la ejecución es montar un SMBserver con Impacket para pasarnos el zip, indicando desde la víctima que se copie el zip.



Nota: Utilizaremos Bloodhound en nuestro equipo. Para ello, realizaremos los siguientes pasos una vez instalado Bloodhound (apt-get):
·        Creamos directorios necesarios para la configuración:


·        Abrimos Bloodhound (comando bloodhound) y nos logamos (default creds “neo4j – neo4j”). Una vez abierto subimos los csv con el botón de “upload data” a la derecha, con lo que se nos actualizará la BBDD.


Ahora es momento de ver cómo escalar privilegios. Nuestro objetivo será comprobar cómo pasamos del usuario Tom a un Admin, por lo que, como inicio de nuestro grafo elegimos al usuario TOM.


El objetivo final será algún grupo de admins, en nuestro caso BACKUP_ADMIN, aunque la mejor forma de comprobar escenarios diferentes es comprobar una a una las opciones que tenemos.


Una vez establecidos el inicio y el objetivo, si volvemos al inicio (TOM), encontraremos que ya tenemos nuestro camino del pwn!


Parece que tenemos permisos de escritura sobre Claire, y a partir de ahí podremos acceder al administrador.
Aquí entra en juego el otro script ps1 que vimos: ~\Tom\Desktop\Bloodhound\Powerview.ps1.
Nos fijaremos en tres funciones de PowerView.ps1 (descargando el script e inspeccionando el código):
  • Set-DomainObjectOwner


  •       Add-DomainObjectAcl

  •       Set-DomainUserPassword


Realizando unas pequeñas modificaciones sobre los ejemplos facilitados en PowerView.ps1, conseguiremos:
  • Seleccionar como propietario del objeto “Claire” al usuario “Tom”.
  • Permitir a “Tom” resetear la contraseña de “Claire”.
  • Modificar la contraseña.

Una vez realizados estos pasos, podremos conectar via ssh con las credenciales “Claire – L1k0rd3b3ll0t4”.


¿Cómo continuamos? Bloodhound nos dijo que podíamos meter a Claire en el grupo de Backup_admin, así que eso es lo que haremos:
  1. Crear la nueva ACL
  2. Añadir al usuario al grupo
  3.  Logout login para aplicar los cambios

Tras esto tenemos acceso a la carpeta home de Administrator, pero no podemos leer el root.txt


Pero hay otra carpeta llamada “Backup Scripts” con varios scripts para realizar backups periódicos. En uno de ellos (BackupScript.ps1) encontramos la pass de admin en texto claro, con lo que podemos logar de nuevo por ssh.



Y hasta aquí el post de hoy, cualquier duda o sugerencia, no dudes en dejar un comentario o pregunta en el canal de Telegram - HackTheBox Hispano.

Si tienes algún write-up no dudes en decírnoslo para darte acceso al repositorio de write-ups de Hackplayers: https://github.com/Hackplayers/hackthebox-writeups/blob/master/README.md

Comentarios

  1. como agrego el canal de hackthebox al telegram

    ResponderEliminar
    Respuestas
    1. necesitas el enlace de invitación. Escríbeme a vis0r y te lo mando por privado.

      Eliminar

Publicar un comentario