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

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

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

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

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

Категории

Все категории
Loading categories
log4j-finder — Поиск уязвимых версий Log4j2 на диске, а также внутри JAR-файлов (Log4Shell CVE-2021-44228, CVE-2021-45046, CVE-2021-45105) | Kitploit
Инструменты/GitHubGitHub/fox-it/log4j-finder
Статический анализСканеры уязвимостейАнализ уязвимостейАнализ КодаБезопасность Цепочки ПоставокРеагирование на Инциденты
GitHubfox-it/log4j-finder

log4j-finder

Поиск уязвимых версий Log4j2 на диске, а также внутри JAR-файлов (Log4Shell CVE-2021-44228, CVE-2021-45046, CVE-2021-45105)

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

Популярное

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

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

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

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

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

log4j-finder

Скрипт на Python3 для сканирования файловой системы для поиска Log4j2, уязвимого к Log4Shell (CVE-2021-44228 & CVE-2021-45046 & CVE-2021-45105). Он рекурсивно сканирует как на диске, так и внутри (вложенных) файлов Java Archive (JAR).

Результаты log4j-finder

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

log4j-finder идентифицирует библиотеки log4j2 в вашей файловой системе, используя список заведомо плохих и заведомо хороших MD5-хешей определенных файлов (сейчас только JndiManager.class), присутствующих в пакетах log4j2-core-*; основном пакете, затронутом log4shell. Он ищет эти файлы внутри файлов Java Archive и в файловой системе. Затем версия log4j2 определяется на основе MD5-хеша этого файла.

Чтобы оптимизировать скорость сканирования, он ищет в файловой системе и обрабатывает ТОЛЬКО следующие имена файлов:

  • Все файлы с расширениями Java ARchive в имени файла (также вложенные в эти архивы):
    • *.jar, *.war, *.ear
  • Имена файлов, для которых у нас есть заведомо плохие и хорошие хеши (также внутри указанных архивов и вложенные):
    • JndiManager.class

Если файл соответствует одному из указанных расширений, он проверит внутри этих архивов (все в памяти, ничего не распаковывается) на поиск имен файлов, для которых у скрипта есть известные хеши. Он также ищет внутри вложенных архивов, например, файл JAR внутри файла WAR.

Скрипт НЕ сканирует другие расширения архивов, такие как 7z, RAR, TAR, BZ2 и т.д. Так, например, если файл JAR находится внутри файла 7z, скрипт его не найдет. Обоснование: Java может загружать только форматы Java ARchive, поэтому мы сканируем только их.

Неизвестные MD5-хеши отображаются как UNKNOWN; это может произойти, если пакет Java, не являющийся log4j2, использует то же имя файла, которое ищет этот скрипт. Скорее всего, это не log4j2, если путь к идентифицированному файлу не содержит ссылок на org/apache/logging/log4j. Тем не менее, ручная проверка все равно рекомендуется.

Загрузка и запуск

Вы можете установить log4j-finder, используя один из следующих методов:

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

Вы можете загрузить правильный бинарный файл для вашей операционной системы:

  • Windows последняя (подписанная): log4j-finder-signed.exe
    • Неподписанные бинарные файлы также доступны, но могут вызвать срабатывание вашего антивируса, поскольку это исполняемый файл PyInstaller. Вы также можете сгенерировать исполняемый файл самостоятельно – см. «Генерация исполняемых файлов log4j-finder», как это сделать.
  • Linux x86_64 последняя версия: log4j-finder

Если вы в Linux, вы также можете загрузить последний релиз и запустить одним из следующих способов:

curl -L https://github.com/fox-it/log4j-finder/releases/latest/download/log4j-finder -o log4j-finder
chmod +x log4j-finder
sudo ./log4j-finder
wget https://github.com/fox-it/log4j-finder/releases/latest/download/log4j-finder -O log4j-finder
chmod +x log4j-finder
sudo ./log4j-finder

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

Для дистрибутивов с установленным Python 3.6+ также работают следующие методы:

curl -L https://github.com/fox-it/log4j-finder/raw/main/log4j-finder.py -o log4j-finder.py
sudo python3 log4j-finder.py
wget https://github.com/fox-it/log4j-finder/raw/main/log4j-finder.py
sudo python3 log4j-finder.py
git clone https://github.com/fox-it/log4j-finder
cd log4j-finder
sudo python3 log4j-finder.py

Генерация исполняемых файлов log4j-finder

Автоматически генерируемые исполняемые файлы

В репозитории есть GitHub Action, который автоматически генерирует бинарные файлы для Windows и Linux из скрипта log4j-finder.py с помощью PyInstaller при каждом коммите. Артефакты сборки этих запусков используются для прикрепления к странице Releases.

Мы знаем, что некоторые антивирусные вендоры не любят бинарные файлы Windows; в этом случае мы рекомендуем сгенерировать исполняемый файл самостоятельно, используя следующие шаги (обратите внимание, что теперь мы также предоставляем подписанные бинарные файлы).

Генерация исполняемого файла для Windows

  1. Если у вас не установлен Python 3.6 или выше, сначала загрузите его с https://www.python.org/downloads/

    • Выберите Python 3.8.10, если вы хотите, чтобы ваш бинарный файл работал на Windows 7:
      • Загрузите Python 3.8.10 Windows installer (32 bit)
      • Загрузите Python 3.8.10 Windows installer (64-bit)
    • Убедитесь, что во время установки вы выбрали: Add Python 3.x to PATH, это значительно упростит следующие шаги.
  2. Откройте командную строку и используйте pip для установки пакета pyinstaller:

    pip install pyinstaller
    
    # In the output you will see where pyinstaller is installed, for example:
    # C:\Users\User\AppData\Roaming\Python\Python310\Scripts
    #
    # Verify using --version
    C:\Users\User\AppData\Roaming\Python\Python310\Scripts\pyinstaller.exe --version
    4.7
    
  3. Опционально установите пакет colorama для поддержки цветов:

    pip install colorama
    
  4. Загрузите последнюю версию скрипта log4j-finder.py и затем запустите PyInstaller:

pyinstaller --onefile --hidden-import colorama log4j-finder.py

Исполняемый файл Windows затем находится в каталоге dist: dist\log4j-finder.exe

Генерация исполняемого файла для Linux

Пример приведен для Debian 11:

# Install PyInstaller using pip3
sudo apt update
sudo apt install python3-pip git
pip3 install --user pyinstaller

# Git clone and build using PyInstaller
git clone https://github.com/fox-it/log4j-finder
cd log4j-finder
~/.local/bin/pyinstaller --onefile log4j-finder.spec

# Verify that the binary works
./dist/log4j-finder --help

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

Пример использования для сканирования пути (по умолчанию /):

$ python3 log4j-finder.py /path/to/scan

Или напрямую JAR-файл:

$ python3 log4j-finder.py /path/to/jarfile.jar

Или несколько каталогов и/или файлов:

$ python3 log4j-finder.py /path/to/dir1 /path/to/dir2 /path/to/jarfile.jar

Исключить файлы или каталоги:

$ python3 log4j-finder.py / --exclude "/*/.dontgohere" --exclude "/home/user/*.war"

Обратите внимание, что в Windows он сканирует только корневой диск c:\, если вы не укажете дополнительные аргументы. Мы рекомендуем указывать диски, которые нужно сканировать, в командной строке, например (диски, которые не существуют, пропускаются):

log4j-finder.exe c:\ d:\ e:\ f:\

Файлы или каталоги, к которым нет доступа (ошибки Permission denied), не выводятся.

Если вы хотите видеть больше вывода, вы можете указать флаг -v для подробного вывода или -vv для отладки (рекомендуется только для отладки).

Аргументы приложения:

positional arguments:
  PATH                  Directory or file(s) to scan (recursively) (default:
                        ['/'])
Скачать инструмент