
Neto | Una herramienta para analizar extensiones de navegador
Project Neto es un paquete de Python 3 concebido para analizar y desvelar características ocultas de complementos y extensiones del navegador para navegadores conocidos como Firefox y Chrome. Automatiza el proceso de descompresión de los archivos empaquetados para extraer estas características de recursos relevantes en una extensión como manifest.json, carpetas de localización o archivos fuente Javascript y HTML.
Para instalar el paquete, el usuario puede elegir pip3.
pip3 install -e . --user
Opcionalmente, también se puede instalar con privilegios de administrador usando sudo:
sudo pip3 install -e .
Se puede comprobar una instalación exitosa usando:
python3 -c "import neto; print(neto.__version__)"
Para realizar el análisis de una extensión, el analista puede escribir lo siguiente:
neto analysis -u https://yoururl.com/extension-name.xpi
La extensión se descargará automáticamente y se descomprimirá por defecto en la carpeta temporal del sistema.
Sin embargo, el analista también puede lanzar el análisis hacia una extensión almacenada localmente:
neto analysis -e ./my-extension-name.xpi
Después de realizar el análisis estático, generará un archivo Json que se almacena por defecto en una carpeta recién creada llamada output.
Si usas Python, también puedes importar el paquete como una biblioteca en tus propios módulos de 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'
Además de acceder a los elementos encontrados en la extensión mediante propiedades, el analista siempre puede acceder a ella como un diccionario:
>>> my_extension.__dict__
{'_analyser_version': '0.0.1', '_digest': '849ec142a8203da194a73e773bda287fe0e830e4ea59b501002ee05121b85a2b'…
Si no usas Python, puedes usar el demonio JSON RPC:
$ neto daemon
____ _ _ _ _ _
| _ \ _ __ ___ (_) ___ ___| |_ | \ | | ___| |_ ___
| |_) | '__/ _ \| |/ _ \/ __| __| | \| |/ _ \ __/ _ \
| __/| | | (_) | | __/ (__| |_ | |\ | __/ || (_) |
|_| |_| \___// |\___|\___|\__| |_| \_|\___|\__\___/
|__/
Desarrollado por @ElevenPaths
Versión: 0.5.0b
* Ejecutándose en http://localhost:14041/ (Presiona CTRL+C para salir)
Luego puedes ejecutar comandos usando tu biblioteca JSON RPC preferida para escribir un cliente (hemos escrito un breve demo en la carpeta bin) o incluso 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
La siguiente es una lista no exhaustiva de las características incluidas en este paquete:
eval().