scadastrangelove/CVE-2025-20352
GitHub: scadastrangelove/CVE-2025-20352
针对 CVE-2025-20352 的 Cisco IOS/IOS XE 设备 SNMP 暴露检查工具,通过扫描和解析 sysDescr 标识来评估漏洞风险状态。
Stars: 6 | Forks: 2
# CVE-2025-20352 SNMP 暴露检查 (onesixtyone + parser)
[]
```
它会提取 Cisco IOS/IOS XE 版本并进行标记。
**已修复版本** 位于脚本内的一个小型白名单中:
```
FIXED_WHITELIST = {
"IOS": {
# Add exact IOS 15.x fixed versions you confirm via Cisco Software Checker
# e.g. "15.9(3)M12": True
},
"IOS XE": {
"17.15.4a": True
# Add more as Cisco publishes/you confirm (e.g. "17.15.4b": True)
}
}
```
## 安装依赖
### Ubuntu/Debian
```
sudo add-apt-repository -y universe
sudo apt update
sudo apt install -y onesixtyone snmp python3
```
### RHEL/Fedora (示例)
```
# onesixtyone 可能在 EPEL 中;否则请从源代码构建
sudo dnf install -y net-snmp-utils python3 git make gcc
git clone https://github.com/trailofbits/onesixtyone.git
cd onesixtyone && make && sudo make install
```
## 使用详情
### 1) 扫描
```
printf "public\nprivate\n" > communities.txt
onesixtyone -c communities.txt 192.168.2.0/24 10.1.2.0/24 | tee snmp_raw.txt
```
提示:
* 添加 `-w 1` 以减少每个主机的等待时间(更快),如果遇到超时则移除它。
* 获取单个主机的标识:
snmpget -v2c -c public -t 1 -r 0 1.3.6.1.2.1.1.1.0
### 2) 解析
```
python3 ios_cve20352_parser.py < snmp_raw.txt > parsed.csv
column -s, -t < parsed.csv | less -S
```
## 安全与范围
* 仅扫描您**获得授权**的网络。
* 在慢速链路上保持保守的速率。
* 这是**暴露评估**,而非漏洞利用。
## 故障排除
* **无结果 / 超时:** 增加超时时间,降低速率,检查 UDP/161 的 ACL/防火墙。
* **Cisco 设备但版本为空:** 标识可能被截断;请使用 `snmpget` 直接查询 `sysDescr.0`。
* **漏报:** 某些设备仅响应允许的管理主机——请从许可的视点运行。
## 许可证
### EN
本项目采用 **MIT License** 授权。全文请参阅 [`LICENSE`](LICENSE) 文件。
### RU
Проект распространяется по лицензии **MIT**. Полный текст — в файле [`LICENSE`](LICENSE).
# RU — CVE-2025-20352 暴露检查 (onesixtyone + parser)
Быстрая и безопасная **оценка экспозиции** устройств Cisco IOS/IOS XE, связанная с **CVE-2025-20352** (подсистема SNMP):
1. **Сканируем** подсети на SNMP через **onesixtyone** с дефолтными сообществами.
2. **Парсим** баннеры `sysDescr.0` Python-скриптом: помечаем Cisco IOS/IOS XE и проставляем статус **Fixed** (если в белом списке) или **Potentially Vulnerable** (проверить в Cisco Software Checker).
## 快速入门
```
# 0) 克隆
git clone https://github.com/scadastrangelove/CVE-2025-20352 cve-2025-20352-scan
cd cve-2025-20352-scan
# 1) 依赖项
sudo add-apt-repository -y universe
sudo apt update
sudo apt install -y onesixtyone snmp python3
# 2) 社区文件
printf "public\nprivate\n" > communities.txt
# 3) 子网扫描(请根据自身情况修改!)
onesixtyone -c communities.txt 192.168.2.0/24 10.1.2.0/24 | tee snmp_raw.txt
# 4) 解析为 CSV
python3 ios_cve20352_parser.py < snmp_raw.txt > parsed.csv
# 5) 查看
column -s, -t < parsed.csv | less -S
```
## 输出
Столбцы `parsed.csv`:
* `ip` — IP-адрес
* `community` — сработавшее SNMP-сообщество
* `vendor` — `Cisco` / `Non-Cisco`
* `os_family` — `IOS`, `IOS XE` или пусто
* `version` — строка версии из баннера
* `status` — **Fixed**, **Potentially Vulnerable** (проверить в Cisco Software Checker) или **Not Cisco / Not IOS**
* `raw` — исходная строка баннера
**Пример**
```
ip,community,vendor,os_family,version,status,raw
1.1.2.4,public,Cisco,IOS,15.5(3)S2,Potentially Vulnerable — IOS 15.5(3)S2; verify in Cisco Software Checker,"Cisco IOS Software, ASR1000 ... Version 15.5(3)S2 ..."
1.1.2.2,public,Non-Cisco,,,Not Cisco / Not IOS,RouterOS RB750r2
```
## Parser
`ios_cve20352_parser.py` читает строки вида:
```
[]
```
Извлекает версии Cisco IOS/IOS XE и проставляет статус.
**Исправленные версии** перечисляются во внутреннем белом списке:
```
FIXED_WHITELIST = {
"IOS": {
# Добавляйте точные версии IOS 15.x после проверки в Cisco Software Checker
# напр. "15.9(3)M12": True
},
"IOS XE": {
"17.15.4a": True
# Дополняйте по мере публикаций/подтверждений (напр. "17.15.4b": True)
}
}
```
## 安装依赖项
### Ubuntu/Debian
```
sudo add-apt-repository -y universe
sudo apt update
sudo apt install -y onesixtyone snmp python3
```
### RHEL/Fedora (示例)
```
# onesixtyone 可能在 EPEL 中;否则请从源代码构建
sudo dnf install -y net-snmp-utils python3 git make gcc
git clone https://github.com/trailofbits/onesixtyone.git
cd onesixtyone && make && sudo make install
```
## 使用
### 1) 扫描
```
printf "public\nprivate\n" > communities.txt
onesixtyone -c communities.txt 192.168.2.0/24 10.1.2.0/24 | tee snmp_raw.txt
```
Подсказки:
* Параметр `-w 1` ускоряет опрос; уберите его, если видите таймауты.
* Точечный баннер для узла:
snmpget -v2c -c public -t 1 -r 0 1.3.6.1.2.1.1.1.0
### 2) 解析
```
python3 ios_cve20352_parser.py < snmp_raw.txt > parsed.csv
column -s, -t < parsed.csv | less -S
```
## 安全与边界
* Сканируйте только **разрешённые** сети.
* На медленных каналах снижайте интенсивность.
* Это **оценка экспозиции**, а не эксплуатация.
## 故障排除
* **Пусто/таймауты:** увеличьте таймауты, снизьте скорость, проверьте ACL/фаерволы на UDP/161.
* **Cisco без версии:** баннер мог быть обрезан — опросите `sysDescr.0` напрямую через `snmpget`.
* **Ложные отрицания:** некоторые устройства отвечают только доверенным хостам — запускайте из разрешённой точки.
## License
### EN
This project is licensed under the **MIT License**.
### RU
Проект распространяется по лицензии **MIT**.
标签:Cisco IOS, Cisco IOS XE, CVE-2025-20352, Google搜索, ICS安全, Maven, onesixtyone, PKINIT, Python, SCADA, Web技术栈, 后渗透, 哈希传递, 子网扫描, 工控安全, 应用安全, 思科, 插件系统, 无后门, 漏洞验证, 版本识别, 系统遥测, 网络设备安全, 资产暴露检测, 逆向工具, 黑盒测试, 默认口令