
CVE-2021-3441 CVE Check est un script python pour rechercher sur des cibles des indicateurs de compromission liés à CVE-2021-3441
Un outil Python de renseignement sur les menaces pour automatiser la découverte d'IoC pour CVE-2021-3441. Recherchez facilement des cibles pour des indicateurs de compromission.
________________
_/_______________/|
/___________/___//|| CVE-2021-3441 Check
|=== |----| ||
| | �| || Author: Tyler Butler
|___________| �| || @tbutler0x90
| ||/.�---.|| | ||
|-||/_____\||-. | |�
|_||==HP===||_|__|/
CVE-2021-3441 CVE Check est un outil Python pour rechercher des cibles pour des indicateurs de compromission liés à la CVE. Le script récupère les versions de produits depuis l'en-tête de réponse HTTP de la cible. Si la version du produit est vulnérable, et qu'un module pour cette version a été créé, le script demande la ressource qui pourrait contenir une charge utile d'exploitation. Une fois l'entité HTML qui pourrait contenir une exploitation chargée, des caractères XSS courants sont recherchés. Le programme alerte l'utilisateur via la console si des charges utiles d'exploitation sont trouvées et peut enregistrer les résultats dans un fichier de sortie.

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 | Utilisation |
|---|---|---|
| -i | adresse IP de la cible | -i 192.168.223.1 |
| -I | fichier de cibles | -i targets.txt |
| -O | fichier de sortie | -O output.txt |
Si des IoC sont trouvés, ils sont enregistrés dans le fichier de sortie dans un format greppable (pouvant être recherché avec grep), [target ip]:[payload]. Lorsqu'aucun objet de charge utile n'est trouvé, None est utilisé.
➜ hp-cve-check git:(master) ✗ cat ./test/output.txt
192.168.223.1:<script>alert('XSS 2');</script>
192.168.223.1:None
Étant donné que les indicateurs de compromission se trouvent dans différentes ressources selon la version du produit, des modules sont utilisés pour stocker les options de configuration spécifiques à la version. Les modules sont stockés dans le dossier modules au format yaml. Un fichier module yml est créé pour chaque version prise en charge et contient les options suivantes :
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'
Les Paths et tags sont décomposés en fonction du tableau de découverte d'IoC décrit dans le rapport de vulnérabilité, voir ci-dessous.

HP CVE Check est divisé en packages core et util.
HP CVE Check Packages
➜ 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