Descripción

Try to go as far as you can to get the flag 😉

Download link Mega
Download link Drive

MD5: 93CA43AB1F47294EFCC77E19C2DB0034
Zip Password: hackiit_canyoudothat

Advice: Save a snapshot on login. The “bastion” user is not related to the challenge.

Write-Up

Lo primero será descargar el zip de la máquina virtual y montarlo en Virtual Box (doble click sobre el fichero con extensión “.vbox”). Una vez montada la máquina tendremos que iniciarla y nos aparecerá la pantalla de login:


Aparentemente no podemos hacer nada con la máquina, por lo que procedemos realizarle un escaneo de los servicios que pueda tener en línea. Realizando un nmap vemos que el puerto 22 (servicio ssh) se encuentra abierto:

Como solo tiene el servicio ssh intentamos hacer un ataque de fuerza bruta utilizando el programa “hydra” y el diccionario “rockyou” al usuario “hackiit” (ya que el usuario bastión nos dice que no está relacionado con el reto) con el siguiente comando:

hydra -l hackiit -P /usr/share/wordlists/rockyou.txt 192.168.10.238 ssh 

Cuando haya pasado un rato (puede tardar casi 1 hora) encontrará la contraseña para el usuario: “forever21”. Una vez hayamos accedido al usuario “hackiit” con la contraseña comentada anteriormente, tendremos que buscar si hay alguna carpeta o fichero llamativo. Si buscamos bien encontramos la carpeta “/home/.Whatsinside” pero no tendremos permisos para acceder a ella por lo que deberemos de escalar privilegios.

Para realizar el escalado de privilegios buscaremos alguna vulnerabilidad que nos permita este fin con la herramienta “Linux Exploit Suggester”. Una vez descargada y ejecutada vemos que el sistema es vulnerable al exploit “RationalLove” el cual nos permite obtener privilegios de super usuario. Para ejecutar este exploit tenemos que descargarnos el archivo que nos indica “Linux Exploit Suggester”, compilarlo (ya que es un archivo en C) y ejecutarlo:

Con esto ya somos usuarios root y podemos ver el contenido de la carpeta “/home/.Whatsinside”:

Por lo tanto la flag es:

hackiit_flag{3sc4l4t10n_d0n3}

Write-Up alternativo gracias a JlXip

En este reto se nos da una máquina virtual, con su disco duro y una snapshot. Al iniciar desde la snapshot, vemos lo siguiente.


Naturalmente, no tenemos la contraseña del usuario “hackiit”. Lo primero que se le viene a uno a la cabeza es intentar montar el disco duro desde otra máquina virtual y acceder a los contenidos. Para ello, y asumiendo que se usa VirtualBox, en las propiedades de la otra máquina, creamos un controlador SATA en la pestaña de Almacenamiento y conectamos el disco duro virtual de la primera. Al inciar la máquina, vemos que la partición principal está cifrada con LUKS:

Necesitamos obtener más información. Ejecutamos un fdisk -l para ver cómo están distribuidas las particiones en el disco duro que hemos añadido.

Como se puede ver, Kali ha asignado al disco duro la ruta /dev/sdb, y la partición que nos interesa es /dev/sdb5. Ahora, obtenemos información sobre cómo está cifrada esta.

Descubrimos que está encriptada con AES-xts-plain64, con una clave de 512 bits.

La idea es que tenemos una snapshot de la máquina con la partición ya desenciptada, así que lo que tendremos que hacer será obtener la clave maestra de cifrado, que, por supuesto, está en memoria. Entonces, desconectamos el disco duro de la MV con Kali, arrancamos la máquina que nos dan, y, desde el sistema anfitrión, efectuamos un volcado de memoria.

Una vez tenemos el memory dump, tenemos que buscar las claves de cifrado que están en memoria. Para ello, utilizamos la herramienta findaes, cuyo propósito es exactamente este.

Lo ejecutamos, y obtenemos un buen puñado de claves AES en memoria.


Sin embargo, cuando hemos inspeccionado la partición con luksDump, hemos visto que estaba encriptada con una clave de 512 bits, pero el programa nos detecta como mucho claves de 256 bits. Lo que tendremos que hacer es buscar aquellas que sean consecutivas en memoria (las he marcado en rojo). Ahora, como el sistema utiliza littleendian, tendremos que combinarlas al revés. Una vez tenemos la clave, la escribimos a un archivo, decodificamos de hexadecimal a bytes, y podemos desencriptar la partición en Kali.

El comando se ejecuta sin errores, así que todo ha ido correctamente. Podemos ver información sobre las particiones en el LVM cifrado, de nuevo, con fdisk -l.

La que nos interesa es, por supuesto, la raíz, así que la montamos, y ya es cuestión de buscar entre los archivos del sistema hasta hallar la flag.

Leave a comment

Your email address will not be published. Required fields are marked *