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

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

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

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

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

Категории

Все категории
Loading categories
log4shell_sentinel — Умный сканер Log4Shell/Log4j/CVE-2021-44228 | Kitploit
Инструменты/GitHubGitHub/ossie-git/log4shell_sentinel
Сканеры уязвимостейБезопасность контейнеровАнализ уязвимостейФорензикаРеагирование на ИнцидентыАнализ Журналов
GitHubossie-git/log4shell_sentinel

log4shell_sentinel

Умный сканер Log4Shell/Log4j/CVE-2021-44228

Репозиторий
141264 лет назадЕщё не проверено

Популярное

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

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

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

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

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

Log4Shell Sentinel - Умный сканер CVE-2021-44228

Введение

Хотя было выпущено несколько отличных инструментов, помогающих организациям сканировать свои среды на предмет приложений, уязвимых к критической уязвимости Log4J / CVE-2021-44228, я посчитал, что:

  • ни один из инструментов, с которыми я сталкивался, не был предназначен для аналитиков, чтобы отслеживать конкретную находку на протяжении всего процесса устранения. Log4Shell Sentinel выводит свои результаты в формате CSV в расчёте на то, что аналитик затем обработает результаты в Excel, добавит некоторые находки в список игнорирования и повторно запустит сканирование, сравнит результаты, добавит данные к результатам сканирования и т.д.
  • файловые сканеры оставляют много работы для аналитиков, особенно в контейнеризированных средах

Так родился Log4Shell Sentinel. Log4Shell Sentinel — это файловый сканер с некоторыми уникальными возможностями. Он не предназначен для замены всех остальных доступных инструментов, но может их дополнять.

Возможности

Log4Shell Sentinel — это файловый сканер. Он ищет Java-приложения, сканируя целевую систему на наличие артефактов следующих форматов файлов:

Тип файлаОписание
Простой jarСлучай, когда файл log4j-core не встроен.
Fat / Uber jarUber jar — это jar, который содержит как ваши классы/пакет, так и все зависимости вашего приложения (библиотеки, ресурсы и метаданные) в одном файле jar. Это наиболее часто используемый вариант развёртывания.
WARФайл war (Web Application Archive) содержит ваш код JSP, HTML и JavaScript, а также библиотеки и другие ресурсы. Этот формат используется реже.
EAREAR (Enterprise Application Archive) — ещё один формат, который чаще использовался с Jakarta EE для развёртывания.

и ищет экземпляры уязвимых jar-файлов log4j-core. Затем он:

  • вычисляет MD5-хэш артефакта. Это позволяет аналитику идентифицировать одно и то же приложение, работающее на разных машинах/контейнерах, и рассматривать их как одну находку.

  • для файлов, определённых как принадлежащие контейнеру, например: /var/lib/docker/overlay2/192768f471818601094bf4edd96d14bfc0e2b178a04a2efd00b2231ad4e46b33/merged/app/spring-boot-application.jar, выполняет сложную работу по сопоставлению файла с соответствующим образом. Например, он преобразует вышеуказанное в следующий образ: ghcr.io/christophetd/log4shell-vulnerable-app:latest. Поскольку различные среды выполнения контейнеров хранят это сопоставление по-разному, это может сэкономить аналитику часы разочарований. Это также позволяет аналитику рассматривать несколько контейнеров, запускающих одно приложение, как одну находку.

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

  • позволяет аналитику игнорировать совпадения на основе:

    • MD5-хэша
    • пути к файлу
    • образа контейнера

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

  • оптимизирован для работы с вашими инструментами управления конфигурацией, такими как Ansible, что позволяет быстро сканировать вашу среду за считанные минуты.

Обогащение метаданными

Подробнее об обогащении метаданными, добавленном Log4Shell Sentinel, читайте в моём блог посте.

Установка

Самый простой способ — просто скачать предварительно скомпилированный бинарный файл.

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

Опять же, это просто. Однако, скорее всего, вы захотите собрать статически скомпилированную версию, чтобы обойти любые различия, связанные с GLIBC в вашей среде. Инструмент использует следующие модули, которые по умолчанию используют CGO:

  • os/user
  • net

Чтобы собрать статически скомпилированную версию, использующую Go-версии этих библиотек, просто клонируйте репозиторий, а затем выполните:

$ CGO_ENABLED=0 go build -ldflags="-s -w"
$ ldd log4shell_sentinel
        not a dynamic executable

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

$ ./log4shell_sentinel -h
NAME:
   Log4Shell Sentinel - by Osama Elnaggar

USAGE:
   log4shell_sentinel [global options] command [command options] [arguments...]

VERSION:
   v1.0.0

COMMANDS:
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --path value, -p value       Path to search (default: ".")
   --no-banner, --nb            Suppress banner (default: false)
   --no-messages, --nm          Suppress messages except for CSV output (default: false)
   --no-header, --nh            Suppress header in CSV output (default: false)
   --imd5 value, --im value     Ignore MD5 hashes. Refer to the GitHub page for expected format
   --ipath value, --ip value    Ignore file path matches. Refer to the GitHub page for expected format
   --icimage value, --ic value  Ignore container image matches. Refer to the GitHub page for expected format
   --print-headers, --ph        Print CSV Headers only (default: false)
   --help, -h                   show help (default: false)
   --version, -v                print the version (default: false)

Из коробки сканирование просто сканирует текущую директорию. Например:

$ ./log4shell_sentinel

░█░░░█▀█░█▀▀░█░█░█▀▀░█░█░█▀▀░█░░░█░░░░░█▀▀░█▀▀░█▀█░▀█▀░▀█▀░█▀█░█▀▀░█░░
░█░░░█░█░█░█░░▀█░▀▀█░█▀█░█▀▀░█░░░█░░░░░▀▀█░█▀▀░█░█░░█░░░█░░█░█░█▀▀░█░░
░▀▀▀░▀▀▀░▀▀▀░░░▀░▀▀▀░▀░▀░▀▀▀░▀▀▀░▀▀▀░░░▀▀▀░▀▀▀░▀░▀░░▀░░▀▀▀░▀░▀░▀▀▀░▀▀▀

- A CVE-2021-44228/CVE-2021-45046/CVE-2021-45105 Scanner
- v1.0.0
- by Osama Elnaggar

[*] WARNING: Running as non-root user.
             Non-readable files / dirs will be skipped
             Container mapping will fail

[*] Starting shallow scan ............ [DONE]
[*] Starting deep scan ............... [DONE]
[*] Calculating MD5 hashes ........... [DONE]
[*] Performing container image lookups [DONE]
[*] Processing ignore list(s) ........ [DONE]
[*] Generating output ................ [DONE]

IP,Hostname,AppName,Team,Ignore (Y/N),Comments,MD5Hash,Timestamp,Container,ContainerImage,FullPath,Version
192.168.121.121,server3,,,,,4e615cd580758b70c49ade1f79103328,2021-12-21T07:38:09Z,true,ghcr.io/christophetd/log4shell-vulnerable-app:latest,/run/containerd/io.containerd.runtime.v2.task/k8s.io/dc2c9c214809f506283c917244cd126a9b056ac7274322d12b59c9196d95dd9b/rootfs/app/spring-boot-application.jar,log4j-core-2.14.1.jar

Вы сразу получите ПРЕДУПРЕЖДЕНИЕ, если запустите его от имени непривилегированного пользователя, так как для работы требуются права root:

  • если вы планируете сканировать всю файловую систему (рекомендуется)
  • если вы планируете выполнять сопоставление контейнеров с образами (требуется доступ к демону Docker, файлам конфигурации и т.д.)

Он будет работать и без прав root, но может не дать наилучших результатов.

Понимание находок

Пример находки выглядит так:

IP,Hostname,AppName,Team,Ignore (Y/N),Comments,MD5Hash,Timestamp,Container,ContainerImage,FullPath,Version
192.168.121.121,server3,,,,,4e615cd580758b70c49ade1f79103328,2021-12-21T07:38:09Z,true,ghcr.io/christophetd/log4shell-vulnerable-app:latest,/run/containerd/io.containerd.runtime.v2.task/k8s.io/dc2c9c214809f506283c917244cd126a9b056ac7274322d12b59c9196d95dd9b/rootfs/app/spring-boot-application.jar,log4j-core-2.14.1.jar

Некоторые поля намеренно оставлены пустыми и предназначены для заполнения аналитиком в Excel и т.д. Краткое описание каждого поля приведено ниже:

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