Resolución del CTF TORRIJAS
💢CTF DISPONIBLE EN TheHackersLabs💢
❌Nombre: Casa Paco
📈Nivel: Principiante
💻OS: Linux
💢Caregoría: Seguridad Ofensiva
🙋🏽♂️Creador: Curiosidades De Hackers & Condor Hacks
https://thehackerslabs.com/torrijas/
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
. 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://torrija.thl --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
/wordpress
, que indicaba que el sitio web estaba utilizando WordPress.

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.225/wordpress --enumerate ap --force -plugins-detection mixed
- Parámetros explicados:
--url
: La URL del sitio web de WordPress.--enumerate ap
: Enumera todos los plugins y temas activos.--force
: Fuerza la detección de plugins y temas.-plugins-detection mixed
: Usa métodos mixtos para detectar plugins.
- Parámetros explicados:

- Resultados:
- Se identificó un plugin llamado
web-directory-free
. - La versión del plugin estaba desactualizada (1.7.2), y la lista de directorios estaba habilitada, lo que nos permitio enumerar usuarios con este exploit.
- Se identificó un plugin llamado

Accediendo al Sistema: ¿Podemos entrar por SSH?
El puerto 22 (SSH) estaba abierto, así que intenté acceder al sistema mediante hydra, una herramienta que prueba combinaciones de usuarios y contraseñas hasta encontrar una válida. Es como si estuviera probando miles de llaves en una cerradura hasta encontrar la correcta.
- Comando utilizado:
hydra -l premo -P /usr/share/wordlists/rockyou.txt ssh://192.168.18.225 -t 64
- Parámetros explicados:
-l premo
: El nombre de usuario que estoy probando.-P
: La ruta de la lista de contraseñas quehydra
usará para intentar acceder.ssh://192.168.18.225
: La dirección y el protocolo del sistema al que estoy intentando acceder.-t 64
: El número de hilos (intentos simultáneos) quehydra
usará para acelerar el proceso.
- Parámetros explicados:

- Resultados:
- La contraseña del usuario
premo
eracassandra
. - Con esta información, pude acceder al sistema mediante SSH.
- La contraseña del usuario

Una vez dentro, y como con cualquier WordPress fui al archivo wp-config.php
para ver configuraciones y saber el usuario y la contraseña de la base de datos, ya que estaba expuesta.

Explorando la Base de Datos: ¿Qué información hay?
Una vez dentro del sistema, quise explorar la base de datos para ver si había información sensible. Usé MariaDB para conectarme a la base de datos y explorar su contenido.
- Comandos utilizados:
mysql -u root -p show databases; use Torrijas; show tables; select * from primo;
- Explicación:
mysql -u root -p
: Me conecté a MariaDB como usuario root.show databases;
: Listé todas las bases de datos disponibles.use Torrijas;
: Seleccioné la base de datosTorrijas
.show tables;
: Listé todas las tablas en la base de datos.select * from primo;
: Mostré el contenido de la tablaprimo
.
- Explicación:

- Resultados:
- Encontré una tabla llamada
primo
con un usuarioprimo
y su contraseñaqueazeshurmano
.
- Encontré una tabla llamada


Escalada de Privilegios: ¿Podemos convertirnos en administradores?
Aunque ya tenía acceso al sistema, el usuario primo
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 usuarioprimo
con permisos de root.

- Resultados:
- El usuario
primo
podía ejecutar/usr/bin/bpftrace
sin contraseña.
- El usuario

Explotación: Usé bpftrace
para ejecutar una shell con permisos de root tal y como nos indicaba gtfobins:

Conclusión
Este análisis de seguridad en el sistema de «Torrijas» ha revelado varias vulnerabilidades críticas que podrían ser explotadas para obtener acceso no autorizado y escalar privilegios hasta convertirse en administrador del sistema. A continuación, se resumen los hallazgos y recomendaciones:
Hallazgos:
- Puertos y servicios expuestos:
- El sistema tiene puertos abiertos para SSH, HTTP y MySQL, lo que proporciona múltiples puntos de entrada para posibles ataques.
- Los servicios detectados incluyen
OpenSSH
,Apache httpd
yMariaDB
, todos con versiones específicas que podrían tener vulnerabilidades conocidas.
- Credenciales débiles:
- Se identificaron credenciales débiles para el usuario
premo
mediante un ataque de fuerza bruta conhydra
. La contraseñacassandra
fue fácilmente descifrada. - En la base de datos
Torrijas
, se encontró una tablaprimo
con una contraseña almacenada en texto plano (queazeshurmano
), lo que representa una grave vulnerabilidad.
- Se identificaron credenciales débiles para el usuario
- Plugin de WordPress desactualizado:
- El plugin
web-directory-free
en el sitio web de WordPress estaba desactualizado (versión 1.7.2), y la lista de directorios estaba habilitada, lo que podría ser explotado para obtener información sensible.
- El plugin
- Permisos de
sudo
mal configurados:- El usuario
primo
podía ejecutar/usr/bin/bpftrace
sin contraseña, lo que permitió la ejecución de comandos con permisos de root. - El usuario
vivian
podía ejecutar un script (/opt/vivian/script.sh
) con permisos de root, lo que facilitó la escalada de privilegios.
- El usuario
- Información sensible en la base de datos:
- La base de datos
wordpress
contenía credenciales de acceso al sistema, incluyendo el usuarioadmin
y su contraseña (afdvasgvfdsabdgvs6a9vd8sv
).
- La base de datos
Recomendaciones:
- Mejorar la seguridad de las contraseñas:
- Implementar políticas de contraseñas fuertes para todos los usuarios del sistema.
- Evitar el almacenamiento de contraseñas en texto plano en la base de datos.
- Actualizar y restringir plugins de WordPress:
- Mantener todos los plugins y temas de WordPress actualizados a sus versiones más recientes.
- Deshabilitar la lista de directorios en los plugins y restringir los permisos de acceso.
- Configurar correctamente los permisos de
sudo
:- Revisar y restringir los permisos de
sudo
para evitar que usuarios no autorizados puedan ejecutar comandos con privilegios elevados.
- Revisar y restringir los permisos de
- Proteger los servicios expuestos:
- Limitar el acceso a los puertos críticos (SSH, HTTP, MySQL) mediante firewalls y autenticación robusta.
- Mantener los servicios actualizados y aplicar parches de seguridad regularmente.
- Monitoreo y auditoría:
- Implementar sistemas de monitoreo para detectar actividades sospechosas en tiempo real.
- Realizar auditorías periódicas de seguridad para identificar y corregir vulnerabilidades.