Responsive image

HackMyVM - Locker

17 octubre 2021

Esta máquina se encuentra en la plataforma HackMyVM y ha sido creada por el usuario sml.

Una máquina sencilla con una vulnerabilidad RCE en la web PHP explotable para conseguir acceso y una escalada de privilegios directa entre www-data y root.

# Dificultad
Acceso Muy Fácil
Escalada de privilegios Fácil

Enumeración


La máquina objetivo y la máquina atacante se encuentran en la misma red, esto permite hallar la dirección IP de la máquina objetivo mediante un escaneo ARP con la herramienta arp-scan.

error loading image :(

La herramienta ha detectado 3 IP:

Una vez identificada la máquina objetivo se comienza con el escaneo de puertos. Como es habitual para el escaneo se utiliza nmap y se divide en dos fases: la primera de un escaneo rápido de los 65535 puertos para detectar aquellos abiertos y la segunda para realizar una enumeración más exahustiva usando scripts básicos de los puertos abiertos.

error loading image :(

error loading image :(

Únicamente se ha detectado el servicio HTTP en el puerto 80.

Consultando la web mediante el navegador se encuentra la siguiente vista.

error loading image :(

Al acceder al enlace aparece una imagen de un candado. Fijándose en la URL se observa un parámetro número que al modificarse cambia la imagen mostrada únicamente se encuentran tres imágenes.

error loading image :(
error loading image :(
error loading image :(

Que se puedan modificar las imágenes cambiando un parámetro de la URL da a pensar que sería posible un ataque LFI o RCE desde este campo de la URL. Tras probar varios payloads se encuentra uno que permite la ejecución remota de comandos: ; comando ;

error loading image :(

Ganar acceso


Se ejecuta una reverse shell con netcat contra la máquina objetivo y se consigue acceso a la máquina como www-data.

error loading image :(

error loading image :(

Tras un tratamiento de la TTY se obtiene una SHELL interactiva. Para saber como se realiza este tratamiento, la web thehackersnow.com tiene una guía muy detallada de como hacerlo.

error loading image :(

Se consultan los permisos suid de www-data y se encuentra uno que nunca se había visto antes: /usr/sbin/sulogin

error loading image :(

Consultando el manual del binario se encuentra que ejecuta una shell como root a partir de la variable de entorno SUSHELL.

error loading image :(

Escalada de privilegios


La escalada de privilegios consistirá en ejecutar una shell como root a partir del binario sulogin. En primer lugar se pruebó asignando un archivo con una /bin/bash a la variable de entorno SUSHELL pero no se tuvo éxito. Por esto, se prueba programando una shell muy simple en C para crear un binario y asignarlo a la variable de entorno.

error loading image :(

Se compila el binario y se ejecuta para comprobar que funciona correctamente.

error loading image :(

Ahora será necesario descargarlo en el máquina objetivo. Para eso se utiliza un servicio HTTP a partir de python y descargar el binario en la máquina objetivo mediante wget.

error loading image :(

error loading image :(

Finalmente, se modifica la variable de entorno, se dan permisos de dan permisos de ejecución al binario y se ejecuta el binario con la opción -e.

error loading image :(

Con esto, ya se obtiene el root a la máquina y pueden consultarse la flags de user y root.

error loading image :(
error loading image :(