
CVE-2021-3441 CVE Check é um script python para buscar em alvos por indicadores de comprometimento relativos ao CVE-2021-3441
Uma ferramenta Python de inteligência de ameaças para automatizar a descoberta de IoCs para CVE-2021-3441. Pesquise facilmente alvos por indicadores de comprometimento.
________________
_/_______________/|
/___________/___//|| CVE-2021-3441 Check
|=== |----| ||
| | �| || Author: Tyler Butler
|___________| �| || @tbutler0x90
| ||/.�---.|| | ||
|-||/_____\||-. | |�
|_||==HP===||_|__|/
CVE-2021-3441 CVE Check é uma ferramenta Python para pesquisar alvos por indicadores de comprometimento relacionados à CVE. O script obtém as versões dos produtos a partir do cabeçalho de resposta HTTP do alvo. Se a versão do produto for vulnerável e um módulo para essa versão tiver sido criado, o script solicita o recurso que pode conter um payload de exploit. Uma vez que a entidade HTML que pode conter um exploit é carregada, caracteres XSS comuns são pesquisados. O programa alerta o usuário através do console se payloads de exploit forem encontrados e pode registrar os achados em um arquivo de saída.

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]
| Opção | Descrição | Uso |
|---|---|---|
| -i | IP do alvo | -i 192.168.223.1 |
| -I | arquivo de alvos |
Se IoCs forem encontrados, eles são registrados no arquivo de saída em um formato greppable: [IP do alvo]:[payload]. Quando nenhum objeto de payload é encontrado, None é usado.
➜ hp-cve-check git:(master) ✗ cat ./test/output.txt
192.168.223.1:<script>alert('XSS 2');</script>
192.168.223.1:None
Como os indicadores de comprometimento são encontrados em diferentes recursos dependendo da versão do produto, módulos são usados para armazenar opções de configuração específicas da versão. Os módulos são armazenados na pasta modules no formato yaml. Um arquivo de módulo yml é criado para cada versão suportada e contém as seguintes opções:
hp-officejet-4630.yml module
---
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'
Os paths e tags são divididos com base na Tabela de Descoberta de IoCs descrita no relatório de vulnerabilidade, veja abaixo.

HP CVE Check é dividido nos pacotes core e util.
Pacotes do 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 | arquivo de saída | -O output.txt |