
CVE-2021-3441 CVE Check es un script de Python para buscar en objetivos indicadores de compromiso relacionados con CVE-2021-3441.
Una herramienta de inteligencia de amenazas en Python para automatizar el descubrimiento de IoC para CVE-2021-3441. Busque fácilmente objetivos en busca de indicadores de compromiso.
________________
_/_______________/|
/___________/___//|| CVE-2021-3441 Check
|=== |----| ||
| | �| || Author: Tyler Butler
|___________| �| || @tbutler0x90
| ||/.�---.|| | ||
|-||/_____\||-. | |�
|_||==HP===||_|__|/
CVE-2021-3441 CVE Check es una herramienta de Python para buscar objetivos en busca de indicadores de compromiso con CVE. El script obtiene las versiones del producto desde la cabecera de respuesta HTTP del objetivo. Si la versión del producto es vulnerable y se ha creado un módulo para esa versión, el script solicita el recurso que podría contener un payload de exploit. Una vez que se carga la entidad HTML que podría contener un exploit, se buscan caracteres XSS comunes. El programa alerta al usuario a través de la consola si se encuentran payloads de exploit y puede registrar los hallazgos en un archivo de salida.

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]
| Opción | Descripción | Uso |
|---|---|---|
| -i | dirección IP del objetivo | -i 192.168.223.1 |
Si se encuentran IoC, se registran en el archivo de salida en un formato greppable, [target ip]:[payload]. Cuando no se encuentran objetos payload, se usa None.
➜ hp-cve-check git:(master) ✗ cat ./test/output.txt
192.168.223.1:<script>alert('XSS 2');</script>
192.168.223.1:None
Debido a que los indicadores de compromiso se encuentran en diferentes recursos dependiendo de la versión del producto, se utilizan módulos para almacenar opciones de configuración específicas de la versión. Los módulos se almacenan en la carpeta modules en formato yaml. Se crea un archivo yml de módulo para cada versión compatible y contiene las siguientes opciones,
Módulo 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 y tags se desglosan según la Tabla de Descubrimiento de IoC descrita en el informe de vulnerabilidad, ver más abajo.

HP CVE Check se divide en los paquetes core y util.
Paquetes de 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 |
| archivo de objetivos |
-i targets.txt |
| -O | archivo de salida | -O output.txt |