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

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

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

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

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

Категории

Все категории
Loading categories
Log4JShell-Bytecode-Detector — Локальный сканер байт-кода для уязвимости Log4JShell (CVE-2021-44228) | Kitploit
Инструменты/GitHubGitHub/codeshield-security/log4jshell-bytecode-detector
Статический анализСканеры уязвимостейАнализ КодаАнализ Бинарных ФайловБезопасность Цепочки ПоставокРеагирование на Инциденты
GitHubcodeshield-security/log4jshell-bytecode-detector

Log4JShell-Bytecode-Detector

Локальный сканер байт-кода для уязвимости Log4JShell (CVE-2021-44228)

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

Популярное

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

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

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

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

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

🔍 Log4JShell Bytecode Detector

Log4jShell Bytecode Detector — это инструмент с открытым исходным кодом, который помогает определить, подвержен ли jar-файл критической уязвимости CVE-2021-44228. Инструмент сканирует jar-файл и сравнивает классы с набором хешей уязвимых классов внутри файла. Хеши были предварительно вычислены для артефактов на Maven Central.

ВАЖНОЕ ОБНОВЛЕНИЕ: Мы расширили список затронутых артефактов на Maven Central. Список содержит 18 816 артефактов. Эти артефакты либо используют log4j-core в качестве объявленной зависимости, либо мы обнаружили в них файлы .class, соответствующие уязвимым версиям log4j-core.

📝 Как запустить

  1. Скачайте jar-файл из раздела релизов.
  2. Выполните java -cp <ПУТЬ_К_СКАЧАННОМУ_JAR> de.codeshield.log4jshell.Log4JDetector <АБСОЛЮТНЫЙ_ПУТЬ_К_ПРОВЕРЯЕМОМУ_JAR>

Если jar затронут, инструмент выводит информацию в командную строку:

root@kitploit:~
CVE-2021-44228 found declared as dependency in META-INF/maven/org.apache.logging.log4j/log4j-core/pom.xml
CVE-2021-44228 found in class file org/apache/logging/log4j/core/net/JndiManager$1.class

📝 Как запустить на живом сервере (без остановки работающих экземпляров Java)

  1. Скачайте jar-файл из раздела релизов.
  2. Выполните java -cp <ПУТЬ_К_СКАЧАННОМУ_JAR> de.codeshield.log4jshell.Log4JProcessDetector
  3. Jar ищет уязвимые экземпляры log4j в classpath всех запущенных процессов Java.

❓ Предыстория о CVE-2021-44228

В log4j была обнаружена серьёзная уязвимость удалённого выполнения кода, затрагивающая версии с 2.0-beta9 по 2.14. Уязвимость признана критической, так как она поразила log4j — одну из наиболее используемых библиотек для логирования в Java. Существует множество ссылок и статей.

  • Hackernews
  • BSI (только на немецком)
  • Доказательство концепции эксплуатации уязвимости
  • Шпаргалка по Log4JShell

👀 Почему это важно?

Log4j используется (и использовался) практически в любом Java-проекте для целей логирования. Теперь нам нужно понять, какие проекты и библиотеки на самом деле затронуты. Из-за механизма зависимостей Java приложение также может быть уязвимо, если оно транзитивно включает уязвимую версию библиотеки. Проект A включает библиотеку lib транзитивно, если одна из прямых зависимостей B проекта A имеет зависимость от lib. Простой тест на подверженность можно выполнить с помощью дерева зависимостей Maven:

Пример: Выполните команду mvn dependency:tree в проекте Maven.

root@kitploit:~
[INFO] exampleProject:mainProject:jar:0.0.1-SNAPSHOT
[INFO] +- exampleProject:lib-using-log4j:jar:0.0.1-SNAPSHOT:compile
[INFO] |  \- org.apache.logging.log4j:log4j-core:jar:2.14.1:compile

Однако эта проверка — лишь первое указание и недостаточна по следующим причинам:

Java-программы часто:

  • упаковываются как fatjar или uberjar: все файлы классов (включая прямые и транзитивные зависимости) помещаются в один jar-файл (как в случае с этим артефактом)
  • переупаковываются или перекомпоновываются: исходные имена пакетов изменяются для избежания конфликтов имён (некоторые компиляторы и механизмы упаковки применяют трансформации кода)
  • перекомпилируются: исходный код компилируется другим компилятором и упаковывается заново, что приводит к изменению байткода

Следовательно, любая библиотека, используемая Java-проектом, может внести уязвимость в ваш проект. Углублённый анализ байткода помогает, и именно его мы публикуем в рамках этого репозитория.

📕 Скрипт

  1. Извлечение файлов pom.xml из .jar
  2. Проверка объявленных зависимостей по предварительно вычисленному списку затронутых groupId:artifactId:version для артефактов, размещённых на Maven Central
  3. Извлечение файлов .class из .jar
  4. Вычисление SHA-хешей файлов классов
  5. Сопоставление SHA с предварительно вычисленным списком

🛠 Инструкции по сборке

Для сборки этого инструмента выполните

mvn compile

Для сборки исполняемого jar используйте

mvn clean compile assembly:single

💡 Предварительно вычисленные хеши уязвимых классов

Набор хешей уязвимых классов был предварительно вычислен для всего репозитория Maven Central. Хеши классов содержат все хеши, которые мы идентифицировали как байткодно-подобные с помощью технологии Fingerprinting.

Предварительно вычисленная информация включает:

  • все артефакты, которые напрямую включают log4j в любой из уязвимых версий
  • все артефакты, содержащие класс с уязвимым хешем log4j в диапазоне затронутых версий
  • все артефакты, которые переупаковывают уязвимый класс log4j
  • все артефакты, имеющие перекомпилированный класс из классов log4j в диапазоне затронутых версий

В качестве затронутого диапазона версий мы рассматриваем [2.0-beta9, 2.15) Ссылка.

💻 Технология Fingerprinting

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

  1. Используйте доступные фикс-коммиты Commit1, Commit2 и Commit3, чтобы определить, какие классы затронуты.
  2. Вычислите «отпечатки» байткода уязвимых классов.
  3. Найдите другие классы на Maven Central с таким же «отпечатком».

Примечание: Для простоты развёртывания этот репозиторий содержит SHA-хеши уязвимых классов; информация была вычислена с помощью Fingerprinting.

📌 Отказ от ответственности

Список хешей и артефактов Maven не является полным. Мы будем регулярно обновлять списки.

📯 Участники

Этот инструмент был создан сооснователями CodeShield

  • Andreas Dann [email protected]
  • Johannes Spaeth [email protected]
  • Manuel Benz [email protected]

Ждём обратную связь!

Мы работаем над расширением списка затронутых артефактов и всегда стремимся улучшить наше предложение. вклад приветствуется

Также поставьте ⭐️ этому репозиторию, если наш сканер помог вам!

✍️ Контакты

Если вам нужна поддержка или вы хотите узнать о наших технологиях, свяжитесь с нами по адресу [email protected].

Ваша команда CodeShield 💚

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