hacktricks/network-services-pentesting/pentesting-web/drupal
2024-08-21 09:10:00 +00:00
..
drupal-rce.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:34:23 +00:00
README.md Translated ['network-services-pentesting/pentesting-web/drupal/README.md 2024-08-21 09:10:00 +00:00

Drupal

{% hint style="success" %} Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks
{% endhint %}

{% embed url="https://websec.nl/" %}

Discovery

  • Controlla meta
curl https://www.drupal.org/ | grep 'content="Drupal'
  • Nodo: Drupal indicizza il suo contenuto utilizzando nodi. Un nodo può contenere qualsiasi cosa come un post del blog, un sondaggio, un articolo, ecc. Gli URI delle pagine sono solitamente della forma /node/<nodeid>.
curl drupal-site.com/node/1

Enumerazione

Drupal supporta tre tipi di utenti per impostazione predefinita:

  1. Amministratore: Questo utente ha il controllo completo sul sito web Drupal.
  2. Utente Autenticato: Questi utenti possono accedere al sito web e svolgere operazioni come aggiungere e modificare articoli in base alle loro autorizzazioni.
  3. Anonimo: Tutti i visitatori del sito web sono designati come anonimi. Per impostazione predefinita, questi utenti possono solo leggere i post.

Versione

  • Controlla /CHANGELOG.txt
curl -s http://drupal-site.local/CHANGELOG.txt | grep -m2 ""

Drupal 7.57, 2018-02-21

{% hint style="info" %} Le installazioni più recenti di Drupal bloccano per impostazione predefinita l'accesso ai file CHANGELOG.txt e README.txt. {% endhint %}

Enumerazione degli username

Registrazione

In /user/register prova a creare un username e se il nome è già in uso verrà notificato:

Richiesta nuova password

Se richiedi una nuova password per un username esistente:

Se richiedi una nuova password per un username non esistente:

Ottieni numero di utenti

Accedendo a /user/<number> puoi vedere il numero di utenti esistenti, in questo caso è 2 poiché /users/3 restituisce un errore di non trovato:

Pagine nascoste

Fuzz /node/$ dove $ è un numero (da 1 a 500 ad esempio).
Potresti trovare pagine nascoste (test, dev) che non sono indicate dai motori di ricerca.

Informazioni sui moduli installati

#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

Automatico

droopescan scan drupal -u http://drupal-site.local

RCE

Se hai accesso alla console web di Drupal, controlla queste opzioni per ottenere RCE:

{% content-ref url="drupal-rce.md" %} drupal-rce.md {% endcontent-ref %}

Da XSS a RCE

  • Drupalwned: Script di sfruttamento di Drupal che eleva XSS a RCE o altre vulnerabilità critiche. Per ulteriori informazioni, controlla questo post. Fornisce supporto per le versioni di Drupal 7.X.X, 8.X.X, 9.X.X e 10.X.X, e consente di:
  • Escalation dei privilegi: Crea un utente amministrativo in Drupal.
  • (RCE) Carica Template: Carica template personalizzati con backdoor per Drupal.

Post Sfruttamento

Leggi settings.php

find / -name settings.php -exec grep "drupal_hash_salt\|'database'\|'username'\|'password'\|'host'\|'port'\|'driver'\|'prefix'" {} \; 2>/dev/null

Dump utenti dal DB

mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from users'

Riferimenti

{% embed url="https://websec.nl/" %}

{% hint style="success" %} Impara e pratica il Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks
{% endhint %}