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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-44228 — Норвежскоязычное руководство по уязвимостям Log4j (CVE-2021-44228, CVE-2021-45046, CVE-2021-45105, CVE-2021-4104, CVE-2019-17571) с скриптами обнаружения, шагами по смягчению последствий и интеллект-картами для выявления и устранения уязвимых систем. | Kitploit
Инструменты/GitHubGitHub/helsecert/cve-2021-44228
Анализ уязвимостейБезопасность Цепочки ПоставокОбучение и ОбразованиеРеагирование на ИнцидентыПодобранные РесурсыАнализ Журналов
GitHubhelsecert/cve-2021-44228

CVE-2021-44228

Норвежскоязычное руководство по уязвимостям Log4j (CVE-2021-44228, CVE-2021-45046, CVE-2021-45105, CVE-2021-4104, CVE-2019-17571) с скриптами обнаружения, шагами по смягчению последствий и интеллект-картами для выявления и устранения уязвимых систем.

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

Популярное

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

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

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

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

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

Уязвимости в Log4j

Обновление 19.12.2021: Постоянно обнаруживаются новые уязвимости и новые способы их использования в Log4j. Мы добавили три блок-схемы (mind maps) в репозиторий, которые описывают соответственно уязвимые версии Log4j, как проверить, уязвимы ли вы и смягчение различных уязвимостей.

Рекомендация

Log4j v2.x:

  • Определите программное обеспечение, которое использует Log4j версии 2.x

  • Устраните уязвимости в Log4j

    • Обновите программное обеспечение, использующее Log4j, до версии, которая использует Log4j 2.17.0

    Если вышеуказанное невозможно

    • Убедитесь, что меры по смягчению последствий для CVE-2021-44228 и CVE-2021-45046 выполнены, обратите внимание, что в этом случае вы уязвимы для DoS
    • Если системы особенно критичны, рассмотрите возможность поиска Context Lookups в Pattern Layouts в конфигурации Log4j2

Log4j v1.x:

  • Определите программное обеспечение, которое использует Log4j версии 1.x.

  • Если Log4j версии 1.x используется в организации, обратитесь к поставщику и потребуйте, чтобы они

    • Обновили до Log4j версии 2.x
    • альтернативно перешли на другую библиотеку для логирования

Уязвимости

CVE-2021-44228

Большой и страшный волк среди уязвимостей Log4j. Уязвимость используется, когда вариант строки ${jndi:ldap://\<код атаки>/a} регистрируется Log4j. CVSS 10.0, RCE.

CVE-2021-45046

Не такая большая, как CVE-2021-44228, но столь же неприятная. Требует нестандартной настройки Log4j. CVSS 9.0, RCE и DoS.

CVE-2021-45105

Не такая большая, как CVE-2021-44228, также немного менее неприятная. CVSS 7.5, DoS

CVE-2021-4104

Относится только к Log4j версии 1.x. Требует, чтобы Log4j использовал JMSAppender. CVSS 6.6, RCE. Для использования требуется, чтобы Log4j использовал JMSAppender. Либо JMSAppender настроен напрямую — что необычно, — либо злоумышленник сам добавляет его в конфигурацию Log4j. Кроме того, злоумышленник должен иметь доступ к изменению конфигурации JMSAppender. Если это так, то злоумышленник обычно уже имеет доступ к системе. Поэтому уязвимость считается малозначимой.

CVE-2019-17571

Относится только к Log4j версии 1.x. Требует, чтобы Log4j использовал SocketServer. CVSS 9.8, RCE Предоставляет злоумышленнику с сетевым доступом к соответствующему сокету возможность выполнения кода. Код для использования общедоступен.

Для Java 8 последняя версия Log4j — 2.17.0. Она устраняет все вышеперечисленные уязвимости.

Версия 2.16.0 устраняет самые серьезные уязвимости.

Для Java 7 Log4j выпущен в версии 2.12.2. Она не устраняет CVE-2021-45105. Команда Log4j также заявляет, что ни Java 6, ни Java 7 больше не поддерживаются. Неизвестно, выпустят ли они еще одно обновление безопасности для Log4j на Java 7.

Блок-схема "Mind map #1" дает хороший обзор предпосылок для наличия различных уязвимостей.
Блок-схема для определения уязвимости к Log4j

Создано Loïc Castel. Взято с github.

Обнаружение уязвимости

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

Блок-схема "Mind map #2" дает хороший обзор того, как проверить собственные системы на уязвимости.

Блок-схема для поиска уязвимых экземпляров Log4j

Создано Loïc Castel. Взято с github.

Путем активации уязвимости 1. Создайте DNS-канареечный токен [https://canarytokens.org/generate#](https://canarytokens.org/generate#)

Создание DNS-канарейки

  1. Соберите эту текстовую строку ${jndi:ldap://<канареечный_токен>/a}
  2. Введите эту строку во все поля, которые потенциально могут быть залогированы

"Поиск" с канареечной строкой

root@kitploit:~
- User-agent
- Поле поиска
- Имя пользователя
- ...

4. Отслеживайте попадания канарейки и выясняйте, где работает log4j.

Источник: Твит от Florian Roth

Путем поиска на хостах

Windows

Эта команда обрабатывает все диски, включая сетевые диски:

root@kitploit:~
Get-PSDrive -PSProvider FileSystem | foreach {(gci ($_.Root) -rec -force -include *.jar -ea 0 | foreach {select-string "JndiLookup.class" $_} | select -exp Path)}

Источник: https://twitter.com/0gtweet/status/1469661769547362305

Если нужно проверить только локальные диски:

root@kitploit:~
Get-CimInstance win32_volume | Where-Object { $_.DriveType -eq 3 -and $_.DriveLetter -ne $null} | ForEach-Object {(gci ($_.DriveLetter+"\") -rec -force -include *.jar -ea 0 | foreach {select-string "JndiLookup.class" $_} | select -exp Path)}

Источник: https://twitter.com/webmastir/status/1470386184052486155?s=20

Если дополнительно нужно проверить журнал событий на машине:

root@kitploit:~
Get-WinEvent -ListLog * |
  foreach { get-winevent @{logname=$_.logname; } -ea 0 } |
  where message -match 'jndi'

Linux #1

root@kitploit:~
#!/bin/bash
find / -name '*log4j*.jar' -print0 2>/dev/null -print0 | while read -d $'\0' log4j; do
        echo -en "${log4j}: "$(unzip -p "${log4j}" | strings | grep -Po '^Implementation-Version:\s+([0-9\.]+)' | awk '{ print $NF }')"\n"
done
exit 0

Смягчение уязвимости

Блок-схема "Mind map #3" дает обзор возможностей смягчения.

Блок-схема смягчения последствий для Log4j

Создано Loïc Castel. Взято с github.

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

#1 Исправление

Java 8

Обновите Log4j до версии 2.17.0

Java 7

Обновите Log4j до версии 2.12.2 ВНИМАНИЕ не устраняет CVE-2021-45105

#4 Смягчение #1: Установка переменной

⚠️ этот метод больше не считается полноценным решением, так как он не устраняет все уязвимости во всех ситуациях.

Windows

root@kitploit:~
[Environment]:https://raw.githubusercontent.com/helsecert/cve-2021-44228/HEAD/:SetEnvironmentVariable(%22LOG4J_FORMAT_MSG_NO_LOOKUPS%22,%22true%22,%22Machine%22)

ПРИМЕЧАНИЕ: Требуется перезагрузка

Из https://twitter.com/CyberRaiju/status/1469505680138661890

Установка флага JVM

root@kitploit:~
"‐Dlog4j2.formatMsgNoLookups=True"

Пример командной строки:

root@kitploit:~
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true" teku --network mainnet

Или со значением -Xmx:

root@kitploit:~
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true -Xmx4g" teku

Пример конфигурации systemd:

root@kitploit:~
Environment='JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true"'

Или со значением -Xmx:

root@kitploit:~
Environment='JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true" "-Xmx4g'
#4 Смягчение #2: Удаление Java-класса Удалите JndiLookup.class в jar-файле log4j.

Jar-файл — это архив (zip-файл), и его можно открыть. Затем файлы можно удалить. Это можно сделать вручную с помощью таких инструментов, как 7-zip (см. изображение) или с помощью скрипта.

Требуется перезапуск приложения

Источник: https://mogwailabs.de/en/blog/2021/12/vulnerability-notes-log4shell/9

Удаление jndilookup.class

Windows

root@kitploit:~
[Reflection.Assembly]:https://raw.githubusercontent.com/helsecert/cve-2021-44228/HEAD/:LoadWithPartialName(%27System.IO.Compression%27)
$JarFilLokasjon = 'C:\temp\log4j-core-2.13.0-test.jar'
$Filnavn   = 'JndiLookup.class' #Этот файл удаляется!

$Stream = New-Object IO.FileStream($JarFilLokasjon, [IO.FileMode]::Open)
$ZipMode   = [IO.Compression.ZipArchiveMode]::Update
$Zip    = New-Object IO.Compression.ZipArchive($stream, $ZipMode)

($zip.Entries | Where-Object { $Filnavn -contains $_.Name }) | ForEach-Object { $_.Delete() }
$zip.Dispose()
$stream.Close()
$stream.Dispose()

Linux

root@kitploit:~
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

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

https://github.com/NCSC-NL/log4shell/tree/main/software

https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592

https://github.com/cisagov/log4j-affected-db

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

Запускать от root

Linux #2

root@kitploit:~
lsof | grep log4j-core

Это загружается при перезапуске приложения Из https://github.com/ConsenSys/teku/security/advisories/GHSA-mwfw-vm54-g3p7