log4shell cканеры (cve-2021-44228) для Linux

Norton [CPS] WW

Log4Shell (CVE-2021-44228) - уязвимость, обнаруженная  в биб­лиоте­ке жур­налиро­вания Log4j, позволяющая выполнить произвольный код в атакуемой системе. Библиотека Log4j присуствует во многих корпоративных приложениях. Уязвимость набрала десять бал­лов из десяти воз­можных по шка­ле оцен­ки уяз­вимос­тей CVSS v3.

Log4Shell

На данный момент в библиотеке Log4J обнаружено несколько уязвимостей CVE-2021-44228, CVE-2021-45046 и CVE-2021-45105

Подготовка к использованию сканеров

У каждого сканера есть свои зависимости: java, Python, Yara, zip, unzip или go

Для CentOS и RHEL

В CentOS и RHEL предварительно необходимо установить epel

Установка GIT

yum install git

Установка yara

yum install yara

Установка zip и unzip

yum install zip unzip

Установка Python 3

yum install python3

Установка GO

yum install go

Установка Java

yum install java

Для Debian и Ubuntu

Установка GIT

apt-get install git

Установка yara

apt-get install yara

Установка zip и unzip

apt-get install zip unzip

Установка python3

apt-get install python3

Утсановка GO

apt-get install golang

Установка java

apt-get install default-jre-headless

Сканер log4j от bi.zone

GIT: https://github.com/bi-zone/Log4j_Detector

Позволяет обнаружить процессы использующие log4j используя YARA.

Клонируем файлы локально и запускаем сканирования

git clone https://github.com/bi-zone/Log4j_Detector.git
cd Log4j_Detector/package/Linux/

Запуск сканера

bash scan.sh

по завершению сканирования, сформирует файл scan_results.txt, содержащий PID процесса использующего log4j

cat scan_results.txt
log4j_memory 964
log4j_memory 1080
log4j_memory 3623

Сканер log4jscanlinux от Qualys

GIT: https://github.com/Qualys/log4jscanlinux

Позволяет обнаружит уязвимые приложения.

Для работы требуется наличие улит zip и unzip

Установка сканера

git clone https://github.com/Qualys/log4jscanlinux.git
cd log4jscanlinux

Сканирование

По умолчанию сканирует корень /, игнорируя сетевые директории.

Параметры запуска: sh ./log4j_findings.sh [base_dir] [network_filesystem_scan<true/false>]

sh ./log4j_findings.sh /home false

По окончанию сканирования, результат можно посмотреть в /usr/local/qualys/cloud-agent/log4j_findings.stderr

cat /usr/local/qualys/cloud-agent/log4j_findings.stderr
Scanning started for log4j jar
Wed Dec 22 07:19:37 EST 2021
Run status : Success

Сканер log4j-detector

Позволяет обнаруживать уязвимые версии Loj4j в файловой системе. Написан на java.

GIT: https://github.com/mergebase/log4j-detector

Установка сканера

git clone https://github.com/mergebase/log4j-detector.git
cd log4j-detector

Запуск сканера

java -jar log4j-detector-latest.jar [path-to-scan]

Пример использования

java -jar log4j-detector-latest.jar /
-- github.com/mergebase/log4j-detector v2021.12.22 (by mergebase.com) analyzing paths (could take a while).
-- Note: specify the '--verbose' flag to have every file examined printed to STDERR.
/usr/share/elasticsearch/bin/elasticsearch-sql-cli-7.16.2.jar contains Log4J-2.x <= 2.0-beta8 _POTENTIALLY_SAFE_ (Did you remove JndiLookup.class?)
/usr/share/elasticsearch/lib/elasticsearch-log4j-7.16.2.jar contains Log4J-2.x <= 2.0-beta8 _POTENTIALLY_SAFE_ (Did you remove JndiLookup.class?)​

Сканер log4j-finder

Сканер написанный на Python 3, обеспечивает сканирование файловой системы и поиска модуля Log4j2, уязвимого для Log4Shell. Он рекурсивно сканирует как на диске, так и внутри (вложенных) файлов архива Java (JAR).

GIT: https://github.com/fox-it/log4j-finder

Установка сканера

curl -L https://github.com/fox-it/log4j-finder/releases/latest/download/log4j-finder -o log4j-finder
chmod +x log4j-finder

Запуск сканера

./log4j-finder

Пример работы

./log4j-finder
[2021-12-23 08:42:51] debian-min Scanning: /
[2021-12-23 08:42:51] debian-min GOOD: /usr/share/elasticsearch/lib/elasticsearch-log4j-7.16.2.jar -> org/apache/logging/log4j/core/net/JndiManager.class [3dc5cf97546007be53b2f3d44028fa58: log4j 2.17.0]
[2021-12-23 08:42:54] debian-min GOOD: /usr/share/elasticsearch/bin/elasticsearch-sql-cli-7.16.2.jar -> org/apache/logging/log4j/core/net/JndiManager.class [3dc5cf97546007be53b2f3d44028fa58: log4j 2.17.0]
[2021-12-23 08:42:54] debian-min Finished scan, elapsed time: 3.78 seconds

Summary:
Processed 104434 files and 12503 directories
Scanned 278 files
Found 2 good files

Elapsed time: 3.78 seconds

Сетевой сканер log4shell - log4j-scan

Сканер написанный на Python 3, позволяет проверить наличие уязвимости удаленно.

GIT: https://github.com/fullhunt/log4j-scan

Установка сканера

git clone https://github.com/fullhunt/log4j-scan.git
cd log4j-scan
pip3 install -r requirements.txt

Пример сканирования

python3 log4j-scan.py -u https://log4j.server.local --run-all-tests

Сетевой сканер log4shell - log4shell-looker

Сканер написанный на go, позволяет проверить наличие уязвимости удаленно.

GIT: https://github.com/ravro-ir/log4shell-looker

Клонируем и переходим

git clone https://github.com/ravro-ir/log4shell-looker.git
cd log4shell-looker

Пример запуска

go run main.go --help
Usage of /tmp/go-build2892693305/b001/exe/main:
-mode string
please usage mode [urlpath, header, useragent, cookie, contents] (default "[urlpath, header, useragent]")
-url string
please enter you url for scan (default "url")

При сканировании указываем mode (header, useragent cookie, urlpath или contents) и удаленный адрес в параметре -url

go run main.go -mode=header -url=https://www.example.com/

Сетевой сканер log4-scanner от CISA

Автоматизированный, точный и обширный сканер для поиска уязвимых хостов log4j. Написанный на Python 3.

Для работы требуются модули Python 3: python3-requests python3-crypto python3-termcolor

GIT: https://github.com/cisagov/log4j-scanner/tree/master/log4-scanner

Установка

git clone https://github.com/cisagov/log4j-scanner.git
cd log4j-scanner/log4-scanner/

Запуск сканера

python3 log4j-scan.py -u https://log4j.server.local --run-all-tests

CAST: CrowdStrike Archive Scan Tool

Быстрый сканер для поисках уязвимых версий log4j

GIT: https://github.com/CrowdStrike/CAST

Установка

Заходим на страницу: https://github.com/CrowdStrike/CAST/releases и выбираем архив с последней версией под Linux, к примеру cast_0.6.0_Linux_amd64.tar.gz

скачиваем и распаковываем архив

wget https://github.com/CrowdStrike/CAST/releases/download/v0.6.0/cast_0.6.0_Linux_amd64.tar.gz
tar xvf cast_0.6.0_Linux_amd64.tar.gz

параметры запуска:

./cast scan -maxmem <максимальный размер првоеряемого файла> -recursion <максимальная глубина сканирования архива> <путь>

Пример использования

./cast scan -maxmem 1000000 -recursion 3 /

Пример работы:

./cast scan -maxmem 1000000 -recursion 5 /
{"container":"/usr/share/elasticsearch/lib/log4j-core-2.11.1.jar","member":{"path":"/org/apache/logging/log4j/core/appender/AbstractAppender$Builder.class","size":4475,"modified":"2018-07-22T20:45:18Z"},"sha256":"2784dcef2a4f05a5551e468819739f44b555ad6d9c835b5cabb6df5805633878"}
{"container":"/usr/share/elasticsearch/lib/log4j-core-2.11.1.jar","member":{"path":"/org/apache/logging/log4j/core/appender/AppenderLoggingException.class","size":815,"modified":"2018-07-22T20:45:22Z"},"sha256":"bcbb46ed0993e39382230d81fd88521d22111656d2d0fe980838a1023cc5fe62"}
{"container":"/usr/share/elasticsearch/lib/log4j-core-2.11.1.jar","member":{"path":"/org/apache/logging/log4j/core/appender/ConsoleAppender$Target$1.class","size":1022,"modified":"2018-07-22T20:45:22Z"},"sha256":"b31fe70889201ea90876450fd317edbef2c3d67ed03ad65d907c2700584d2ee4"}
...
{"container":"/usr/share/elasticsearch/lib/log4j-core-2.11.1.jar","member":{"path":"/org/apache/logging/log4j/core/util/WatchManager$WatchRunnable.class","size":3632,"modified":"2018-07-22T20:45:18Z"},"sha256":"000ae2d2c2693ad4555b2f690bb5026a2826ad6ccf7a0862c9147249c212a7ff"}
2021/12/28 20:03:24 archives: 820 found: 708 scanned: 269633 skip: 3213

OpenVAS (gvm)

В OpenVAS имеется отдельный профиль для выявления Log4Shell в сети.

OpenVAS Log4shell

Добавить комментарий