该工具是一个非破坏性暴露调查工具,用于评估目标 PAN-OS 服务是否可能暴露与 CVE-2026-0300 相关的网络可访问面。
该工具旨在用于授权的防御性安全验证、资产暴露审查和漏洞分类。它不会利用该漏洞,不会发送内存破坏载荷,也不会尝试使目标设备崩溃或入侵。
该工具设计用于与以下内容相关的暴露评估:
根据 Palo Alto Networks 的说明,CVE-2026-0300 影响已启用 User-ID 认证门户且可从不受信任网络访问的 PAN-OS 部署。PA 系列和 VM 系列防火墙可能受影响。官方公告中列明 Prisma Access、Cloud NGFW 和 Panorama 不受影响。
该工具执行安全的网络和 HTTP(S) 级别检查,以识别目标是否暴露了与 PAN-OS 门户相关的服务。
它检查:
--scheme both 或 --scheme http 时的 HTTP 可达性。HEADGETOPTIONS//php/login.php/php/uid.php/php/uidlogin.php/sslmgr/global-protect/login.esp--pan-os-ver 进行可选的自我报告 PAN-OS 版本评估。HTTPS 证书验证默认禁用,因为 PAN-OS 管理和门户服务通常使用自签名或私有签发的证书。
该工具不会:
该工具仅提供外部网络可观察的暴露评估,如果提供了 --pan-os-ver,则提供基于自我报告版本的风险评估。
该工具有助于回答以下问题:
该工具检查扫描主机是否能够与指定目标和端口建立 TCP 连接。
示例发现:
tcp=True
https=True
这意味着目标端口可从扫描主机访问,并接受 HTTPS 连接。
该工具发送安全的 HTTP(S) 请求并记录响应状态码。
示例发现:
HTTPS HEAD /: HTTP/1.1 403 Forbidden
HTTPS GET /php/uid.php: HTTP/1.1 500 Internal Server Error
这意味着该服务可达并正在处理 HTTP(S) 请求。
该工具检查通常与 PAN-OS 门户或响应页面功能相关的路径。
示例:
/php/login.php
/php/uid.php
/php/uidlogin.php
这些路径返回非 404 响应可能表明门户相关的处理程序可从扫描主机访问。
该工具在响应头、标题、重定向、Cookie 和响应正文样本中查找轻量级文本指示器。
指示器示例:
palo alto
pan-os
globalprotect
captive portal
user-id
authentication portal
response page
这些指示器增加了暴露服务与 PAN-OS 门户功能相关的置信度。
如果提供了 --pan-os-ver,该工具会将提供的版本与脚本中嵌入的官方公告表中的受影响/已修复阈值进行比较。
示例:
--pan-os-ver 10.2.4-h2
示例结果:
patch_status: AFFECTED_BY_VERSION
version_status: AFFECTED_VERSION
combined_risk=HIGH
如果未提供 --pan-os-ver,该工具会显示受影响/已修复版本表,并将版本状态报告为未知。
该工具仅使用 Python 标准库模块。
无需外部 Python 依赖。
python3 --version
推荐:
Python 3.8+
可以使用一个最小的 requirements.txt:
# 无需外部依赖。
# 该工具仅使用 Python 标准库模块。
python3 panos_cve_2026_0300_diag.py \
-t 172.16.20.254 \
-p 6082
python3 panos_cve_2026_0300_diag.py \
-t 172.16.20.254 \
-p 6082 \
--pan-os-ver 10.2.4-h2
python3 panos_cve_2026_0300_diag.py \
-t 172.16.20.254 \
-p 6082 \
--pan-os-ver 10.2.4-h2 \
--verbose
python3 panos_cve_2026_0300_diag.py \
-t 172.16.20.254 \
-p 6082 \
--scheme both
默认情况下,该工具会探测所有安全的已知路径。
使用 --minimal 仅检查:
//php/login.phppython3 panos_cve_2026_0300_diag.py \
-t 172.16.20.254 \
-p 6082 \
--minimal
python3 panos_cve_2026_0300_diag.py \
-t 172.16.20.254 \
-p 443,6082,6081-6083 \
--scheme both
python3 panos_cve_2026_0300_diag.py \
-t 172.16.20.0/24 \
-p 6082 \
--csv-out results.csv \
--json-out results.json
创建 targets.txt:
172.16.20.254
172.16.20.253
172.16.21.0/24
运行:
python3 panos_cve_2026_0300_diag.py \
-T targets.txt \
-p 6082 \
--json-out results.json
| 选项 | 描述 |
|---|---|
-t, --target | 目标 IP、主机名或 CIDR。支持逗号分隔的值。 |
-T, --targets-file | 包含目标的文件,每行一个。支持 CIDR 条目。 |
-p, --ports | 端口或端口范围。示例:6082、443,6082、6081-6083。 |
--scheme | 探测方案:https、http 或 both。默认值:https。 |
--pan-os-ver | 自我报告的 PAN-OS 版本,例如 10.2.4-h2。 |
--timeout | 套接字超时时间(秒)。默认值:4.0。 |
--max-bytes | 每个请求读取的最大响应字节数。默认值:16384。 |
--minimal | 仅探测 / 和 /php/login.php。 |
--verbose | 打印所有请求观察结果。 |
--quiet | 减少控制台输出。 |
--json-out | 将完整结果写入 JSON 文件。 |
--csv-out | 将摘要结果写入 CSV 文件。 |
该工具产生三种主要类型的评估:
| 暴露级别 | 含义 |
|---|---|
LIKELY_EXPOSED_AUTH_PORTAL | 在可达的 HTTP(S) 服务上观察到类似 PAN-OS 和类似认证门户的指示器。 |
POSSIBLE_EXPOSED_AUTH_PORTAL | 门户相关路径似乎可达并表现为应用程序处理程序,但无法远程确认 PAN-OS 产品/版本。 |
POSSIBLE_RESPONSE_PAGE_EXPOSURE | 门户相关路径或响应页面似乎可达,但未确认产品/版本。 |
HTTP_SERVICE_REACHABLE_ACCESS_CONTROLLED | HTTP(S) 服务可达且受访问控制,但未观察到明确的门户指纹。 |
HTTP_SERVICE_REACHABLE_UNIDENTIFIED | HTTP(S) 服务可达,但未观察到明确的 PAN-OS/User-ID 门户指示器。 |
TCP_REACHABLE_SERVICE_UNIDENTIFIED | TCP 连接成功,但未观察到明确的 HTTP 响应。 |
NOT_REACHABLE_FROM_THIS_SCANNER | 扫描主机无法到达目标端口。 |
| 置信度 | 含义 |
|---|---|
HIGH | 观察到强外部指示器,例如门户相关的 5xx/2xx/3xx 响应或多个门户路径返回非 404 响应。 |
MEDIUM | 观察到一些门户或响应页面指示器,但无法高置信度地识别该服务。 |
LOW | 服务可达,但产品或门户证据较弱。 |
| 状态 | 解读 |
|---|---|
2xx | 该路径返回了成功内容。这可能表明门户内容可达。 |
3xx | 该路径返回了重定向。这可能表明门户或登录流程可达。 |
403 | 该路径存在或被处理,但访问被禁止。 |
404 | 未找到该路径。这是较弱的暴露证据。 |
405 | 该路径可能存在,但不允许该 HTTP 方法。这对门户相关路径有意义。 |
5xx | 请求可能到达了应用程序逻辑并导致服务器端错误。这是较强的暴露证据,但不是可利用性的证明。 |