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.
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.
Nota: Más info acerca del
proceso: https://blogs.technet.microsoft.com/heyscriptingguy/2013/03/26/decrypt-powershell-secure-string-password/
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):
·
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
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:
- Crear la nueva ACL
- Añadir al usuario al grupo
- Logout login para aplicar los cambios
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.
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
como agrego el canal de hackthebox al telegram
ResponderEliminarnecesitas el enlace de invitación. Escríbeme a vis0r y te lo mando por privado.
Eliminar