
CVE-2021-3441 CVE Check — это скрипт на Python для поиска на целевых системах индикаторов компрометации, связанных с CVE-2021-3441.
Инструмент анализа угроз на Python для автоматизации обнаружения IoC для CVE-2021-3441. Легко ищите индикаторы компрометации на целевых системах
________________
_/_______________/|
/___________/___//|| CVE-2021-3441 Check
|=== |----| ||
| | �| || Author: Tyler Butler
|___________| �| || @tbutler0x90
| ||/.�---.|| | ||
|-||/_____\||-. | |�
|_||==HP===||_|__|/
CVE-2021-3441 CVE Check — это Python-инструмент для поиска индикаторов компрометации, связанных с CVE, на целевых системах. Скрипт получает версии продуктов из заголовка HTTP-ответа цели. Если версия продукта уязвима и для неё создан модуль, скрипт запрашивает ресурс, который может содержать эксплойт-полезную нагрузку. Когда загружается html-элемент, который может содержать эксплойт, выполняется поиск распространённых XSS-символов. Программа предупреждает пользователя через консоль, если обнаружены эксплойт-полезные нагрузки, и может записывать результаты в выходной файл.

python3 hp-cve-check.py -i [target ip] -O ./test/output.txt
➜ hp-cve-check git:(master) ✗ python3 hp-cve-check.py -i 192.168.223.1 -O output.txt
________________
_/_______________/|
/___________/___//|| HP CVE Check
|=== |----| ||
| | �| || Author: Tyler Butler
|___________| �| || @tbutler0x90
| ||/.�---.|| | ||
|-||/_____\||-. | |�
|_||==HP===||_|__|/
{!} Starting hp-cve-check
{!} -------- {INFO} Product Version is Supported
{!} -------- {INFO} IoC ID: A1 Path: /DevMgmt/ProductConfigDyn.xml Tag: dd:deviceLocation
{!} Scanning target: 192.168.223.1 for CVE
{!} -------- {INFO} Requesting http://192.168.223.1/DevMgmt/ProductConfigDyn.xml
{!} -------- {INFO}: OK Response, Status Code: 200
{!} -------- {INFO}: Found Something in DeviceLocation Field
{!} -------- {INFO}: Checking for Suspicious characters
{!} -------- {WARNING}: Found Indicator of Compromise
{!} -------- {WARNING}: Field Setting :<script>alert('XSS 2');</script>
{!} -------- {INFO} IoC ID: A2 Path: /DevMgmt/NetAppsDyn.xml Tag: dd:ApplicationServiceName
{!} Scanning target: 192.168.223.1 for CVE
{!} -------- {INFO} Requesting http://192.168.223.1/DevMgmt/NetAppsDyn.xml
{!} -------- {INFO}: OK Response, Status Code: 200
{!} -------- {INFO}: Found Something in DeviceLocation Field
{!} -------- {INFO}: Checking for Suspicious characters
{!} -------- {OK}: No IoCs Detected
{!} -------- {OK}: Payload: test
{!} Ending hp-cve-check ....
python3 hp-cve-check.py -i [target list] -o [output file]
| Option | Description | Use |
|---|---|---|
| -i | target ip | -i 192.168.223.1 |
| -I | target file |
Если IoC найдены, они сохраняются в выходной файл в формате, удобном для grep: [target ip]:[payload]. Если объекты полезной нагрузки не найдены, используется None.
➜ hp-cve-check git:(master) ✗ cat ./test/output.txt
192.168.223.1:<script>alert('XSS 2');</script>
192.168.223.1:None
Поскольку индикаторы компрометации находятся в разных ресурсах в зависимости от версии продукта, для хранения конфигурационных параметров, специфичных для версии, используются modules. Модули хранятся в папке modules в формате yaml. Для каждой поддерживаемой версии создаётся один yml-файл модуля, содержащий следующие параметры:
модуль hp-officejet-4630.yml
---
product: 'HP Officejet 4630'
path: '/DevMgmt/ProductConfigDyn.xml'
tag: 'dd:deviceLocation'
paths:
- A1: '/DevMgmt/ProductConfigDyn.xml'
A2: '/DevMgmt/NetAppsDyn.xml'
tags:
- A1: 'dd:deviceLocation'
A2: 'dd:ApplicationServiceName'
Paths и tags разбиты на основе таблицы обнаружения IoC, описанной в отчёте об уязвимости, см. ниже.

HP CVE Check разделён на пакеты core и util.
Пакеты HP CVE Check
➜ hp-cve-check git:(master) ✗ tree
├── lib
│ ├── core
│ │ ├── constants.py
│ │ ├── iocCheck.py
│ │ ├── module_parser.py
│ │ └── requests.py
│ └── utils
│ ├── printer.py
│ └── help.py
├── modules
│ └── hp-officejet-4630.yml
-i targets.txt |
| -O | output file | -O output.txt |