
バックドア入りのClaude Code 2.1.313拡張機能(Cursorマーケットプレイス、2026年10月)向けの読み取り専用スキャナー:SSHキー、永続化、リバーストンネル。macOS + Linux。
トロイの木馬化された [email protected] 拡張機能を対象とした読み取り専用スキャナーと検出ルール。
[!WARNING] Cursor マーケットプレイスは、2026-10-29, 09:27–20:35 UTC に Anthropic が公開したものではないビルドを配信しました。このビルドは SSH キーと永続化を仕込み、その後
134.209.82[.]225へのリバーストンネルを開きます。 2.1.314 へ更新しても拡張機能が削除されるだけで、仕込まれたものは削除されません。
HappyHackingSpace による独立したコミュニティツール。Anthropic および Cursor とは提携していません。
目次: クイックスタート · チェック内容 · 検出ルール · ヒットした場合 · C2 をブロックする · IOC · 参考資料
git clone https://github.com/happyhackingspace/claude-code-backdoor-check.git
cd claude-code-backdoor-check
bash check.sh # fast scan
bash check.sh --deep # + sshd log analysis (slower on macOS)
0 クリーン · 1 インジケーター検出 · 2 使用法エラー。| 出力 | 終了 | 意味 |
|---|---|---|
✖ COMPROMISED | 1 | アクティブな痕跡を検出: 鍵、ドロップされたファイル、永続化、トンネル、C2 ホスト鍵、または問題のビルド |
! EXPOSED | 1 | 2.1.313 が過去にインストールされたが、アクティブなものは見つからなかった |
✔ CLEAN | 0 | インジケーターなし |
| # | 領域 | 検出対象 |
|---|---|---|
| 1 | 拡張機能 | Cursor / VS Code / Windsurf / VSCodium ディレクトリ内の 2.1.313、問題のある extension.js のハッシュ、ローダー文字列 |
| 2 | インストール履歴 | extensions.json、.obsolete、VSIX キャッシュ、エディタログ内の 2.1.313 |
| 3 | SSH 鍵 | authorized_keys 内の svc-telemetry 鍵 |
| 4 | ドロップされたファイル | ~/.config/.smt、.smtk、.stk_* 一時ファイル |
| 5 | 永続化 | macOS: LaunchAgents/Daemons · Linux: cron、systemd、autostart · 両方: シェル rc ファイル |
| 6 | プロセス | リバーストンネル(ssh -R *:0:localhost:22 tunnel@…)と .smt ランナー |
| 7 | ネットワーク | アクティブな C2 接続、known_hosts 内の C2 |
| 8 | SSH サーバー | :22 リスナー、--deep 指定時は攻撃者の鍵または 127.0.0.1 経由の sshd ログイン |
| 9 | 露出 | ローテーションすべき認証情報の環境変数名と認証情報ファイル(値は読み取らない) |
[!NOTE]
com.apple.sysmondは実際の Apple のシステムデーモンでもあります。悪意があるのはユーザードメイン(~/Library/LaunchAgents)内のコピーのみです。
EDR/SIEM パイプラインおよび全社的なハンティング向け。この README の他の部分と異なり、ルールファイルには C2 が defang されずに含まれています。マッチさせる必要があるためです。
rules/sigma/)| ルール | ログソース | レベル |
|---|---|---|
| C2 へのリバース SSH トンネル | process_creation | critical |
| C2 への接続 | network_connection | critical |
| ドロップされたトンネルスクリプト / 鍵 | file_event | high |
偽の com.apple.sysmond LaunchAgent | file_event · macOS | high |
| エディタプロセスツリーからのリモートログイン有効化 | process_creation · macOS | high |
@reboot cron / .smt 実行 | process_creation · Linux | high |
エディタからの SysMon スケジュールタスク / OpenSSH インストール | process_creation · Windows | high |
pip install sigma-cli
sigma plugin install splunk # or elasticsearch, microsoft365defender, …
sigma convert -t splunk --without-pipeline rules/sigma/
rules/yara/claude_code_backdoor.yar)| ルール | マッチ対象 |
|---|---|
HHS_ClaudeCode_Backdoor_Loader | トロイ化された extension.js(ハッシュまたはローダー文字列) |
HHS_ClaudeCode_Backdoor_TunnelScript | ドロップされた .smt / smt.cmd |
HHS_ClaudeCode_Backdoor_Persistence | スクリプトを指す LaunchAgent、@reboot cron、SysMon タスク |
HHS_ClaudeCode_Backdoor_AuthorizedKey | svc-telemetry キーを含む authorized_keys |
yara -r -s rules/yara/claude_code_backdoor.yar \
~/.cursor/extensions ~/.vscode/extensions ~/.config ~/.ssh ~/Library/LaunchAgents
[!TIP] Sigma ルールは Windows(スケジュールタスク、OpenSSH インストール)もカバーしていますが、
check.shはこれに対応していません。
[!CAUTION] この永続化は約 60 秒ごとにトンネルを再確立します。まず封じ込めを行い、その後でクリーンアップしてください。Cursor は公式の修復スクリプトも提供しています。詳細は セキュリティ通知 を参照してください。
1. 封じ込め。 マシンをオフラインにするか、C2 をブロックしてください。
2. 何かを削除する前に証拠を保全する:
mkdir -p ~/ioc-evidence && cd ~/ioc-evidence
bash /path/to/check.sh --deep --no-color > scan.txt
cp -p ~/.ssh/authorized_keys ~/.ssh/known_hosts ~/.config/.smt ~/.config/.smtk . 2>/dev/null
[!IMPORTANT]
.smtkは攻撃者のプライベートトンネルキーです。証拠フォルダは非公開にしてください。
3. クリーンアップ。 永続化を削除し、トンネルを終了し、アーティファクトを削除します:
C2="$(echo '134.209.82[.]225' | tr -d '[]')"
launchctl bootout gui/$(id -u)/com.apple.sysmond
rm -f ~/Library/LaunchAgents/com.apple.sysmond.plist
pkill -f "tunnel@$C2"; pkill -f 'autossh -M 0'; pkill -f '\.config/\.smt'
sed -i.bak '/svc-telemetry/d' ~/.ssh/authorized_keys
ssh-keygen -R "$C2"
rm -f ~/.config/.smt ~/.config/.smtk "$TMPDIR"/.stk_*
sudo systemsetup -setremotelogin off # if you don't use SSH
crontab -l | grep -vE '\.config/\.smt|tunnel@' | crontab -
# disable and remove any systemd/autostart entries check.sh reported
pkill -f "tunnel@$C2"; pkill -f 'autossh -M 0'; pkill -f '\.config/\.smt'
sed -i.bak '/svc-telemetry/d' ~/.ssh/authorized_keys
ssh-keygen -R "$C2"
rm -f ~/.config/.smt ~/.config/.smtk /tmp/.stk_* /var/tmp/.stk_*
sudo systemctl disable --now ssh # if you don't use SSH
4. 拡張機能を置き換えます。 anthropic.claude-code-2.1.313* を削除し、2.1.314 以上をインストールします。
5. 検証します。 bash check.sh --deep が 0 で終了するはずです。
6. 認証情報をローテーションします。別のクリーンなマシンから行います。対象は SSH キー、git トークン、クラウドおよび API キー、レジストリトークンです。まず [9/9] に記載されているリストから始めてください。
7. 再構築します。C2 が known_hosts に含まれている場合、または sshd が攻撃者のキーを受け入れた場合は、マシンを再構築してください。
--deep を付けて実行してください。少なくとも [9/9] に記載されているシークレットをローテーションしてください。それらの名前がビーコン送信されたためです。C2 はブロックしたままにしてください。
インプラントは IP に直接接続するため、DNS フィルター(NextDNS、Pi-hole)では検出できません。ファイアウォールでブロックしてください:
| ツール | コマンド |
|---|---|
| LuLu | Rules → Add Rule → process *、address 134.209.82[.]225(角括弧なし)、port *、Block |
| pf | echo "block drop out quick to $C2" | sudo tee -a /etc/pf.conf && sudo pfctl -f /etc/pf.conf -e |
| iptables | sudo iptables -I OUTPUT -d "$C2" -j DROP(Docker ホストでは DOCKER-USER も) |
| nftables | sudo nft add rule inet filter output ip daddr "$C2" drop |
| 種類 | 値 |
|---|---|
| パッケージ | [email protected](darwin-arm64、win32-x64) |
| C2 | 134.209.82[.]225: tcp/22 リバース SSH、tcp/8099 hxxp://…/beacon |
| SSH キー | コメント svc-telemetry |
| キーフィンガープリント | SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk |
extension.js SHA-256 | ecb58cb29078d9646ad1dcdbe51526f2d9cfea06be5fb2ab183e8ecc3ab6bf15 |
| ファイル | ~/.config/.smt、~/.config/.smtk、$TMPDIR/.stk_<hex> |
| 永続化 · macOS | ~/Library/LaunchAgents/com.apple.sysmond.plist |
| 永続化 · Linux | @reboot crontab エントリ |
| 永続化 · Windows | スケジュールタスク SysMon、スタートアップ sysmon.cmd、%USERPROFILE%\.config\smt.cmd |
| プロセス | ssh -N -R '*:0:localhost:22' tunnel@…、autossh -M 0 |
| 偵察サービス | api.ipify[.]org、ifconfig[.]me |
check.sh は Windows をサポートしていません。Sigma ルールまたは Cursor の remediate-windows.ps1 を使用してください。known_hosts が空であることは、トンネルが一度も接続されなかったことを証明するものではありません。© 2026 HappyHackingSpace