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

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

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

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

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

Категории

Все категории
Loading categories
Log4j-CVE-Detect — Обнаружения CVE-2021-44228 внутри вложенных бинарных файлов | Kitploit
Инструменты/GitHubGitHub/darkarnium/log4j-cve-detect
Статический анализСканеры уязвимостейБезопасность контейнеровАнализ уязвимостейDevSecOpsАнализ Бинарных ФайловБезопасность Цепочки Поставок
GitHubdarkarnium/log4j-cve-detect

Log4j-CVE-Detect

Обнаружения CVE-2021-44228 внутри вложенных бинарных файлов

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

Популярное

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

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

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

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

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

Log4J-CVE-Detect

Этот репозиторий содержит набор YARA-правил для обнаружения версий Log4j, уязвимых для CVE-2021-44228, CVE-2021-45046 и/или CVE-2021-45105, путем поиска ряда признаков, присутствующих в затронутых версиях.

Этот инструмент рекурсивно работает с бинарными файлами, такими как образы Docker, системные пакеты, образы файловых систем и даже установочные носители. Полный список поддерживаемых форматов файлов см. в разделе «Как это работает?».

  • CVE-2021-44228
    • Ищет сигнатуру конструктора JndiManager (< 2.15.0).
  • CVE-2021-45046
    • Ищет классы Interpolator, не импортирующие JndiManager (< 2.16.0).
  • CVE-2021-45105
    • Ищет классы AbstractConfiguration, не импортирующие ConfigurationStrSubstitutor (< 2.17.0).

Хотя существует ряд ресурсов для обнаружения небезопасного использования Log4j с помощью CodeQL или Semgrep, на данный момент нет доступных ресурсов для обнаружения потенциально уязвимых версий Log4j внутри бинарных артефактов.

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

Поскольку данная уязвимость, скорее всего, будет обнаружена в различных «неожиданных» местах, этот инструмент предназначен для помощи в обнаружении уязвимых версий Log4j внутри скомпилированных артефактов, которые затем могут быть вручную проверены для определения возможности эксплуатации.

Предостережения

Обфусцированный код приведет к ложноотрицательным результатам, когда потенциально уязвимый виджет не может быть обнаружен из-за использования обфускации.

Запуск

Чтобы запустить этот инструмент, клонируйте репозиторий и выполните следующие шаги. Предполагается, что Docker и jq установлены.

  1. Добавьте бинарные файлы, которые необходимо проверить, в папку artifacts/
  2. Запустите quickstart.sh (./quickstart.sh)

В качестве альтернативы запуск можно настроить с помощью следующей команды:

docker run \
    --rm \
    --mount type=bind,source=$(pwd)/artifacts,target=/mnt/stacs/input \
    --mount type=bind,source=$(pwd)/rules,target=/mnt/stacs/rules \
    stacscan/stacs:latest \
      --rule-pack "/mnt/stacs/rules/vulnerability.json" \
      "/mnt/stacs/input"

Если вы хотите искать только CVE-2021-44228, можно использовать следующую команду:

docker run \
    --rm \
    --mount type=bind,source=$(pwd)/artifacts,target=/mnt/stacs/input \
    --mount type=bind,source=$(pwd)/rules,target=/mnt/stacs/rules \
    stacscan/stacs:latest \
      --rule-pack "/mnt/stacs/rules/CVE-2021-44228.json" \
      "/mnt/stacs/input"

Если вы хотите искать только CVE-2021-45046, можно использовать следующую команду:

docker run \
    --rm \
    --mount type=bind,source=$(pwd)/artifacts,target=/mnt/stacs/input \
    --mount type=bind,source=$(pwd)/rules,target=/mnt/stacs/rules \
    stacscan/stacs:latest \
      --rule-pack "/mnt/stacs/rules/CVE-2021-45046.json" \
      "/mnt/stacs/input"

Если вы хотите искать только CVE-2021-45105, можно использовать следующую команду:

docker run \
    --rm \
    --mount type=bind,source=$(pwd)/artifacts,target=/mnt/stacs/input \
    --mount type=bind,source=$(pwd)/rules,target=/mnt/stacs/rules \
    stacscan/stacs:latest \
      --rule-pack "/mnt/stacs/rules/CVE-2021-45105.json" \
      "/mnt/stacs/input"

Этот инструмент также можно запускать без Docker. Инструкции по установке STACS без Docker см. в разделе STACS.

Что насчёт Docker?

Чтобы просканировать образ Docker, его сначала необходимо экспортировать в каталог артефактов для сканирования. Это можно сделать с помощью следующей команды:

IMAGE="alpine:latest"
NAME="alpine_latest"

docker export $(docker create ${IMAGE}) -o artifacts/${NAME}.tar

В качестве альтернативы можно экспортировать работающий контейнер, используя просто:

# Replace CONTAINER_ID with the correct container identifier.
CONTAINER_ID="c29209118f9a"
NAME="widget_example"

docker export ${CONTAINER_ID} -o artifacts/${NAME}.tar

Я нашел срабатывание! Что делать?

Вам необходимо исследовать использование log4j в приложении, чтобы понять, уязвим ли продукт. Если это невозможно из-за отсутствия доступа к исходному коду или по другим причинам, вам следует проверить, публиковал ли поставщик какие-либо рекомендации по этому вопросу.

Нет никакой гарантии, что включение уязвимой версии log4j означает, что продукт уязвим!

Если вы не можете найти никаких рекомендаций, обратитесь к поставщику и спросите его о влиянии этой уязвимости на продукт.

Также ознакомьтесь с мерами по смягчению последствий, опубликованными проектом log4j. В качестве альтернативы и предпочтительного варианта обновитесь до незатронутой версии Log4j.

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

Хотя этот инструмент не предназначен для этой цели, он использует движок STACS для массовой декомпозиции и анализа бинарных файлов.

STACS — это статический сканер учетных данных на основе YARA, который поддерживает бинарные форматы файлов, анализ вложенных архивов, настраиваемые наборы правил и списки игнорирования, а также отчеты в формате SARIF.

В качестве примера этот инструмент может анализировать tar-архив, содержащий экспортированный образ Docker, в котором где-то в файловой системе находится JAR-файл, затронутый этой уязвимостью.

Он также может анализировать вложенные tar, jar, war, ear, zip, apk, bz2, tgz, xz, rpm, iso и т. д.

Я нашел ложное срабатывание / ложноотрицательный результат

Пожалуйста, откройте Issue на GitHub с описанием проблемы и, по возможности, ссылкой на затронутый бинарный артефакт.

Запросы на вытягивание (Pull requests) для корректировки наборов правил также будут весьма признательны!

Проверка

См. каталог validation/ для набора файлов журналов проверки этого набора правил.

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