Torrijas
Last updated
Last updated
Principiante
OS - Linux
Seguridad Ofensiva
Realizaremos la primera fase del reconocimiento utilizando la herramienta Nmap, con los siguientes parámetros:
Los puertos 22 (SSH), 80 (HTTP) y 3306 (MySQL) están expuestos. Sin credenciales válidas, por ahora no es posible realizar un ataque contra SSH o MySQL.
Para analizar el puerto 80, prefiero utilizar WhatWeb, ya que me permite obtener información relevante sobre el servidor antes de interactuar directamente desde el navegador. Esta herramienta ayuda a identificar tecnologÃas, versiones y posibles vectores de ataque en el servicio web.
Además, suelo utilizar la herramienta cURL con el parámetro -I
, ya que me permite examinar las cabeceras de respuesta del servidor sin necesidad de cargar completamente la página. Esto es útil para identificar información como el servidor web, métodos permitidos, polÃticas de seguridad (CSP, CORS), redirecciones y otros detalles que pueden ser clave para la fase de enumeración.
Abrimos nuestro navegador e ingresamos la dirección IP del objetivo. Al hacerlo, nos encontramos con una página web que será nuestro punto de partida para el análisis. A partir de aquÃ, podemos inspeccionar el código fuente, interactuar con los elementos visibles y buscar posibles vectores de ataque.
Otra herramienta útil que tenemos instalada en el navegador es Wappalyzer. Esta extensión nos permite identificar rápidamente las tecnologÃas utilizadas en la página web, como el CMS, frameworks, servidor web, bibliotecas JavaScript y otras tecnologÃas relevantes.
Al interactuar con la página web, observamos que su contenido es estático, lo que sugiere que no hay funcionalidades dinámicas visibles a simple vista.
Para descubrir archivos ocultos, directorios o rutas sensibles, realizaremos un fuzzing web utilizando la herramienta Gobuster. Esta técnica nos permitirá enumerar posibles puntos de entrada que no son accesibles desde la interfaz visible del sitio.
Durante la enumeración de directorios, encontramos la ruta /wordpress
. Al acceder, observamos que el tÃtulo del sitio es "Torrijas El Primo", lo que indica que estamos ante una instalación de WordPress. Al revisar el código fuente de la página, no encontramos indicios de que se esté utilizando Virtual Hosting, ni de que haya redirecciones hacia un dominio especÃfico.
Esto sugiere que la aplicación web está funcionando directamente sobre la dirección IP o un único dominio.
Realizaremos una nueva enumeración con Gobuster, pero esta vez enfocándonos en la ruta /wordpress
.
Habiendo enumerado rutas comunes dentro de la instalación de WordPress, decidimos dar el siguiente paso y utilizar WPScan. Esta herramienta está especialmente diseñada para realizar un análisis profundo de sitios web basados en WordPress, identificando vulnerabilidades comunes como:
Plugins y temas vulnerables
Versiones de WordPress expuestas
Usuarios registrados
Archivos sensibles, como wp-config.php
Riesgos de fuerza bruta en el login
Durante el análisis con WPScan, identificamos al usuario "administrator" y realizamos un ataque de fuerza bruta con el diccionario RockYou, pero lo cancelamos por falta de resultados. Luego, decidimos enfocarnos en una enumeración agresiva de plugins para buscar vulnerabilidades conocidas.
Durante la enumeración de plugins con WPScan, encontramos dos complementos:
Akismet 5.3.6, el cual está actualizado a su última versión.
Web Directory Free 1.7.2, que se encuentra desactualizado.
WPScan nos alerta sobre la versión obsoleta de Web Directory Free, lo que indica que podrÃa contener vulnerabilidades conocidas. Realizaremos una búsqueda en Google para verificar si esta versión tiene fallos de seguridad documentados
Hemos encontrado una vulnerabilidad de Local File Inclusion (LFI) en el plugin Web Directory Free 1.7.2. Esto nos permite acceder y leer archivos del sistema en el servidor, lo que podrÃa exponer información sensible como:
/etc/passwd
(en sistemas Linux, para enumerar usuarios)
Siguiendo el enlace, encontramos un Proof of Concept (PoC).
Al interpretar los datos extraÃdos, confirmamos que hemos obtenido información del archivo /etc/passwd
, lo que nos permite enumerar los usuarios del sistema.
En mi caso, prefiero simplificar el proceso y recurrir a herramientas como IA para formatear el texto de manera clara y ordenada. Esto facilita la identificación de usuarios clave y posibles vectores de ataque.
Durante la enumeración del archivo /etc/passwd
, identificamos dos usuarios del sistema:
Primo
Premo
Dado que el puerto 22 (SSH) está expuesto, intentaremos realizar un ataque de fuerza bruta contra el servicio SSH, con el objetivo de obtener credenciales válidas.
Hemos conseguido credenciales válidas tras el ataque de fuerza bruta, lo que nos permite acceder al sistema a través de SSH. Procedemos a conectarnos con el siguiente comando:
Dado que estamos frente a una instalación de WordPress y el puerto 3306 (MySQL) está expuesto, nuestro siguiente objetivo es buscar credenciales de la base de datos.
Uno de los archivos clave en WordPress es wp-config.php
, ubicado generalmente en /var/www/html/
. Este archivo contiene información sensible, incluyendo:
Credenciales de MySQL (DB_USER
, DB_PASSWORD
)
Nombre de la base de datos (DB_NAME
)
Hemos obtenido credenciales válidas para acceder a la base de datos MySQL.
Hemos obtenido el hash MD5 de WordPress del usuario "administrator", pero dado que ya hemos logrado la intrusión al sistema, su utilidad es limitada. Aun asÃ, podrÃamos intentar crackearlo para verificar si el usuario reutiliza la misma contraseña en otros servicios, como SSH o sudo.
Sin embargo, en lugar de enfocarnos únicamente en el usuario administrator, podrÃamos probar algo más interesante:
💡 Intentar conectarnos como el usuario root en MySQL
En Linux, el usuario con mayores privilegios es root.
Al conectarnos a MySQL con el usuario root, confirmamos la reutilización de contraseñas y tuvimos acceso a múltiples bases de datos y tablas, lo que nos permitió encontrar la contraseña en texto plano del usuario "primo", logrando un pivoting de usuario.
Al verificar en GTFOBins, confirmamos que el binario /usr/bin/bpftrace
puede ser explotado para obtener privilegios elevados sin necesidad de proporcionar una contraseña de root.
bpftrace es un lenguaje de trazado de alto nivel para Linux que utiliza eBPF para realizar un seguimiento dinámico del kernel y de los usuarios.
Dado que el usuario "primo" tiene permisos para ejecutar bpftrace
sin necesidad de autenticación adicional, podemos aprovechar esta vulnerabilidad para ejecutar un shell con privilegios elevados.
La máquina vulnerable presentaba múltiples vectores de ataque, desde la explotación de un LFI hasta la escalación de privilegios a través de binarios mal configurados, lo que permitió comprometer completamente el sistema.