
(Примечание: данное руководство действительно только для участников лаборатории DSNS.)
Это уязвимость удаленного выполнения кода (RCE), которая находилась в расширении Visual Studio Code (VS Code) под названием npm, разработанном Microsoft и предназначенном для поддержки выполнения скриптов npm, определенных в файле package.json.
Для эксплуатации этой уязвимости злоумышленник может загрузить вредоносный скрипт, скрытый в файлах, в свой публичный репозиторий GitHub, внеся небольшие изменения в конфигурацию, используемую расширением npm. Если кто-то загрузит этот репозиторий и откроет его в среде VS Code, где установлено указанное расширение, то как только он(она) просмотрит файл package.json, вредоносный скрипт будет выполнен. В моем сценарии вредоносный скрипт — это пакетный файл calc.bat, который запускает программу deployagent.ps1, после чего устанавливается DNS-туннелирование к серверу Caldera лаборатории DSNS по адресу http://192.168.1.29:8888.
Поскольку эта CVE была обнаружена в 2021 году, и команда Microsoft исправила ее в более поздних версиях, нам нужно найти способ загрузить более старую версию ([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)) расширения npm. Для удобства я включил ее в GitHub. Также включен скрипт для установки VS Code в Windows.
В системе Windows (например, APT3 в лаборатории DSNS) выполните команду, чтобы получить этот репозиторий
git clone https://github.com/jason-ntu/CVE-2021-26700.git
(Вы также можете загрузить и распаковать репозиторий через графический интерфейс). Следующие шаги предполагают, что они выполняются внутри репозитория (т.е. в клонированном каталоге CVE-2021-26700).
Чтобы установить VS Code в Windows, выполните .\install-vscode.bat
Настройте команду code как ярлык для открытия VS Code, добавив следующую конфигурацию в settings.json VS Code.
Чтобы установить требуемую версию расширения npm, выполните .\install-extension.bat
Для эксплуатации CVE вам нужно открыть репозиторий в VS Code и просмотреть файл package.json. Через несколько секунд ожидания должно установиться DNS-подключение от Caldera по адресу http://192.168.1.29:8888 к жертве. RCE выполнена!
Ссылка: jackadamson's github