
Drupalgeddon3 RCE Exploit-Labor mit Docker-basierter verwundbarer Umgebung und Metasploit-Integration für praktisches Training zur Ausnutzung von CVE-2018-7602.
Eine Schwachstelle zur Remote-Code-Ausführung besteht in mehreren Subsystemen von Drupal 7.x und 8.x. Dies könnte Angreifern potenziell erlauben, mehrere Angriffsvektoren auf einer Drupal-Site auszunutzen, was zu einer Kompromittierung der Site führen könnte. Diese Schwachstelle hängt mit Drupal Core zusammen – Hochkritisch – Remote Code Execution – SA-CORE-2018-002. Sowohl SA-CORE-2018-002 als auch diese Schwachstelle werden derzeit in freier Wildbahn ausgenutzt. --- MITRE
Aufgrund einiger Netzwerkbeschränkungen in Docker für Mac (https://docs.docker.com/docker-for-mac/networking/#use-cases-and-workarounds) und Windows sollte der untenstehende Code auf einer LINUX-Maschine mit installiertem Docker und Docker-Compose ausgeführt werden.
Hier haben wir eine zweistufige Vorgehensweise: Zuerst die Drupal-Maschine mit einer verwundbaren Version 7.57 und dann die Angreifer-Maschine mit einem modifizierten Exploit, der es uns ermöglicht, die potenzielle Gefährdung der Schwachstelle aufzuzeigen.
# Angenommen, Sie befinden sich im Verzeichnis CVE-2018-7602
cd vulnerable_machine
docker-compose up -d
cd ..
Warnung Stellen Sie sicher, dass Port 80 vor der Ausführung des Befehls nicht von einer anderen Software verwendet wird.
Angreifer-Maschine: Hier instanziieren wir ein Metasploit-Docker-Image, das einen angepassten Exploit (drupal_drupalgeddon3_commander) enthält, der später verwendet wird. Dazu führen wir Folgendes aus:
cd attacking_machine
docker-compose run --rm --service-ports -e MSF_UID=$(id -u) -e MSF_GID=$(id -g) ms
Falls Sie bei der Ausführung der nachstehenden Befehle auf Probleme stoßen, senden Sie bitte eine E-Mail an [email protected] mit dem Ausführungsprotokoll. Er wird Ihnen gerne bei der Lösung des Problems helfen.
Nachdem Drupal nun läuft, müssen wir es konfigurieren und einige Inhalte mit Drupal erstellen. Folgen Sie dazu den nächsten Schritten:


# Übersicht
Wir werden versuchen, die Schwachstelle zu nutzen, um Befehle wie ls oder whoami auszuführen,
um zu zeigen, dass es möglich ist, Befehle remote auszuführen.
Nachdem wir nun die anfällige Drupal-Instanz auf localhost laufen haben, beginnen wir mit der Nutzung der in der Umgebungseinrichtung erstellten Metasploit-Instanz.
In Metasploit müssen wir die Exploit-Datenbank mit dem folgenden Befehl neu laden:
reload_all
Damit erhalten wir Zugriff auf unseren benötigten Exploit. Um die benötigten Exploit-Informationen vorzubereiten, benötigen wir die Sitzungs-Cookies eines Benutzers, der auf der Seite angemeldet ist.
Um dies auf einfache Weise zu erhalten: Angenommen, Sie sind noch angemeldet. Gehen Sie zu den Entwicklertools, sehen Sie sich den Cookie-Speicher an und speichern Sie ihn für später. Am Ende sollten Sie so etwas wie
#<Sitzungsname>=<Sitzungstoken>
SESS49960de5880e8c687434170f6476605b=DGHZKHWaNC51nrVQHEsTD0_PS68EeNyvGjdzk1SVmss
Ein Beispiel mit Google Chrome zur Ermittlung des Cookies

Jetzt beginnen wir mit dem Laden des Exploits mit Metasploit. Führen Sie dazu die folgenden Befehle aus:
use exploits/unix/webapp/drupal_drupalgeddon3_commander
show options
Wie Sie sehen können, benötigen wir einige Parameter. Wir setzen die Parameter wie folgt:
set RHOSTS localhost
set DRUPAL_SESSION <Sitzungsname>=<Sitzungstoken>
Nachdem wir dies getan haben, können wir ausführen:
exploit
Wir erhalten den Benutzer, der derzeit den Webserver ausführt. In diesem Fall www-data. Da der Standardbefehl auf whoami gesetzt ist. Sie werden auch einige zusätzliche Informationen im JSON-Format sehen, die für uns nicht relevant sind.
Das endgültige Exploit-Ergebnis sieht so aus:

Ende des Experiments: Wenn Sie alle Experimente erfolgreich ausgeführt haben, ist dies das Ende. Herzlichen Glückwunsch.
Wenn Sie weiter experimentieren möchten, können Sie den Befehlswert mit der set-Anweisung ändern. Oder modifizieren Sie das von Metasploit verwendete Ruby-Skript.