
Lehrreicher RCE-Exploit für CVE-2021-26700 in der VS Code npm-Erweiterung, der DNS-Tunneling zu einem Caldera C2-Server via Ausführung einer bösartigen package.json demonstriert.
(Hinweis: Dieses Handbuch gilt nur für Mitglieder des DSNS-Labors.)
Hierbei handelt es sich um eine Remote Code Execution (RCE)-Schwachstelle, die in einer Erweiterung von Visual Studio Code (VS Code) namens npm vorhanden war, die von Microsoft entwickelt wurde und darauf abzielte, die Ausführung der in der package.json definierten npm-Skripte zu unterstützen.
Um diese Schwachstelle auszunutzen, könnte der Angreifer schädliche Skripte, die in Dateien versteckt sind, in sein öffentliches GitHub-Repository hochladen, mit einer geringfügigen Anpassung der von der npm-Erweiterung verwendeten Konfiguration. Wenn jemand dieses Repository herunterlädt und in einer VS Code-Umgebung öffnet, die die angegebene Erweiterung installiert hat, wird das schädliche Skript ausgeführt, sobald er/sie die Datei package.json anzeigt. In meinem Szenario handelt es sich bei dem schädlichen Skript um eine Batch-Datei namens calc.bat, die ein Programm deployagent.ps1 ausführt, das dann einen DNS-Tunnel zum Caldera-Server des DSNS-Labors unter http://192.168.1.29:8888 aufbaut.
Da diese CVE im Jahr 2021 gefunden wurde und das Microsoft-Team sie in späteren Versionen behoben hat, müssen wir einen Weg finden, eine ältere Version ([v0.3.13](https://eg2.gallery.vsassets.io/_apis/public/gallery/publisher/eg2/extension/vscode-npm- script/0.3.13/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage)) der npm-Erweiterung herunterzuladen. Stattdessen habe ich sie aus Bequemlichkeit auf GitHub beigefügt. Ebenfalls enthalten ist ein Skript zur Installation von VS Code unter Windows.
Führen Sie unter Windows (z. B. APT3 im DSNS-Lab) den Befehl aus, um dieses Repository zu erhalten
git clone https://github.com/jason-ntu/CVE-2021-26700.git
(Sie können das Repository auch über die grafische Benutzeroberfläche herunterladen und entpacken). Die folgenden Schritte werden innerhalb des Repositorys (d. h. des geklonten CVE-2021-26700-Verzeichnisses) ausgeführt.
Um VS Code unter Windows zu installieren, führen Sie .\install-vscode.bat aus
Richten Sie den Befehl code als Verknüpfung zum Öffnen von VS Code ein, indem Sie die folgende Konfiguration in die settings.json von VS Code einfügen.
Um die erforderliche Version der npm-Erweiterung zu installieren, führen Sie .\install-extension.bat aus
Um die CVE auszunutzen, müssen Sie das Repository in VS Code öffnen und die Datei package.json anzeigen. Nach einigen Sekunden Wartezeit sollte eine DNS-Verbindung von Caldera unter http://192.168.1.29:8888 zum Opfer hergestellt worden sein. Das RCE ist abgeschlossen!
Referenz: jackadamson's github