
CVE-2021-3441 CVE Checkは、CVE-2021-3441に関連する侵害の指標を対象から検索するPythonスクリプトです。
CVE-2021-3441 の IoC 発見を自動化する Python 製脅威インテリジェンスツールです。ターゲットの侵害指標(IoC)を簡単に検索できます。
________________
_/_______________/|
/___________/___//|| CVE-2021-3441 Check
|=== |----| ||
| | �| || Author: Tyler Butler
|___________| �| || @tbutler0x90
| ||/.�---.|| | ||
|-||/_____\||-. | |�
|_||==HP===||_|__|/
CVE-2021-3441 CVE Check は、CVE に対する侵害指標をターゲットから検索する Python ツールです。このスクリプトは、ターゲットの 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]
| オプション | 説明 | 使用例 |
|---|---|---|
| -i | ターゲット IP | -i 192.168.223.1 |
| -I | ターゲットファイル |
IoC が見つかった場合、[target ip]:[payload] という grep 可能な形式で出力ファイルに記録されます。ペイロードオブジェクトが見つからない場合は、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 形式で保存されます。サポートされている各バージョンに対して 1 つのモジュール 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 | 出力ファイル | -O output.txt |