
Некоторые инструменты, помогающие смягчить уязвимость Apache Log4j 2 CVE-2021-44228
Инструмент для анализа уязвимости Apache Log4j 2 CVE-2021-44228
Этот инструмент использует функцию "lookup" из log4j-2 для тестирования уязвимости JNDI. Цель — легко запускать функцию lookup (например, для нормализации логов или реального тестирования на какой-либо полезной нагрузке — будьте осторожны).
Для сборки: "make" (для удобства файл JndiLookup.jar включён в этот git).
После сборки вы можете запустить инструмент с помощью "java -jar JndiLookup.jar" (каталог log4j с бинарниками log4j должен находиться в том же пути, что и JndiLookup.jar)
Без аргументов инструмент JndiLookup читает строки из stdin и "преобразует" их с помощью функции lookup от log4j — это может быть полезно для нормализации логов и поиска попыток эксплуатации
Например: cat access.log | java -jar JndiLookup.jar
Если вы передадите строку в командной строке, инструмент преобразует эту строку и завершится (пожалуйста, экранируйте все символы '$').
Например: java -jar JndiLookup.jar java -jar JndiLookup.jar "\${jndi:\${lower:l}\${lower:d}a\${lower:p}://world443.log4j.bin\${upper:a}ryedge.io:80/callback}"
По умолчанию lookup JNDI отключён (и заменён функцией lookup, которая просто добавляет "jndi:"), но можно включить реальный lookup JNDI, передав параметр "-X" в JndiLookup ("-X" должен быть передан как первый параметр); БУДЬТЕ ОСТОРОЖНЫ, так как это может привести к компрометации вашей системы.
Например: java -jar JndiLookup.jar -X "\${jndi:ldap://w8pcb14reujq65vic39pz9amv.canarytokens.com/a}" [ Этот пример использует один из моих canary token, это только для примера; пожалуйста, знайте, что я буду уведомлён, если вы используете эту команду — с моей стороны нет проблем, но я получу IP-адрес, с которого выполняется DNS-запрос ]
Следующие lookup включены в используемых бинарниках log4j (2.15.0 для стандартного использования, 2.14.1 для использования с поддержкой JNDI):
Другие lookup могут быть доступны в зависимости от вашего окружения:
[ Пожалуйста, смотрите https://github.com/apache/logging-log4j2/blob/c30a1398a6697fb832c650870c44284d0052103e/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java для подробностей об активации плагинов lookup]
Пожалуйста, имейте в виду, что этот инструмент использует реальный код функции lookup из log4j, и он может быть уязвим из-за других (не JNDI) проблем безопасности.