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

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

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

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

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

Категории

Все категории
Loading categories
log4jcheck — Скрипт, который проверяет уязвимые системы Log4j (CVE-2021-44228) путем внедрения полезной нагрузки в общие HTTP-заголовки. | Kitploit
Инструменты/GitHubGitHub/northwavesecurity/log4jcheck
РазведкаСканеры уязвимостейСканеры веб-уязвимостейЭксплуатацияСбор информацииАнализ DNS
GitHubnorthwavesecurity/log4jcheck

log4jcheck

Скрипт, который проверяет уязвимые системы Log4j (CVE-2021-44228) путем внедрения полезной нагрузки в общие HTTP-заголовки.

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

Популярное

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

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

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

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

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

Проверка Northwave Log4j CVE-2021-44228

В пятницу, 10 декабря 2021 года, была опубликована новая proof-of-concept 1, касающаяся уязвимости удалённого выполнения кода (RCE) в Java-библиотеке 'log4j' 2. Эта уязвимость не была заранее раскрыта разработчикам программного обеспечения. Уязвимость отслеживается как CVE-2021-44228 3. Дополнительную информацию об уязвимости можно найти в документе Northwave Threat Response 4.

Northwave создала тестовый скрипт, который проверяет уязвимые системы путём внедрения полезной нагрузки в распространённые HTTP-заголовки и как часть HTTP GET-запроса. Уязвимые системы обнаруживаются путём прослушивания входящих DNS-запросов, содержащих UUID, специально созданный для цели. Используя прослушивание входящих DNS вместо развёртывания (например) LDAP-сервера, мы повышаем вероятность обнаружения уязвимых систем, у которых включена фильтрация исходящего трафика. На практике исходящий DNS часто разрешён. Ожидается высокая частота ложных отрицательных результатов, пожалуйста, прочитайте отказ от ответственности.

Охват:

Проверяются следующие HTTP-заголовки:

  • X-Api-Version
  • User-Agent
  • Referer
  • X-Druid-Comment
  • Origin
  • Location
  • X-Forwarded-For
  • Cookie
  • X-Requested-With
  • X-Forwarded-Host
  • Accept

Для каждой инъекции проверяются следующие префиксы JNDI:

  • jndi:rmi
  • jndi:ldap
  • jndi:dns
  • jndi:${lower:l}${lower:d}ap

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Обратите внимание, что скрипт выполняет только две конкретные проверки: HTTP-заголовки и HTTP GET-запрос. Это приведёт к ложным отрицательным результатам в случаях, когда необходимо нацелиться на другие заголовки, определённые поля ввода и т.д., чтобы вызвать уязвимость. Это очень вероятно.

ВАЖНО: Если проверка показала «уязвимость не обнаружена», переходите к проверкам файловой системы, как описано в документе Northwave Threat Response 4. Только запуск этого проверщика недостаточен для определения того, уязвима система или нет.

Настройка DNS-сервера

Во-первых, нам нужен поддомен для приёма входящих DNS-запросов. В данном случае мы используем зону log4jdnsreq.northwave.nl и развёртываем наш скрипт на log4jchecker.northwave.nl. Настройте DNS-запись следующим образом:

root@kitploit:~
log4jdnsreq 3600 IN  NS log4jchecker.northwave.nl.

Теперь настроим DNS-сервер BIND на системе Debian с помощью apt install bind9 и добавим следующее в файл /etc/bind/named.conf.options:

root@kitploit:~
	recursion no;
	allow-transfer { none; };

Это отключает рекурсию, так как мы не хотим запускать открытый DNS-сервер. Настройте журналирование в /etc/bind/named.conf.local, добавив следующую конфигурацию:

root@kitploit:~
logging {
	channel querylog {
		file "/var/log/named/query.log";
		severity debug 3;
		print-time yes;
	};
	category queries { querylog;};
};

Не забудьте перезапустить BIND с помощью systemctl restart bind9. Проверьте работу журналирования, выполнив DNS-запрос для xyz.log4jdnsreq.northwave.nl. В файле /var/log/named/query.log должны появиться один или несколько запросов.

Проверка вашего DNS-сервера

Важно убедиться, что поиск по именам серверов действительно регистрируется. Этот скрипт не может обнаружить уязвимые сайты, если ваша настройка DNS-сервера не регистрирует запросы

Проверьте ваш сервер, выполнив тестовый поиск (в идеале с другой машины):

root@kitploit:~
dig test.log4jchecker.northwave.nl

Вы не должны ожидать ответа, но должны ожидать запись в файле журнала (cat /var/log/named/query.log). Эта запись может выглядеть примерно так:

root@kitploit:~
14-Dec-2021 13:36:01.402 client @0x7f8b180a9b30 requester-ip#58755 (test.log4jchecker.northwave.nl): query: test.log4jchecker.northwave.nl IN A -E(0)DC (your-ip)

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

Запуск скрипта

Установите любые зависимости Python с помощью pip install -r requirements.txt. Отредактируйте скрипт, изменив следующую строку на настроенную вами DNS-зону:

root@kitploit:~
HOSTNAME = "log4jdnsreq.northwave.nl"

Теперь вы можете запустить скрипт, указав один URL с помощью параметра -u или список URL с помощью параметра -l:

root@kitploit:~
usage: nw_log4jcheck.py [-h] [-l LIST] [-u URL] [-w WAIT] [-t TIMEOUT]

optional arguments:
  -h, --help            show this help message and exit
  -l LIST, --list LIST  A text file with a list of URLs to check (one url per line)
  -u URL, --url URL     URL to check (for example: http://yoururl.com)
  -w WAIT, --wait WAIT  Number of seconds to wait before checking DNS logs (default: 15)
  -t TIMEOUT, --timeout TIMEOUT
                        HTTP timeout in seconds to use (default: 5)

Последняя строка вывода показывает, была ли система признана уязвимой:

root@kitploit:~
NO VULNERABILITY DETECTED. Proceed with on-server checking. No incoming DNS request to 3414db71-309a-4288-83d4-aa3f103db97c.log4jdns.northwave.nl was seen

Если уязвимость не была обнаружена, переходите к проверкам файловой системы, как описано в документе Northwave Threat Response 4. Ещё раз: только запуск этого проверщика недостаточен для определения того, уязвима система или нет.

Лицензия

Log4jcheck — это программное обеспечение с открытым исходным кодом, лицензированное по лицензии MIT.

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