
быстрая проверка, уязвим ли ваш сервер к CVE-2021-44228
Если вы хотите использовать приведённые ниже загрузочные команды для Windows/Linux, сначала ознакомьтесь со скриптами. Загрузка кода из интернета и его выполнение — это то, что привело нас к Log4Shell — верно? ;-)
Скрипт log4j_checker_beta.sh используется для быстрой проверки того, возможно ли, что ваш сервер затронут CVE-2021-44228 (уязвимость log4j).
Он не даёт 100% гарантии, что вы не уязвимы, но даёт подсказку о том, что вы можете быть уязвимы.
wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - |bash
Если вы хотите видеть только предупреждения, используйте
wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - | bash | grep '\[WARNING\]'
Убедитесь, что ваша база данных locate обновлена перед запуском с помощью
sudo updatedb
Скрипт может проверять .class-файлы на первом уровне JAR/WAR/EAR-архивов на соответствие известным sha256-хэшам уязвимых class-файлов log4j.
Вам необходимо предоставить загружаемый файл с обычным текстом, содержащим sha256-хэши в HEX-формате, по одному на строку; всё, что идёт после первого <пробела>, игнорируется.
URL можно указать в переменной download_file. В противном случае эта функция работать не будет.
Информация, которую Lunasec.io опубликовала о хэшах уязвимых бинарных Java .class-файлов:
https://github.com/lunasec-io/lunasec/blob/master/tools/log4shell/constants/vulnerablehashes.go
Также смотрите их блог: https://www.lunasec.io/docs/blog/log4j-zero-day-mitigation-guide/
Мы включили в скрипт переменную SHA256_HASHES_URL, которая указывает на файл hashes-pre-cve.txt в этом репозитории. Но вы можете передать собственный URL первым параметром скрипта в оболочке или использовать локальный файл, например, сохранить ваш файл как hashes-pre-cve_local.txt, и затем выполнить:
./log4j_checker_beta.sh hashes-pre-cve_local.txt
Необходимо установить команды locate и unzip. unzip нужен для просмотра jar-файлов.
Для установки в системах Debian и Ubuntu:
sudo apt install unzip locate
sudo updatedb
Вы можете использовать фрагмент
IEX (New-Object Net.Webclient).downloadstring("https://raw.githubusercontent.com/anlx-sw/log4j_checker_beta/main/get-vulnerablejars.ps1")
для непосредственной проверки потенциально уязвимых jar-файлов в Windows. Или вы можете загрузить этот скрипт и направить вывод в доступную для записи сетевую папку. У меня это по-прежнему работало в Powershell 2.0 на Windows Server 2012.
Обработка ошибок и дополнительные функции не были добавлены намеренно, чтобы сохранить скрипт коротким, простым и совместимым с Powershell 2.0 и более старыми версиями Windows. Этот скрипт просто проверяет jar-файлы и ищет строку "JndiLookup.class", которая указывает на уязвимую библиотеку. Используйте любой удобный вам инструмент, чтобы запустить его с правами администратора (или просто используйте его вручную).
В качестве альтернативы, если вы не можете использовать powershell, вы можете применить этот фрагмент для командной строки, чтобы просканировать текущий диск на наличие jar-файлов со строкой "JndiLookup.class". После запуска этой строки с правами администратора проверьте файл c:\log4j-vuln.txt на наличие уязвимых файлов.
cd \ && for /r %f in (*.jar) do (find /i /c "JndiLookup.class" "%f" 1>nul && echo "%f" >> "c:\log4j-vuln.txt")