Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
browser-xpi-malware-scanner — A comprehensive browser extension (.xpi) malware scanner which checks for many common malware tricks like:, credential-stealers obfuscation tactics, steganography, base64 payloads, zip-tricks, remote-code execution, polyglot tricks, meta data tricks in an attempt to give the analysist information about where deeper analysis is needed. | Kitploit
Инструменты/GitHubGitHub/ernos/browser-xpi-malware-scanner
Static AnalysisVulnerability AnalysisCode AnalysisForensicsSteganographyMalware AnalysisPapers & ResearchLearning & Education

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →

Описание

GitHub
ernos/browser-xpi-malware-scanner

browser-xpi-malware-scanner

Репозиторий
84 месяцев назадЕщё не проверено

A comprehensive browser extension (.xpi) malware scanner which checks for many common malware tricks like:, credential-stealers obfuscation tactics, steganography, base64 payloads, zip-tricks, remote-code execution, polyglot tricks, meta data tricks in an attempt to give the analysist information about where deeper analysis is needed.

Поделиться

XPI Analyzer — Сканер безопасности расширений Firefox

Инструмент командной строки, анализирующий файлы расширений Firefox (.xpi) на наличие признаков вредоносного ПО, обфускации, скрытых полезных нагрузок, стеганографии и других методов, используемых для протаскивания вредоносного кода мимо групп проверки расширений.

Что он делает

extension-scanner.py вскрывает расширение Firefox и выполняет набор проверок безопасности для каждого файла внутри него. Затем он создает цветной отчет с результатами, отсортированными по степени серьезности.

Руководства/учебные пособия по использованию этого сканера для поиска вредоносного ПО в живом магазине расширений Firefox/Mozilla и дальнейшего их анализа

  • Анализ вредоносного ПО: Использование browser-xpi-malware-scanner.py для поиска вредоносных расширений в дикой природе
  • Блокировщик рекламы, который крадет ваши клики: Внутри "Supreme Adblocker for Youtube"
  • Как я создал сканер вредоносных расширений браузера — и использовал его, чтобы разоблачить вредоносный "YouTube Downloader"

Выполняемые проверки

Уровни серьезности

  • CRITICAL — Почти наверняка вредоносное; требуется немедленное расследование
  • HIGH — Сильно подозрительно; требует тщательной проверки
  • MEDIUM — Потенциально рискованно; проверять в контексте
  • LOW — Незначительное беспокойство; информационно
  • INFO — Метаданные (хэш, размер файла и т.д.)

Установка

Предварительные пакеты

  • Python 3.10+ обязателен. python3.11, python3.12 или python3.13
  • **python3-venv** — Требуется при использовании виртуальных окружений

Использование виртуальных окружений:

root@kitploit:~
sudo apt install python3 python3-venv
git clone https://github.com/ernos/extension-scanner.git
cd extension-scanner

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Необязательные пакеты

  • **python3-numpy** — Рекомендуется для стеганографии, системная установка (иначе pip install -r requirements.txt)
  • pillow: Рекомендуется для стеганографии
  • numpy: Рекомендуется для стеганографии
    ```bash
    pip install pillow numpy
    #Системная установка на ubuntu:
    sudo apt install python3-pillow python3-numpy
root@kitploit:~
git clone https://github.com/ernos/extension-scanner.git
cd extension-scanner
chmod +x extension-scanner.py
mkdir -p ~/.local/share/bin
ln -s $PWD/extension-scanner.py ~/.local/share/bin/extension-scanner


# Требуется для анализа стеганографии LSB (необязательно, но рекомендуется)
pip install pillow numpy

# ВАРИАНТ 1. Только для текущего пользователя:
# Включить автодополнение bash для удобства (TAB для автодополнения команд)
mkdir -p ~/.local/share/bash-completion/completions
cp extension-scanner-completions ~/.local/share/bash-completion/completions
echo "source ~/.local/share/bash-completion/completions/extension-scanner-completions" >> ~/.bashrc

# ВАРИАНТ 2. Включить автодополнение глобально для всех пользователей (должно автоматически загружаться из вашего .bashrc)
cp extension-scanner-completions /usr/share/bash-completion/completions

Если Pillow/NumPy не установлены, инструмент всё равно работает — проверки LSB и энтропии пикселей просто пропускаются, выводится предупреждение.


Использование

root@kitploit:~
usage: xpiscanner [-h] [--update-blocklist] [--min-severity {CRITICAL,HIGH,MEDIUM,LOW,INFO}] [--json] [--compact] [-v] [-m] [--scans CHECK [CHECK ...]]
                  [targets ...]

Firefox Extension Scanner - Сканирует XPI-файлы на наличие рисков безопасности и индикаторов вредоносного ПО

positional arguments:
  targets               Один или несколько XPI-файлов или каталогов, содержащих XPI для анализа

options:
  -h, --help            показать это справочное сообщение и выйти
  --update-blocklist, --update, -u
                        Загрузить свежие черные списки доменов из URLhaus и списка Питера Лоу, объединить с встроенным снимком и сохранить в
                        /home/peb/projects/Firefox-Extensions/extension-scanner/blocklist.json. Завершается после обновления.
  --min-severity {CRITICAL,HIGH,MEDIUM,LOW,INFO}
                        Минимальный уровень серьезности для отображения (CRITICAL, HIGH, MEDIUM, LOW, INFO; по умолчанию: INFO)
  --json                Вывод результатов в формате JSON вместо форматированного текста
  --compact, -c         Печатать каждое обнаружение в 1–2 строки вместо формата по умолчанию в 3 строки
  -v, --verbose         Включить подробный вывод: показывать дополнительный контекст для обнаружений
  -m, --manifest        Показать полный манифест расширения для каждой цели
  --scans, -s CHECK [CHECK ...]
                        Ограничить анализ определенными типами проверок. Варианты: anti-analysis, api-abuse, credentials, cross-file,
                        file-meta, hidden-elements, obfuscation, payloads, permissions, polyglot, remote-code,
                        signatures, steganography, time-bomb, zip-tricks. Опустите для выполнения всех проверок (по умолчанию).

    extension-scanner.py — Анализ файлов расширений XPI для Firefox (и других браузеров) на наличие рисков безопасности и индикаторов вредоносного ПО.

    Прочтите README.md для получения информации о том, как интерпретировать результаты, ограничениях и рекомендациях по использованию.  
    Этот инструмент предназначен для исследователей безопасности, аналитиков и продвинутых пользователей, желающих провести 
    всесторонний статический анализ расширений браузера. Он должен хорошо работать и для других браузеров, 
    но тестировался только на Firefox.

Usage:
    python3 extension-scanner.py [OPTIONS] targets...

Цели могут быть отдельными файлами .xpi или каталогами, содержащими файлы .xpi. Используйте шаблоны glob (например, *.xpi) для удобства.

Доступные типы проверок:
    permissions               Опасные/широкие разрешения манифеста и проблемы CSP
    remote-code               Фоновые страницы или сервис-воркеры, загружаемые с удаленных URL
    obfuscation              Приемы eval/atob/кодирования, подозрительные URL, строки с высокой энтропией
    payloads                  Блоки, закодированные в Base64, декодированные и просканированные на наличие исполняемых файлов/скриптов
    steganography             Добавленные данные PNG (автоматически декодированные через base64/zlib/gzip), неизвестные чанки, анализ канала LSB
    credentials               Жестко заданные ключи API, токены, пароли, закрытые ключи, IP-адреса
    file-meta                 Магические байты, двойные расширения, подозрительные имена файлов, энтропия файлов
    polyglot                  Файлы, валидные в двух форматах одновременно (например, HTML+ZIP)
    zip-tricks                Обход пути (path traversal), нулевые байты, дублирующиеся записи, ZIP-комментарии
    cross-file                Токены классов HTML, перекрестно связанные с ключами localStorage в JS
    signatures                Известные строки из подтвержденных семейств вредоносных расширений (qingcaila, YTMP4 и т.д.)
    api-abuse                 Вызовы API браузера, указывающие на кражу данных или эксфильтрацию (cookies, tabs, history, keylogger, clipboard, executeScript)
    hidden-elements           Невидимые iframe, внедрение элементов с нулевыми размерами, отслеживающие пиксели (new Image().src)
    time-bomb                 setTimeout с большой задержкой, ворота Date.now(), проверки даты установки в localStorage, ворота Math.random()
    anti-analysis             navigator.webdriver, окно нулевого размера, голый оператор debugger, тайминг performance.now()

Примеры:
    python3 extension-scanner.py extension.xpi
    python3 extension-scanner.py *.xpi
    python3 extension-scanner.py /path/to/extensions/
    python3 extension-scanner.py a.xpi b.xpi --min-severity HIGH
    python3 extension-scanner.py ext.xpi --scans obfuscation payloads
    python3 extension-scanner.py ext.xpi --s steganography zip-tricks file-meta
    python3 extension-scanner.py ext.xpi --verbose
    python3 extension-scanner.py --update-blocklist
    python3 extension-scanner.py --manifest

Советы:
    - Убедитесь, что файл scanner-completions.sh подгружается из вашего .bashrc или .zshrc, чтобы включить автодополнение по TAB для категорий --scans и путей к целевым файлам.
    - Используйте --min-severity, чтобы сначала сосредоточиться на самых критичных обнаружениях.
    - Используйте --scans, чтобы ограничить анализ определенными категориями проверок, если вы ищете что-то конкретное или хотите ускорить сканирование.
    - Просмотрите полный манифест с помощью --manifest для контекста о разрешениях, контентных скриптах и других метаданных расширения, которые могут помочь интерпретировать результаты.
    - Регулярно обновляйте черный список с помощью --update-blocklist, чтобы последние вредоносные домены были включены в проверки.

Благодарности:
    Разработано Ernos @ https://www.yourdev.net
    Email: max at yourdev.net
    GitHub: https://www.github.com/ernos/extension-scanner

Параметры



Чтение вывода

root@kitploit:~
════════════════════════════════════════════════════════════════════════════
  XPI АНАЛИЗАТОР — example.xpi
════════════════════════════════════════════════════════════════════════════
  Общий вердикт: ВЫСОКИЙ РИСК

  Обнаружено: 1 CRITICAL  3 HIGH  2 MEDIUM  1 LOW

  ── CRITICAL ────────────────────────────────────────────────────────────
  [CRITICAL ] [JS_OBFUSCATION] content.js
           Вызов eval() — может выполнять произвольный код из строк
           Доказательство: var x = eval(atob("dmFyIGE9MTs…"))

  ── HIGH ────────────────────────────────────────────────────────────────
  [HIGH     ] [PERMISSION] manifest.json
           Опасное разрешение: 'nativeMessaging' — может запускать нативные ОС… 
           Доказательство: permissions: ['nativeMessaging', 'storage', '<all_urls>']
  …

При анализе нескольких файлов после индивидуальных отчетов выводится сравнительная таблица, показывающая все расширения бок о бок.


Коды возврата

КодЗначение
0Нет находок CRITICAL или HIGH
1Как минимум одна находка HIGH
2Как минимум одна находка CRITICAL

Это позволяет легко использовать инструмент в конвейерах CI или shell-скриптах:

root@kitploit:~
python3 extension-scanner.py extension.xpi --min-severity HIGH
if [ $? -eq 2 ]; then echo "Найдены CRITICAL проблемы!"; fi

Ограничения

  • Только статический анализ. Инструмент не выполняет никакой код. Динамические техники (полезные нагрузки, получаемые во время выполнения, полиморфизм на стороне сервера) не будут обнаружены.
  • Эвристики LSB-стеганографии дают ложные срабатывания на некоторых естественно шумных или сильно сжатых изображениях.
  • Шаблоны обфускации ориентированы на распространенные техники; пользовательские или новые упаковщики могут не вызвать предупреждений.
  • Домены из белого списка (API Google, Mozilla, W3C) не отмечаются при проверках URL. Легитимные расширения, обращающиеся к другим доверенным CDN, могут отображаться как находки HIGH.
  • Инструмент не отправляет файлы ни в какой внешний сервис. Весь анализ выполняется локально.

Автор

Maximilian Cornett

Контакты

https://www.yourdev.net https://www.github.com/ernos

Лицензия

GNU General Public License — Этот инструмент предназначен только для исследования безопасности и защитного анализа.

Скачать инструмент
КатегорияЧто ищет
РазрешенияОпасные или чрезмерно широкие разрешения (nativeMessaging, <all_urls>, debugger, desktopCapture и т.д.)
Политика безопасности контентаunsafe-inline, unsafe-eval, внешние источники скриптов в CSP
Обфускация JavaScripteval(), atob(), злоупотребление конструктором Function(), шестнадцатеричные escape-последовательности, сборка через split/join/reverse, закодированные строковые литералы, setTimeout с строковыми аргументами
Подозрительные URLЖестко заданные внешние домены, классифицированные как известно-вредоносные (попадание в черный список → HIGH), неизвестные (не в белом списке → MEDIUM) или известно-безопасные (в белом списке → подавлено). Выполните --update-blocklist для обновления черного списка доменов из URLhaus и списка Питера Лоу.
Учетные данные и секретыЖестко заданные ключи API, токены (AWS, GitHub, Slack, Google), пароли, закрытые ключи и IP-адреса
Полезные нагрузки Base64Декодирует встроенные base64-блоки и сканирует их на наличие исполняемых файлов, скриптов и сетевого кода
Стеганография PNGОбнаруживает данные, добавленные после маркера IEND PNG, и автоматически декодирует трейлер (base64, zlib, gzip и их комбинации); декодированные полезные нагрузки рекурсивно сканируются на обфускацию JS, учетные данные и подозрительные URL. Также обнаруживает неизвестные типы чанков, аномалии в канале LSB и необычно высокую энтропию пикселей
Метаданные файловОпределение магических байт исполняемых файлов (.exe, .elf, .dylib), двойные расширения (например, photo.png.js), подозрительные имена файлов (keylog, miner, wallet)
Полиглот-файлыФайлы, которые одновременно являются валидными в двух форматах (например, HTML + ZIP)
Трюки с ZIPЗаписи с обходом пути (path traversal), нулевые байты в именах файлов, дублирующиеся записи, которые могут обмануть парсеры, ZIP-комментарии с полезной нагрузкой
Удаленный кодФоновые страницы или сервис-воркеры, загружаемые с удаленных URL
Высокая энтропияФайлы или строковые литералы с подозрительно высокой энтропией (вероятно, зашифрованные или сжатые полезные нагрузки)
Злоупотребление APIВызовы API расширений браузера, указывающие на кражу данных или эксфильтрацию: cookies.getAll({}), tabs.query({}), history.search, клавиатурные слушатели, чтение буфера обмена, scripting.executeScript с динамической функцией. Повышается до CRITICAL, когда вызов сбора данных сочетается с исходящей сетевой отправкой в одном файле.
Скрытые элементыДинамически созданные невидимые iframe (display:none, нулевые размеры), внедренные в DOM — тихие партнерские пинги или каналы C2. Отслеживающие пиксели через new Image().src, указывающие на внешние URL.
Бомба замедленного действияsetTimeout/setInterval с задержками ≥ 5 минут; арифметические ворота Date.now(); проверки даты установки через localStorage, активирующие поведение через несколько дней после первого запуска; пороговые ворота Math.random(), срабатывающие только на доле загрузок страниц.
Анти-анализПроверки navigator.webdriver; сравнения нулевой ширины/высоты окна; голые операторы debugger; арифметика performance.now(), используемая для обнаружения песочницы по времени.
ФлагОписание
--update-blocklistЗагрузить свежие списки доменов из URLhaus и списка серверов рекламы/вредоносного ПО Питера Лоу, объединить с встроенным снимком и сохранить в blocklist.json рядом со скриптом. Завершается после обновления.
targetsОдин или несколько файлов .xpi или каталогов
--min-severityФильтр вывода: CRITICAL, HIGH, MEDIUM, LOW, INFO (по умолчанию: INFO)
--jsonВывод результатов в виде документа JSON вместо человекочитаемого отчета
--verbose или -vВыводит содержимое manifest.json, а также включает ~5 строк кода вокруг обнаруженной подозрительной конструкции
--checksСканировать только эти конкретные категории проверок (см. ниже)
Доступные категории проверокОписание проверок в категории
permissionsОпасные/широкие разрешения манифеста и проблемы CSP
remote-codeФоновые страницы или сервис-воркеры, загружаемые с удаленных URL
obfuscationПриемы eval/atob/кодирования, подозрительные URL, строки с высокой энтропией
payloadsБлоки, закодированные в Base64, декодированные и просканированные на наличие исполняемых файлов/скриптов
steganographyДобавленные данные PNG, неизвестные чанки, анализ канала LSB
credentialsЖестко заданные ключи API, токены, пароли, закрытые ключи, IP-адреса
file-metaМагические байты, двойные расширения, подозрительные имена файлов, энтропия файлов
polyglotФайлы, валидные в двух форматах одновременно (например, HTML+ZIP)
zip-tricksОбход пути (path traversal), нулевые байты, дублирующиеся записи, ZIP-комментарии
cross-fileТокены классов HTML, перекрестно связанные с ключами localStorage в JS
api-abuseВызовы API браузера, указывающие на кражу данных или эксфильтрацию (cookies, tabs, history, keyboard, clipboard). CRITICAL, когда сбор данных и сетевая отправка появляются в одном файле.
hidden-elementsВнедрение невидимых iframe и отслеживающие пиксели. HIGH, когда iframe скрыт и добавлен в DOM.
time-bombsetTimeout с большой задержкой, арифметические ворота Date.now(), дата установки в localStorage, порог Math.random().
anti-analysisnavigator.webdriver, окно нулевого размера, голый оператор debugger, арифметика performance.now().