
Neto | Uma ferramenta para analisar extensões de navegador
O Project Neto é um pacote Python 3 concebido para analisar e desvendar funcionalidades
ocultas de plugins e extensões de navegador para navegadores conhecidos como
Firefox e Chrome. Ele automatiza o processo de descompactar os ficheiros empacotados para
extrair essas funcionalidades de recursos relevantes numa extensão, como
manifest.json, pastas de localização ou ficheiros fonte Javascript e HTML.
Para instalar o pacote, o utilizador pode escolher pip3.
pip3 install -e . --user
Opcionalmente, também pode ser instalado com privilégios de administrador usando sudo:
sudo pip3 install -e .
Uma instalação bem-sucedida pode ser verificada usando:
python3 -c "import neto; print(neto.__version__)"
Para realizar a análise de uma extensão, o analista pode digitar o seguinte:
neto analysis -u https://yoururl.com/extension-name.xpi
A extensão será automaticamente descarregada e descompactada por predefinição na pasta temporária do sistema.
No entanto, o analista também pode lançar a análise para uma extensão armazenada localmente:
neto analysis -e ./my-extension-name.xpi
Após a análise estática ser realizada, será gerado um ficheiro Json que é armazenado por predefinição numa pasta recém-criada chamada output.
Se usar Python, também pode importar o pacote como uma biblioteca nos seus próprios módulos 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'
Além de aceder aos elementos encontrados na extensão usando propriedades, o analista pode sempre aceder a ela como um dicionário:
>>> my_extension.__dict__
{'_analyser_version': '0.0.1', '_digest': '849ec142a8203da194a73e773bda287fe0e830e4ea59b501002ee05121b85a2b'…
Se não estiver a usar Python, pode usar o daemon JSON RPC:
$ neto daemon
____ _ _ _ _ _
| _ \ _ __ ___ (_) ___ ___| |_ | \ | | ___| |_ ___
| |_) | '__/ _ \| |/ _ \/ __| __| | \| |/ _ \ __/ _ \
| __/| | | (_) | | __/ (__| |_ | |\ | __/ || (_) |
|_| |_| \___// |\___|\___|\__| |_| \_|\___|\__\___/
|__/
Developed by @ElevenPaths
Version: 0.5.0b
* Running on http://localhost:14041/ (Press CTRL+C to quit)
Pode então executar comandos usando a sua biblioteca JSON RPC preferida para escrever um cliente
(escrevemos uma pequena demonstração na pasta bin) ou até mesmo 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
A seguinte é uma lista não exaustiva das funcionalidades incluídas neste pacote:
eval().