Write-ups

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.

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 que feroxbuster usará para buscar archivos y directorios.
      • -x: Las extensiones de archivo que quiero buscar (en este caso, phphtml y txt).
  • 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.
  • 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.

 

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 que hydra 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) que hydra usará para acelerar el proceso.
  • Resultados:
    • La contraseña del usuario premo era cassandra.
    • Con esta información, pude acceder al sistema mediante SSH.

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 datos Torrijas.
      • show tables;: Listé todas las tablas en la base de datos.
      • select * from primo;: Mostré el contenido de la tabla primo.
  • Resultados:
    • Encontré una tabla llamada primo con un usuario primo y su contraseña queazeshurmano.

 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 usuario primo con permisos de root.
  • Resultados:
    • El usuario primo podía ejecutar /usr/bin/bpftrace sin contraseña.

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:

  1. 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 OpenSSHApache httpd y MariaDB, todos con versiones específicas que podrían tener vulnerabilidades conocidas.
  2. Credenciales débiles:
    • Se identificaron credenciales débiles para el usuario premo mediante un ataque de fuerza bruta con hydra. La contraseña cassandra fue fácilmente descifrada.
    • En la base de datos Torrijas, se encontró una tabla primo con una contraseña almacenada en texto plano (queazeshurmano), lo que representa una grave vulnerabilidad.
  3. 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.
  4. 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.
  5. Información sensible en la base de datos:
    • La base de datos wordpress contenía credenciales de acceso al sistema, incluyendo el usuario admin y su contraseña (afdvasgvfdsabdgvs6a9vd8sv).

Recomendaciones:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *