作者: Derek
一个 Python 脚本,用于检查 NetScaler 配置文件(ns.conf),确定设备是否满足特定 CVE 的前置条件。该脚本解析运行配置或已保存的配置文件,并报告存在漏洞的配置及详细发现。
| CVE | 描述 | 检查的前置条件 |
|---|---|---|
| CVE-2026-8451 | SAML IdP 配置文件 | add authentication samlIdPProfile .* |
| CVE-2026-8452 | 认证/网关虚拟服务器 | add authentication vserver .* 或 add vpn vserver .* |
| CVE-2026-8655 | Oracle/DNS 负载均衡 + DNS 递归 | Oracle 负载均衡、DNS/DOT 虚拟服务器、SSL+DNSoverHTTPS、DNS 递归解析 |
| CVE-2026-10817 | TCP 时间戳已启用 | 带有 -TimeStamp ENABLED 的 TCP 配置文件,追踪配置文件到虚拟服务器/服务的映射,处理默认配置文件继承 |
| CVE-2026-13474 | HTTP/2 已启用 | 带有 -http2 ENABLED 的 HTTP 配置文件,追踪配置文件到虚拟服务器的映射,处理默认配置文件继承 |
nstcp_default_profile、nshttp_default_profile)是否包含有漏洞的设置,并列出所有继承的虚拟服务器/服务。sshpass 的 SSH、或通过 paramiko(纯 Python)的 SSH。--json 标志用于 CI/CD 流水线集成。--quiet 仅显示存在漏洞的 CVE。git clone https://github.com/derekpreston81/CVE_ADC_IOC_2026.git
cd CVE_ADC_IOC_2026
pip install -r requirements.txt
注意: 脚本在本地文件模式下仅依赖 Python 标准库。仅在通过 SSH 获取配置时需要
paramiko。
ns.conf 文件python netscaler_cve_checker.py /path/to/ns.conf
python netscaler_cve_checker.py --ssh 192.168.1.1 nsroot password
脚本会先自动尝试 sshpass,然后回退到 paramiko。
python netscaler_cve_checker.py --ssh-paramiko 192.168.1.1 nsroot password
python netscaler_cve_checker.py --json /path/to/ns.conf
python netscaler_cve_checker.py --quiet /path/to/ns.conf
在 NetScaler CLI(或 SSH)中:
show ns runningconfig > /var/tmp/ns.conf
然后通过 SCP/SFTP 下载 ns.conf 并在本地运行检查器。
使用 --ssh 或 --ssh-paramiko 标志(见上文)。脚本在设备上运行 show ns runningconfig 并解析输出。
================================================================================
NetScaler CVE Preconditions Checker
Version: 1.1
================================================================================
[CVE-2026-8451] SAML IdP Profile Configuration
Status: NOT VULNERABLE (Severity: NONE)
Precondition: add authentication samlIdPProfile .*
✓ No matching preconditions found.
[CVE-2026-8452] Authentication Vserver / Gateway (VPN) Vserver
Status: VULNERABLE (Severity: HIGH)
Preconditions:
- add authentication vserver .* (AAA Vserver)
- add vpn vserver .* (Gateway: VPN, ICA Proxy, CVPN, RDP Proxy)
⚠ Findings:
VPN/Gateway Vservers (2):
> add vpn vserver GW_VPN SSL 10.0.0.10 443 -icaOnly ON
> add vpn vserver RDP_PROXY SSL 10.0.0.11 443
Recommendation: Review AAA and VPN vservers. Apply patches and restrict access.
[CVE-2026-10817] TCP Profiles with TimeStamp ENABLED
Status: VULNERABLE (Severity: CRITICAL)
Precondition: TCP profiles with -TimeStamp ENABLED
⚠ Findings:
TCP Profiles with TimeStamp ENABLED (1):
> Profile: custom_profile
Config: add ns tcpProfile custom_profile -TimeStamp ENABLED
Attached Vservers (1):
- test_server (add lb vserver)
⚠ DEFAULT PROFILE (nstcp_default_profile) has TimeStamp ENABLED!
All vservers/services without explicit TCP profile are impacted.
Default-impacted Vservers (15):
- vs1 (add lb vserver)
- vs2 (add cs vserver)
...
Recommendation: Disable TimeStamp on TCP profiles unless required.
================================================================================
SUMMARY
================================================================================
CVE-2026-8451: SAFE
CVE-2026-8452: VULNERABLE
CVE-2026-8655: SAFE
CVE-2026-10817: VULNERABLE
CVE-2026-13474: SAFE
Total CVEs checked: 5
Vulnerable: 2
Safe: 3
ACTION REQUIRED: Review findings above and apply vendor patches.
================================================================================
sshpass not found 错误在你的系统上安装 sshpass,或者改用 --ssh-paramiko:
# Ubuntu/Debian
sudo apt-get install sshpass
# RHEL/CentOS/Rocky
sudo yum install sshpass
# macOS
brew install sshpass
paramiko 未安装pip install paramiko
然后使用 --ssh-paramiko 进行 SSH 模式。
此脚本按原样提供,用于安全评估和合规目的。请自行承担使用风险。在应用更改之前,请始终对照供应商安全建议验证发现结果。
Derek