
Neto | Un outil pour analyser les extensions de navigateur
Le Projet Neto est un package Python 3 conçu pour analyser et découvrir les fonctionnalités cachées des plugins et extensions de navigateur pour les navigateurs bien connus tels que Firefox et Chrome. Il automatise le processus de décompression des fichiers empaquetés pour extraire ces fonctionnalités des ressources pertinentes d'une extension comme manifest.json, les dossiers de localisation ou les fichiers source Javascript et HTML.
Pour installer le package, l'utilisateur peut choisir pip3.
pip3 install -e . --user
Optionnellement, il peut également être installé avec les privilèges d'administrateur en utilisant sudo:
sudo pip3 install -e .
Une installation réussie peut être vérifiée en utilisant:
python3 -c "import neto; print(neto.__version__)"
Pour effectuer l'analyse d'une extension, l'analyste peut taper ce qui suit:
neto analysis -u https://yoururl.com/extension-name.xpi
L'extension sera automatiquement téléchargée et décompressée par défaut dans le dossier temporaire du système.
Cependant, l'analyste peut également lancer l'analyse vers une extension stockée localement:
neto analysis -e ./my-extension-name.xpi
Après l'analyse statique, un fichier Json sera généré et stocké par défaut dans un dossier nouvellement créé nommé output.
Si vous utilisez Python, vous pouvez également importer le package en tant que bibliothèque dans vos propres modules Python:
>>> from neto.lib.extensions import Extension
>>> my_extension = Extension ("./sample.xpi")
>>> my_extension.filename
'adblock_for_firefox-3.8.0-an+fx.xpi'
>>> my_extension.digest
'849ec142a8203da194a73e773bda287fe0e830e4ea59b501002ee05121b85a2b'
En plus d'accéder aux éléments trouvés dans l'extension à l'aide de propriétés, l'analyste peut toujours y accéder sous forme de dictionnaire:
>>> my_extension.__dict__
{'_analyser_version': '0.0.1', '_digest': '849ec142a8203da194a73e773bda287fe0e830e4ea59b501002ee05121b85a2b'…
Si vous n'utilisez pas Python, vous pouvez utiliser le démon JSON RPC:
$ neto daemon
____ _ _ _ _ _
| _ \ _ __ ___ (_) ___ ___| |_ | \ | | ___| |_ ___
| |_) | '__/ _ \| |/ _ \/ __| __| | \| |/ _ \ __/ _ \
| __/| | | (_) | | __/ (__| |_ | |\ | __/ || (_) |
|_| |_| \___// |\___|\___|\__| |_| \_|\___|\__\___/
|__/
Developed by @ElevenPaths
Version: 0.5.0b
* Running on http://localhost:14041/ (Press CTRL+C to quit)
Vous pouvez ensuite exécuter des commandes en utilisant votre bibliothèque JSON RPC préférée pour écrire un client (nous avons écrit une courte démo dans le dossier bin) ou même curl:
curl --data-binary '{"id":0, "method":"remote", "params":["https://example.com/myextension.xpi"], "jsonrpc": "2.0"}' -H 'content-type:text/json;' http://localhost:14041
Voici une liste non exhaustive des fonctionnalités incluses dans ce package :
eval().