
Neto | Инструмент для анализа расширений браузера
Project Neto — это пакет Python 3, предназначенный для анализа и выявления скрытых возможностей плагинов и расширений браузера для таких известных браузеров, как Firefox и Chrome. Он автоматизирует процесс распаковки архивных файлов для извлечения этих функций из соответствующих ресурсов расширения, таких как manifest.json, папки локализации или исходные файлы Javascript и HTML.
Для установки пакета пользователь может использовать pip3.
pip3 install -e . --user
При желании его также можно установить с правами администратора с помощью sudo:
sudo pip3 install -e .
Успешную установку можно проверить с помощью:
python3 -c "import neto; print(neto.__version__)"
Для выполнения анализа расширения аналитик может ввести следующее:
neto analysis -u https://yoururl.com/extension-name.xpi
Расширение будет автоматически загружено и распаковано по умолчанию во временную папку системы.
Однако аналитик также может запустить анализ для локально сохранённого расширения:
neto analysis -e ./my-extension-name.xpi
После выполнения статического анализа будет создан файл JSON, который по умолчанию сохраняется в новой папке с именем output.
Если вы используете Python, вы также можете импортировать пакет как библиотеку в свои собственные модули 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'
Помимо доступа к элементам, найденным в расширении, с помощью свойств, аналитик всегда может получить к ним доступ как к словарю:
>>> my_extension.__dict__
{'_analyser_version': '0.0.1', '_digest': '849ec142a8203da194a73e773bda287fe0e830e4ea59b501002ee05121b85a2b'…
Если вы не используете Python, вы можете использовать демон JSON RPC:
$ neto daemon
____ _ _ _ _ _
| _ \ _ __ ___ (_) ___ ___| |_ | \ | | ___| |_ ___
| |_) | '__/ _ \| |/ _ \/ __| __| | \| |/ _ \ __/ _ \
| __/| | | (_) | | __/ (__| |_ | |\ | __/ || (_) |
|_| |_| \___// |\___|\___|\__| |_| \_|\___|\__\___/
|__/
Developed by @ElevenPaths
Version: 0.5.0b
* Running on http://localhost:14041/ (Press CTRL+C to quit)
Затем вы можете запускать команды, используя предпочитаемую библиотеку JSON RPC для написания клиента (мы написали короткую демонстрацию в папке bin) или даже 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
Ниже приведён неполный список функций, включённых в этот пакет:
eval().