derekpreston81/CVE_ADC_IOC_2026
GitHub: derekpreston81/CVE_ADC_IOC_2026
该工具通过解析 NetScaler 配置文件自动检测设备是否满足多个 CVE 的漏洞触发前置条件。
Stars: 2 | Forks: 1
# CVE_ADC_IOC_2026
## NetScaler CVE 前置条件检查器
**作者:** Derek
一个用于检查 NetScaler 配置文件(`ns.conf`)并确定设备是否满足特定 CVE 前置条件的 Python 脚本。该脚本会解析运行配置或已保存的配置文件,并报告存在漏洞的配置以及详细的检查结果。
### 支持的 CVE
| CVE | 描述 | 检查的前置条件 |
|-----|-------------|---------------------|
| **CVE-2026-8451** | SAML IdP Profile | `add authentication samlIdPProfile .*` |
| **CVE-2026-8452** | Auth / Gateway Vserver | `add authentication vserver .*` 或 `add vpn vserver .*` |
| **CVE-2026-8655** | Oracle/DNS LB + DNS Recursion | Oracle LB, DNS/DOT vservers, SSL+DNSoverHTTPS, DNS recursive resolution |
| **CVE-2026-10817** | TCP TimeStamp ENABLED | 带有 `-TimeStamp ENABLED` 的 TCP profile,追踪 profile 到 vserver/service 的映射,处理默认 profile 继承 |
| **CVE-2026-13474** | HTTP/2 ENABLED | 带有 `-http2 ENABLED` 的 HTTP profile,追踪 profile 到 vserver 的映射,处理默认 profile 继承 |
### 功能
- **Profile 到 Vserver/Service 的映射**:针对 CVE-2026-10817 和 CVE-2026-13474,追踪哪些 vserver 和 service 使用了存在漏洞的 profile。
- **默认 Profile 处理**:检测默认 profile(`nstcp_default_profile`、`nshttp_default_profile`)是否存在漏洞设置,并枚举所有继承它们的 vserver/service。
- **多种输入模式**:支持本地文件、通过 `sshpass` 的 SSH 或通过 `paramiko`(纯 Python)的 SSH。
- **JSON 输出**:提供 `--json` 参数以便集成到 CI/CD pipeline 中。
- **静默模式**:使用 `--quiet` 仅显示存在漏洞的 CVE。
- **彩色输出**:带有 ANSI 颜色代码的终端输出,便于阅读。
### 安装说明
#### 1. 克隆或下载脚本
```
git clone https://github.com/derekpreston81/CVE_ADC_IOC_2026.git
cd CVE_ADC_IOC_2026
```
#### 2. 安装依赖(可选,用于 SSH 模式)
```
pip install -r requirements.txt
```
### 用法
#### 检查本地 `ns.conf` 文件
```
python netscaler_cve_checker.py /path/to/ns.conf
```
#### 通过 SSH 检查(自动检测后端)
```
python netscaler_cve_checker.py --ssh 192.168.1.1 nsroot password
```
脚本会自动优先尝试使用 `sshpass`,如果失败则回退到 `paramiko`。
#### 强制通过 paramiko 进行 SSH
```
python netscaler_cve_checker.py --ssh-paramiko 192.168.1.1 nsroot password
```
#### 输出 JSON 以用于自动化 / CI-CD
```
python netscaler_cve_checker.py --json /path/to/ns.conf
```
#### 静默模式 — 仅显示存在漏洞的 CVE
```
python netscaler_cve_checker.py --quiet /path/to/ns.conf
```
### 获取 NetScaler 配置
#### 选项 A:将运行配置保存到文件
从 NetScaler CLI(或 SSH)执行:
```
show ns runningconfig > /var/tmp/ns.conf
```
然后通过 SCP/SFTP 下载 `ns.conf` 并在本地运行检查器。
#### 选项 B:直接通过 SSH 获取
使用 `--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 模式。
#### 身份验证失败
- 检查用户名/密码是否正确。
- 确保 NetScaler 的 IP/主机名可访问。
- 检查 NetScaler 上是否已启用 SSH。
### 许可证
此脚本按“原样”提供,用于安全评估和合规性目的。使用风险自负。在进行更改之前,请务必根据供应商的安全通告验证检查结果。
### 作者
**Derek**
标签:Homebrew安装, Python, 内存分配, 实时处理, 无后门, 无线安全, 自动化运维, 逆向工具