Irked | Hack The Box

En este tutorial voy a mostrar como obtuve la bandera root en la máquina Irked de Hack The Box. Esta propiedad se presenta como un desafío de nivel fácil.

Irked

1 de febrero de 2025

Enumeración


Para comenzar voy a realizar un escaneo de puertos con nmap:

nmap

Ahora voy a realizar otro análisis un poco más específico sobre los puertos encontrados:

nmap ports

Por lo que veo la máquina está utilizando el servicio “UnrealIRCd”, el cuál es utilizado para chatear en tiempo real y por lo que estuve investigando es sensible a muchas vulnerabilidades de ejecución remota de código.

Existen varias maneras de vulnerar estos servicios, por el momento voy a seguir con la enumeración para ver si logro recopilar algo más de información, pero acá tengo un camino interesante por dónde ir.

Voy a ingresar en la página web para ver de que se trata:

Web

Únicamente es una imagen con un texto que indica que el sitio ya está casi terminado. No encuentro nada determinante.

Para este punto continué con los análisis de enumeración pero no encontré nada prometedor, con lo cuál me voy a centrar en el servicio "UnrealIRCd" que pareciera ser un buen punto de apoyo.

Explotación


Buscando en internet encontré un exploit para el servicio “unrealIRCd”, para utilizarlo descargue el codigo del repositorio: https://github.com/Ranger11Danger/UnrealIRCd-3.2.8.1-Backdoor.

github clone

Una vez clonado el repositorio, voy a abrir el exploit para ver que es lo que hace y si es necesario modificar algo.

nano exploit

Donde dice “change this” tengo que colocar mi IP local y el numero de puerto de escucha que voy a abrir con netcat.

Ejecuto el exploit y en la terminal de netcat veo la conexión:

exploitshell

Al ingresar al home me encuentro con que hay otro usuario “djmardov”, el cuál contiene la bandera usuario pero solo la puedo abrir con permisos de root, también veo que dentro del usuario hay un archivo ".backup", el cual puede contener información valiosa.

ls la

Por la información del archivo pareciera ser una contraseña utilizada para esteganografía. La esteganografía se suele usar para descifrar imágenes, con lo cual me hace pensar que probablemente me sirva para descifrar algún código en la imagen de la página web.

Voy a ingresar nuevamente en la página y voy a descargar la imagen para luego analizarla con la herramienta steighide, la cuál me permite ver los datos ocultos que pueda llegar a contener la imagen.

steghide

Al querer utilizar la herramienta steghide me pide una contraseña, para la cual usé la contraseña que encontré en el archivo “.backup” y fue un éxito.

Por lo que veo hay un archivo .txt oculto en la imagen, así que lo voy a extraer:

extract

Voy a probar esa contraseña en una shell con el usuario djmardov:

djmardov

¡Y logré ingresar con éxito!

Navegando dentro de djmardov encuentro rápidamente la bandera usuario dentro de “Documents”, ahora solo resta la bandera root.

Escalada de Privilegios


Para escalar privilegios voy a buscar los binarios con SUID activo:

SUID

Veo que en los binarios esta viewuser, lo cual me llama la atención ya que no es un estándar de los binarios y podría ser un binario personalizado por el usuario. Voy a ingresar el comando Strings /usr/bin/viewuser para ver su contenido.

list users

Me indica que la aplicación es utilizada para configurar y dar permisos a usuarios y lo mas importante, llama a /tmp/listusers, con lo cual si puedo editar ese archivo y pasarle un comando para lograr escalar los privilegios.

Voy a agregar unas líneas al archivo /tmp/listenusers:

bin bash

También voy a usar el comando chmod +x para convertirlo en un archivo ejecutable:

ejecutable

Ahora lo que voy a hacer es ejecutar el binario, el cual va a ejecutar /tmp/listenuser:

root

Y así obtengo el permiso de root. Ahora solo resta navegar hasta la carpeta root para conseguir la bandera.

Espero que este tutorial te haya ayudado!