
CVE-2021-3441 CVE Check एक पायथन स्क्रिप्ट है जो CVE-2021-3441 से समझौते के संकेतकों (indicators of compromise) के लिए लक्ष्यों की खोज करती है।
CVE-2021-3441 के लिए IoC खोज को स्वचालित करने वाला एक python थ्रेट इंटेलिजेंस टूल। आसानी से लक्ष्यों में समझौते के संकेतक खोजें
________________
_/_______________/|
/___________/___//|| CVE-2021-3441 Check
|=== |----| ||
| | �| || Author: Tyler Butler
|___________| �| || @tbutler0x90
| ||/.�---.|| | ||
|-||/_____\||-. | |�
|_||==HP===||_|__|/
CVE-2021-3441 CVE Check एक python टूल है जो लक्ष्यों में CVE के समझौते के संकेतकों (indicators of compromise) की खोज करता है। स्क्रिप्ट लक्ष्य के http response header से उत्पाद संस्करण प्राप्त करती है। यदि उत्पाद संस्करण असुरक्षित है, और उस संस्करण के लिए एक मॉड्यूल बनाया गया है, तो स्क्रिप्ट उस संसाधन का अनुरोध करती है जिसमें exploit payload हो सकती है। एक बार जब वह html इकाई लोड हो जाती है जिसमें exploit हो सकता है, तो सामान्य XSS वर्णों की खोज की जाती है। प्रोग्राम उपयोगकर्ता को कंसोल के माध्यम से सचेत करता है यदि exploit payload पाई जाती हैं और निष्कर्षों को एक आउटपुट फ़ाइल में लॉग कर सकता है।

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]
| विकल्प | विवरण | उपयोग |
|---|---|---|
| -i | लक्ष्य ip | -i 192.168.223.1 |
| -I | लक्ष्य फ़ाइल |
यदि IoC पाए जाते हैं तो उन्हें एक grep-योग्य प्रारूप में आउटपुट फ़ाइल में लॉग किया जाता है, [target ip]:[payload]। जब कोई 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 प्रारूप में संग्रहीत किए जाते हैं। प्रत्येक समर्थित संस्करण के लिए एक module 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 Discovery Table के आधार पर विभाजित किया गया है, नीचे देखें।

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 | आउटपुट फ़ाइल | -O output.txt |