WriteUp CTF Reel Hack The Box

Introducción

Reel es un CTF disponible en la plataforma Hack The Box, de categoría difícil. Es una máquina muy completa que entre otras cosas deberemos realizar un ataque de Phishing para resolverla. Partiremos de unos documentos que encontraremos en un servicio FTP con acceso anónimo, posteriormente crearemos un archivo RTF malicioso que enviaremos a la máquina víctima a través de un email malicioso y que explotará el equipo víctima. Una vez conectados a la máquina víctima buscaremos entre los diferentes usuarios y grupos la forma de escalar privilegios hasta llegar a administrador.

Enumeración

NMAP

Como siempre, comenzamos realizando un escaneo de los servicios abiertos en el target.

Y seguimos realizando un escaneo más detallada únicamente de los puertos que están abiertos.

A partir de los resultados de NMAP, se descubrieron tres puertos en la máquina destino:

  • Puerto 21: FTP
  • Puerto 22: SSH
  • Puerto 25: SMTP

FTP

Vamos a comenzar por el servidor FTP. Vamos a comprobar si permite acceso remoto.

Permite el acceso anónimo. Comprobamos si contiene información interesante.

Descargamos los archivos disponibles en nuestra máquina atacante.

Estudio de archivos encontrado

Comenzamos estudiando los metadatos de los archivos. Para ello, utilizaremos la herramienta exiftool.

Después de analizar los metadatos de los tres archivos, el único dato interesante extraído es un email del creador: nico@megabank.com.

Abrimos el archivo readme.txt

Puede ser una pista de cara a la explotación que deberemos realizar posteriormente.

SMTP

Hacemos telnet al puerto 25 del servidor para verificar si podemos obtener información del servidor SMTP. Primero probaremos con usuarios aleatorios. Probamos los usuarios elhackeretico.com, elhackeretico@elhackeretico.com., que nos reporta 250 OK, que resulta extraño. Entonces utilizamos el email que encontramos anteriormente, nico@megabank.com, que también resuelve con un 250 OK. Entonces volvemos a probar con elhackeretico@megabank.com que resuelve con código 550 de usuario desconocido.

Entonces, a partir de esto podemos suponer que el servidor solo verifica los usuarios con el dominio megabank. También sabemos. Que nico@megabank.com es un usuario reconocido por el sistema.

Explotación

Una vez tenemos un correo electrónico válido, vamos a buscar información sobre los archivos rtf maliciosos como se indicaba en el archivo readme.txt. Después de realizar la búsqueda en Google, obtenemos un CVE-2017-0199.

Pasos para la explotación

1- Primero creamos un archivo HTA. Para ello, utilizamos msfvenom.

2- En segundo lugar, generamos un archivo RTF malicioso.

3- En tercer lugar, configuramos un servidor http con Python y un oyente de netcat.

4- Finalmente, solo tendremos que enviar un correo al usuario nico@megabank.com, que es un usuario válido del sistema.

Y ya tendremos acceso a la máquina víctima.

Ahora tengo Shell reversa como usuario nico, que no pertenece al grupo de administradores, tendremos que pivotar a usuarios con mayores privilegios.

Usuario Tom

Vamos al directorio del usuario nico, para ver su contenido.

Tendríamos la flag user.txt, solo habría que abrir el contenido del archivo y copiar la flag.

Otro archivo que puede ser interesante es cred.xml.

Pudimos recopilar la siguiente información:

  • Nombre de usuario: Tom
  • Contraseña: encriptada

Ahora debemos convertir la contraseña encriptada a texto plano para poder utilizarla. El siguiente recurso puede ser útil.

Ya tenemos el par usuario:contraseña, tom:1ts-mag1c!!!

Sabiendo esto, y recordando que el puerto 22, SSH, está abierto, vamos a iniciar sesión en este servicio con las credenciales anteriores.

Buscamos el directorio Desktop.  

Después de realizar un recorrido por los directorios más interesante, llegamos al directorio Ingestors, que contiene lo que parecen archivos de una auditoría y los ejecutables de varios ingestors. Tenemos el archivo acls.csv que es un archivo que puede contener información interesante. Descargamos en nuestra máquina este archivo para analizarlo. Para ello creamos un servidor SMB con impacket-smbserver.

Abrimos el archivo con libre office.  El archivo contiene un reporte de BloodHound, con información del sistema. Dentro de este archivo buscamos al usuario tom, para ver que privilegios tiene. Vemos que tiene privilegios WriteOwner sobre el usuario claire, con lo que podemos cambiar su contraseña y conectarnos utilizando este usuario. Para ello, utilizamos el script powerview.ps1.

*Nota: La nueva contraseña debe contener mayúsculas y números.

A continuación, nos conectamos al usuario claire con la nueva contraseña.

Usuario Claire

Volvemos al archivo acls.csv. Ahora buscamos al usuario claire y que privilegios tiene. Vemos que nos podemos añadir al grupo Backup_Admins porque tenemos el privilegio WriteDACL.

Escalada de privilegios

Dado que ahora Claire es miembro de backup_admins, vamos a enumerar el sistema. No podremos leer la flag pero podemos ver contenido en Backup Scripts.

Descubrimos la contraseña de administrator en el script BackupScript.ps1

Las credenciales son administrator:Cr4ckMeIfYouC4n!

Inicio de sesión como administrador

Como tenemos la contraseña de usuario administrador en texto plano, usamos SSH para iniciar sesión como administrator. Buscamos la flag root y ya tendremos acabada la máquina.

No responses yet

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *