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

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

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

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

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

Категории

Все категории
Loading categories
log4j-detector — Сканер файловой системы, который обнаруживает уязвимые версии Log4J (CVE-2021-44228, CVE-2021-45046) путем анализа скомпилированных Java-классов, включая вложенные архивы. Работает на Linux, Windows и Mac. | Kitploit
Инструменты/GitHubGitHub/mergebase/log4j-detector
Статический анализСканеры уязвимостейАнализ уязвимостейБезопасность Цепочки Поставок
GitHubmergebase/log4j-detector

log4j-detector

Сканер файловой системы, который обнаруживает уязвимые версии Log4J (CVE-2021-44228, CVE-2021-45046) путем анализа скомпилированных Java-классов, включая вложенные архивы. Работает на Linux, Windows и Mac.

Репозиторий
64096124 лет назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

логотип mergebase

Log4-detector

Сканер, который обнаруживает уязвимые версии Log4J, помогая командам оценить степень подверженности CVE-2021-44228 (КРИТИЧЕСКАЯ), CVE-2021-45046, CVE-2021-45105 и CVE-2021-44832. Может искать экземпляры Log4J, тщательно исследуя всю файловую систему, включая все установленные приложения. Он способен находить экземпляры Log4J, скрытые на нескольких уровнях вложенности. Работает в Linux, Windows, Mac и везде, где выполняется Java!

Содержание

  • Введение
  • Пример использования
  • Дополнительные примеры использования
  • Понимание результатов
  • Использование
  • Сборка из исходников
  • Тестирование
  • Лицензия
  • Часто задаваемые вопросы
    • Как это работает?
    • Этот сканер сообщает только о попаданиях по библиотеке . А как насчёт ?
log4j-core
log4j-api
  • Почему сообщается о версиях 2.10.0, 2.15.0 и 2.16.0?
  • Что означают результаты вида "file1.war!/path/to/file2.zip!/path/to/file3.jar!/path/to/log4j.jar"?
  • А что насчёт Log4J 1.2.x?
  • Как я могу быть уверен, что это не троян, маскирующийся под детектор Log4J?
  • Что такое MergeBase?
  • Введение

    В настоящее время сообщает версии log4j-core 2.3.2, 2.12.4 и 2.17.1 как _SAFE_, 2.3.1, 2.12.2, 2.12.3, 2.15.0, 2.16.0 и 2.17.0 как _OKAY_ и все остальные версии как _VULNERABLE_ (хотя для версий до 2.0-beta9 сообщается _POTENTIALLY_SAFE_). Старые версии log4j-1.x помечает как _OLD_.

    Корректно обнаруживает log4j внутри исполняемых spring-boot jar/war, зависимостей, смешанных в uber jars, затенённых (shaded) jar, и даже распакованных jar-файлов, просто лежащих на файловой системе (т.е. *.class).

    Мы поддерживаем коллекцию log4j-samples, которую используем для тестирования.

    Пример использования:

    root@kitploit:~
    java -jar log4j-detector-2021.12.29.jar ./samples 
    
    -- github.com/mergebase/log4j-detector v2021.12.29 (by mergebase.com) analyzing paths (could take a while).
    -- Note: specify the '--verbose' flag to have every file examined printed to STDERR.
    false-hits/log4j-core-2.12.2.jar contains Log4J-2.x   == 2.12.2 _OKAY_
    false-hits/log4j-core-2.12.3.jar contains Log4J-2.x   == 2.12.3 _OKAY_
    false-hits/log4j-core-2.12.4.jar contains Log4J-2.x   == 2.12.4 _SAFE_
    false-hits/log4j-core-2.15.0.jar contains Log4J-2.x   == 2.15.0 _OKAY_
    false-hits/log4j-core-2.16.0.jar contains Log4J-2.x   == 2.16.0 _OKAY_
    false-hits/log4j-core-2.17.0.jar contains Log4J-2.x   == 2.17.0 _OKAY_
    false-hits/log4j-core-2.17.1.jar contains Log4J-2.x   >= 2.17.1 _SAFE_
    false-hits/log4j-core-2.3.1.jar contains Log4J-2.x   == 2.3.1 _OKAY_
    false-hits/log4j-core-2.3.2.jar contains Log4J-2.x   == 2.3.2 _SAFE_
    true-hits/log4j-core-2.0-beta9.jar contains Log4J-2.x   >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
    true-hits/log4j-core-2.10.0.jar contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
    true-hits/log4j-core-2.10.0.zip contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
    true-hits/log4j-core-2.11.0.jar contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
    true-hits/log4j-core-2.11.1.jar contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
    true-hits/log4j-core-2.11.2.jar contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
    true-hits/log4j-core-2.12.0.jar contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
    true-hits/log4j-core-2.12.1.jar contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
    true-hits/log4j-core-2.14.0.jar contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
    true-hits/log4j-core-2.14.1.jar contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
    true-hits/log4j-core-2.2.jar contains Log4J-2.x   >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
    true-hits/log4j-core-2.3.jar contains Log4J-2.x   >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
    true-hits/log4j-core-2.4.1.jar contains Log4J-2.x   >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
    true-hits/log4j-core-2.4.jar contains Log4J-2.x   >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
    true-hits/log4j-core-2.9.1.jar contains Log4J-2.x   >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
    old-hits/log4j-1.1.3.jar contains Log4J-1.x   <= 1.2.17 _OLD_
    old-hits/log4j-1.2.17.jar contains Log4J-1.x   <= 1.2.17 _OLD_
    old-hits/log4j-core-2.0-beta2.jar contains Log4J-2.x   <= 2.0-beta8 _POTENTIALLY_SAFE_ (Did you remove JndiLookup.class?)
    

    Понимание результатов

    _VULNERABLE_ -> Вам необходимо обновить или удалить этот файл.

    _OKAY_ -> Мы сообщаем это для версий Log4J 2.3.1, 2.12.2, 2.12.3, 2.15.0, 2.16.0 и 2.17.0. Рекомендуем обновиться до 2.17.1.

    _SAFE_ -> В настоящее время мы сообщаем это только для версий Log4J 2.3.2, 2.12.4 и 2.17.1 (и выше).

    _OLD_ -> Вы защищены от CVE-2021-44228, но следует запланировать обновление, так как Log4J 1.2.x находится в статусе EOL уже 7 лет и содержит несколько известных уязвимостей.

    _POTENTIALLY_SAFE_ -> Файл "JndiLookup.class" отсутствует: либо из-за очень старой версии Log4J (до 2.0-beta9), либо кто-то уже удалил этот файл. Убедитесь, что это сделал кто-то из вашей команды или компании, если это так, поскольку злоумышленники, как известно, сами удаляют этот файл, чтобы предотвратить доступ других конкурирующих атакующих к скомпрометированным системам.

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

    root@kitploit:~
    java -jar log4j-detector-2021.12.29.jar 
    
    Usage: java -jar log4j-detector-2021.12.29.jar [--verbose] [--json] [--stdin] [--exclude=X] [paths to scan...]
    
      --json       - Output STDOUT results in JSON.  (Errors/warning still emitted to STDERR)
      --stdin      - Read STDIN for paths to explore (one path per line)
      --exclude=X  - Where X is a JSON list containing full paths to exclude. Must be valid JSON.
    
                     Example: --exclude='["/dev", "/media", "Z:\TEMP"]'
    
    Exit codes:  0 = No vulnerable Log4J versions found.
                 1 = At least one legacy Log4J 1.x version found.
                 2 = At least one vulnerable Log4J version found.
    
    About - MergeBase log4j detector (version 2021.12.29)
    Docs  - https://github.com/mergebase/log4j-detector 
    (C) Copyright 2021 Mergebase Software Inc. Licensed to you via GPLv3.
    

    Сборка из исходников:

    root@kitploit:~
    git clone https://github.com/mergebase/log4j-detector.git
    cd log4j-detector/
    mvn install
    java -jar target/log4j-detector-latest.jar
    

    Тестирование:

    Мы поддерживаем коллекцию образцов log4j здесь: https://github.com/mergebase/log4j-samples

    Лицензия

    GPL версии 3.0

    Часто задаваемые вопросы

    Как это работает?

    Компилятор Java сохраняет строковые литералы непосредственно в скомпилированных файлах *.class. Если log4j-detector обнаруживает файл с именем "JndiManager.class" в вашей файловой системе, он затем проверяет этот файл на наличие строки: "Invalid JNDI URI - {}". Оказывается, этот конкретный строковый литерал присутствует только в исправленной версии Log4J (версия 2.15.0). Любые версии Log4J без этой строки уязвимы.

    Тот же метод анализа файлов *.class на предмет строковых литералов дополнительно расширен для точного обнаружения безопасных версий 2.3.2, 2.12.4 и 2.17.1.

    Этот сканер сообщает только о попаданиях по библиотеке log4j-core. А как насчёт log4j-api?

    Многие сканеры (включая Dependabot от GitHub) в настоящее время сообщают как о библиотеках "log4j-core", так и "log4j-api" как об уязвимых. Эти сканеры неверны. В настоящее время не существует версии библиотеки "log4j-api", которая могла бы быть использована любой из этих уязвимостей.

    В MergeBase мы гордимся точностью нашего сканирования. Вы и так достаточно заняты исправлениями и защитой своих систем. Мы не хотим, чтобы вы тратили время на ложные срабатывания. Именно поэтому мы не сообщаем о попаданиях на log4j-api.

    Почему сообщается о версиях 2.3.1, 2.10.0, 2.12.2, 2.12.3, 2.15.0, 2.16.0 и 2.17.0?

    Версия 2.10.0 важна, поскольку это первая версия, в которой уязвимая "функция поиска сообщений" Log4J может быть отключена через конфигурацию Log4J.

    Версия 2.12.2 важна, так как это совместимая с Java 7 версия Log4J, которая не уязвима для CVE-2021-44228.

    Версии 2.15.0 и 2.16.0 важны, поскольку это первые версии, в которых конфигурация Log4J по умолчанию не уязвима для CVE-2021-44228.

    А версии 2.3.2, 2.12.4 и 2.17.1 важны, поскольку они не уязвимы для недавно обнаруженных CVE, таких как CVE-2021-45046 и CVE-2021-45105. Несмотря на то, что это гораздо менее серьёзные уязвимости, мы ожидаем, что все захотят обновиться до одной из версий 2.3.2, 2.12.4 или 2.17.1.

    Что означают результаты вида "file1.war!/path/to/file2.zip!/path/to/file3.jar!/path/to/log4j.jar"?

    "!" означает, что log4j-detector вошёл в zip-архив (например, *.zip, *.ear, *.war, *.aar, *.jar). Поскольку zip-файлы могут содержать zip-файлы, один результат может содержать более одного символа "!" в своём результате.

    Примечание: log4j-detector рекурсивно входит только в zip-архивы. Он не входит в tar, gz, bz2 и т.д. Основная причина в том, что Java-системы часто настраиваются на выполнение jar внутри jar, но они никогда не настраиваются на выполнение других форматов файлов (насколько мне известно!). Поэтому копия log4j внутри *.tar.gz, вероятно, недоступна для работающей Java-системы и, следовательно, не является уязвимостью, о которой стоит сообщать.

    2-е примечание: для zip-внутри-zip наш сканер загружает внутренний zip полностью в память (используя ByteArrayInputStream) перед попыткой его сканирования. Возможно, вам потребуется выделить Java дополнительную память, если в вашей системе есть очень большие внутренние zip-файлы (например, 1 ГБ и более).

    А что насчёт Log4J 1.2.x?

    Только версии Log4J 2.x (от 2.0-beta9 до 2.14.1) уязвимы для CVE-2021-44228.

    Как я могу быть уверен, что это не троян, маскирующийся под детектор Log4J?

    Отличный вопрос! Поскольку мы включаем полный исходный код здесь, на Github (все 2500 строк Java), а также шаги по его сборке, и поскольку этот инструмент не имеет зависимостей, вам не потребуется много времени, чтобы тщательно изучить код для вашего удовлетворения. Если вы не доверяете Maven, вы можете перейти прямо в каталог "src/main/java/com/mergebase/log4j" и набрать "javac *.java". Это тоже работает!

    Мы также подписываем предварительно скомпилированный jar, который находится в корне репозитория (./log4j-detector-2021.12.29.jar), ключом подписи кода MergeBase. Пожалуйста, выполните "jarsigner -verbose -verify log4j-detector-2021.12.29.jar", чтобы подтвердить это.

    Что такое MergeBase?

    MergeBase

    MergeBase — это компания в области SCA (Software Composition Analysis), базирующаяся в Ванкувере, Канада. Мы похожи на такие компании, как Snyk, Sonatype, Blackduck и т.д., в том, что помогаем компаниям обнаруживать и управлять уязвимыми библиотеками с открытым исходным кодом в их программном обеспечении. Загляните к нам! У нас отличная точность, отличная поддержка языков, и мы не слишком дороги: mergebase.com/pricing.

    Мы будем рады, если кто-нибудь воспользуется 2-недельной бесплатной пробной версией нашего продукта SCA! И если вы напишете нашему генеральному директору ([email protected]) с темой "log4j-detector", мы продлим вашу пробную версию до 4 недель.

    Скачать инструмент