
Exploit RCE educativo per CVE-2021-26700 nell'estensione npm di VS Code, che dimostra il tunneling DNS verso un server Caldera C2 tramite l'esecuzione malevola di package.json.
(Nota: questo manuale è valido solo per i membri del laboratorio DSNS.)
Questa è una vulnerabilità di esecuzione di codice remoto (RCE) che risiedeva in un'estensione di Visual Studio Code (VS Code) chiamata npm, sviluppata da Microsoft e progettata per supportare l'esecuzione degli script npm definiti nel file package.json.
Per sfruttare questa vulnerabilità, l'attaccante potrebbe caricare uno script malevolo nascosto in file sul suo repository GitHub pubblico, con alcune piccole modifiche alla configurazione utilizzata dall'estensione npm. Se qualcuno scarica questo repository e lo apre in un ambiente VS Code che ha l'estensione specificata installata, non appena visualizza il file package.json, lo script malevolo verrà eseguito. Nel mio scenario, lo script malevolo è un file batch chiamato calc.bat che eseguirà un programma deployagent.ps1, il quale stabilirà un tunneling DNS verso il server Caldera del laboratorio DSNS su http://192.168.1.29:8888.
Poiché questa CVE è stata scoperta nel 2021 e il team di Microsoft l'ha corretta nelle versioni successive, dobbiamo trovare un modo per scaricare una versione precedente ([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)) dell'estensione npm. Per comodità, l'ho inclusa su GitHub. Inoltre, è incluso uno script per installare VS Code su Windows.
Su un sistema Windows (ad esempio APT3 nel laboratorio DSNS), esegui il comando per ottenere questo repository
git clone https://github.com/jason-ntu/CVE-2021-26700.git
(Puoi anche scaricare ed estrarre il repository tramite GUI). Si presume che i passaggi successivi vengano eseguiti all'interno del repository (cioè la directory clonata CVE-2021-26700).
Per installare VS Code su Windows, esegui .\install-vscode.bat
Imposta il comando code come scorciatoia per aprire VS Code aggiungendo la seguente configurazione nel file settings.json di VS Code.
Per installare la versione richiesta dell'estensione npm, esegui .\install-extension.bat
Per sfruttare la CVE, devi aprire il repository in VS Code e visualizzare il file package.json. Dopo alcuni secondi di attesa, una connessione DNS da Caldera su http://192.168.1.29:8888 alla vittima dovrebbe essere stata stabilita. L'RCE è completato!
Riferimento: jackadamson's github