Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
git-clean-filter — これは、gitのclean filterをIDEやSublimeに対して悪用するための概念実証です。 | Kitploit
ツール/GitHubGitHub/rootup/git-clean-filter
フィッシングツール永続化メカニズムIDS/IPS回避コマンド&コントロールソーシャルエンジニアリングレッドチーミング
GitHubrootup/git-clean-filter

git-clean-filter

これは、gitのclean filterをIDEやSublimeに対して悪用するための概念実証です。

リポジトリを見る
342ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

これは文書化された(既知の)問題ですが、調査中に発見し、RT/PT に非常に役立ちます。

概要: .git/config の filter.<name>.clean ディレクティブはスクリプトを指し、.gitattributes はそのフィルターを追跡対象ファイルにバインドします。git がそのファイルの実際の git diff を表示するたびに、最初にクリーンコマンドを通してワークツリーの内容を実行するため、git はそこで指定された任意のパスを盲目的に起動します。

ここからが面白いところです。エディタは、変更されたファイルをクリックすると自動的に git diff を実行し、SCM(ソース管理)パネルとガター注釈を表示します。フォルダを開くだけでは不十分ですが、変更を表示することは必要であり、リポジトリにアクセスしたときにはごく自然な動作です。

これは core.fsmonitor と同じアイデアですが、別のディレクティブを使用しており、fsmonitor ではないため、それを監視している人は気付かないでしょう。この手法は、RTの任務や侵害想定シナリオに適しており、任意のC2や当社の XRayC2 と組み合わせて、従来のネットワーク防御を回避するコールバックを取得できます。(もちろんエンドユーザーを騙すためのフィッシングメールが必要ですが、IDEでフォルダを開いてファイルをクリックするというのは妥当な操作のように思えます。)

動作証明. git clone は .git/config を運ばないため、.git/ をそのままにしてフォルダを配布します。.git/config の設定:

root@kitploit:~
[filter "poc"]
    clean  = ./icons/clean.sh
    smudge = cat

.gitattributes:

root@kitploit:~
sample.txt filter=poc

sample.txt はコミットされていますが、ワーキングツリーでは 変更された 状態で配布されます。git が差分を表示した瞬間にクリーンフィルターが発動します。clean.sh は Calculator を起動し、内容を変更せずに通過させるため、ワーキングツリーは決して破損しません:

root@kitploit:~
#!/bin/sh
pgrep -x Calculator >/dev/null 2>&1 || open -a Calculator 2>/dev/null
exec cat

エディタでフォルダを開き、sample.txt をクリックして変更を表示すると、Calculator が起動します。(Calculator を終了すると再実行できます。)このPOCはmacOS専用です。環境に合わせて変更してください。

Cursor(git CLI)および Sublime Text(libgit2)でテスト済み。

クリーンフィルターは完全な git diff でのみ実行され、git status では実行されないため、フォルダを開いただけではなく、エディタが 変更をレンダリングする ときに発動します。興味深いことに、Sublime Text は libgit2 を介してインプロセスで トリガーし、ペイロードの親プロセスは sublime_text 自体であり、チェーン内に git バイナリは存在しません。したがって、これは git にシェルアウトするツールに限定されません。

https://github.com/user-attachments/assets/31ea495f-1ed8-44f8-bef3-8c6366a0eece

fsmonitor と同様に、これはエディタの「このフォルダを信頼しますか?」というプロンプトによって制限されます。多くの開発者は ~/Downloads や同様のトップレベルフォルダを信頼したままにしており、Cursor はデフォルトでワークスペースの信頼をオフにしているため、PoC は静かに実行されます。リポジトリがそれらの信頼されたパスの外にある場合、IDE は .git/config を読み取る前に「この発行者を信頼しますか?」と尋ねます。

Git ドキュメント: core.fsmonitor および filter.* については、https://git-scm.com/docs/gitattributes を参照してください。

ツールをダウンロード