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

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

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

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

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

Категории

Все категории
Loading categories
browser-xpi-malware-scanner — Расширение браузера (.xpi) для всестороннего сканирования вредоносного ПО, которое проверяет множество распространённых приёмов вредоносных программ, таких как: тактики обфускации похитителей учётных данных, стеганография, base64-полезные нагрузки, zip-уловки, удалённое выполнение кода, полиглот-приёмы и трюки с метаданными, чтобы предоставить аналитику информацию о том, где требуется более глубокий анализ. | Kitploit
Инструменты/GitHubGitHub/ernos/browser-xpi-malware-scanner
Статический анализАнализ уязвимостейАнализ КодаФорензикаСтеганографияАнализ вредоносных программСтатьи и ИсследованияОбучение и Образование
GitHub
ernos/browser-xpi-malware-scanner

browser-xpi-malware-scanner

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

Популярное

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

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

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

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

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

Описание

Расширение браузера (.xpi) для всестороннего сканирования вредоносного ПО, которое проверяет множество распространённых приёмов вредоносных программ, таких как: тактики обфускации похитителей учётных данных, стеганография, base64-полезные нагрузки, zip-уловки, удалённое выполнение кода, полиглот-приёмы и трюки с метаданными, чтобы предоставить аналитику информацию о том, где требуется более глубокий анализ.

Поделиться

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

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

Что он делает

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

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

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

    КатегорияЧто ищет
    РазрешенияОпасные или чрезмерно широкие разрешения (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)

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

    • 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
    

    Параметры

    ФлагОписание
    --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().

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

    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 — Этот инструмент предназначен только для исследования безопасности и защитного анализа.

    Скачать инструмент
    Трюки с 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(), используемая для обнаружения песочницы по времени.