
CVE-2025-20352 SNMP Exposure Check (onesixtyone + parser)
Comprobación de exposición black-box rápida y segura para dispositivos Cisco IOS/IOS XE relacionada con CVE-2025-20352 (subsistema SNMP):
sysDescr.0 con un pequeño script de Python para marcar Cisco IOS/IOS XE y clasificar las versiones como Fixed (si están en la lista blanca) o Potentially Vulnerable (verifícalo en Cisco Software Checker).Este proyecto no explota nada. Solo identifica dispositivos que responden a las comunidades SNMP por defecto y extrae información de versión de
sysDescr.0.
# 0) Clone this repo
git clone https://github.com/scadastrangelove/CVE-2025-20352 cve-2025-20352-scan
cd cve-2025-20352-scan
# 1) Install dependencies (Ubuntu/Debian)
sudo add-apt-repository -y universe
sudo apt update
sudo apt install -y onesixtyone snmp python3
# 2) Create a small community list with defaults
printf "public\nprivate\n" > communities.txt
# 3) Scan your subnets (EDIT THESE!)
onesixtyone -c communities.txt 192.168.2.0/24 10.1.2.0/24 | tee snmp_raw.txt
# 4) Parse the results to CSV
python3 ios_cve20352_parser.py < snmp_raw.txt > parsed.csv
# 5) View nicely
column -s, -t < parsed.csv | less -S
Columnas de parsed.csv:
ip — IP de destinocommunity — comunidad SNMP que funcionóvendor — Cisco / Non-Ciscoos_family — IOS, IOS XE o vacíoversion — cadena de versión extraída del bannerstatus — Fixed, Potentially Vulnerable (verifícalo en Cisco Software Checker) o Not Cisco / Not IOSraw — línea del banner originalEjemplo
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
ios_cve20352_parser.py lee de stdin (o de un archivo) líneas como:
<ip> [<community>] <sysDescr...>
Extrae las versiones de Cisco IOS/IOS XE y las etiqueta.
Las versiones corregidas (Fixed) se encuentran en una pequeña lista blanca dentro del script:
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)
}
}
¿Por qué una lista blanca? El aviso de Cisco remite a los administradores al Cisco Software Checker para conocer las compilaciones exactas afectadas/corregidas por tren/plataforma. Por tanto, el script peca de cauteloso: si una versión de Cisco IOS/IOS XE no está en la lista de corregidas, se marca como “Potentially Vulnerable” y debes verificarla en el comprobador.
sudo add-apt-repository -y universe
sudo apt update
sudo apt install -y onesixtyone snmp python3
# onesixtyone may be in EPEL; otherwise build from source
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
printf "public\nprivate\n" > communities.txt
onesixtyone -c communities.txt 192.168.2.0/24 10.1.2.0/24 | tee snmp_raw.txt
Consejos:
Añade -w 1 para reducir el tiempo de espera por host (más rápido), o elimínalo si ves timeouts.
Para un banner directo de un solo host:
snmpget -v2c -c public -t 1 -r 0 <IP> 1.3.6.1.2.1.1.1.0
python3 ios_cve20352_parser.py < snmp_raw.txt > parsed.csv
column -s, -t < parsed.csv | less -S
sysDescr.0 directamente con snmpget.FIXED_WHITELIST.Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para ver el texto completo.
El proyecto se distribuye bajo la Licencia MIT. El texto completo está en el archivo LICENSE.
Comprobación de exposición black-box rápida y segura para dispositivos Cisco IOS/IOS XE relacionada con CVE-2025-20352 (subsistema SNMP):
sysDescr.0 con un script de Python: marca Cisco IOS/IOS XE y asigna el estado Fixed (si está en la lista blanca) o Potentially Vulnerable (verifícalo en Cisco Software Checker).El proyecto no explota la vulnerabilidad. Solo identifica los dispositivos que responden a las comunidades SNMP por defecto y extrae la versión de
sysDescr.0.
# 0) Клонирование
git clone https://github.com/scadastrangelove/CVE-2025-20352 cve-2025-20352-scan
cd cve-2025-20352-scan
# 1) Зависимости (Ubuntu/Debian)
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
Columnas de parsed.csv:
ip — dirección IPcommunity — comunidad SNMP que funcionóvendor — Cisco / Non-Ciscoos_family — IOS, IOS XE o vacíoversion — cadena de versión del bannerstatus — Fixed, Potentially Vulnerable (verifícalo en Cisco Software Checker) o Not Cisco / Not IOSraw — línea original del bannerEjemplo
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
ios_cve20352_parser.py lee líneas como las siguientes:
<ip> [<community>] <sysDescr...>
Extrae las versiones de Cisco IOS/IOS XE y asigna el estado.
Las versiones corregidas (Fixed) se enumeran en la lista blanca interna:
FIXED_WHITELIST = {
"IOS": {
# Добавляйте точные версии IOS 15.x после проверки в Cisco Software Checker
# напр. "15.9(3)M12": True
},
"IOS XE": {
"17.15.4a": True
# Дополняйте по мере публикаций/подтверждений (напр. "17.15.4b": True)
}
}
¿Por qué una lista blanca? El aviso de Cisco recomienda verificar las compilaciones concretas a través del Cisco Software Checker. Por lo tanto, si una versión de IOS/IOS XE no se encuentra en la lista de Fixed, el script la marca como “Potentially Vulnerable”; verifícala luego en el comprobador.
sudo add-apt-repository -y universe
sudo apt update
sudo apt install -y onesixtyone snmp python3
# 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
printf "public\nprivate\n" > communities.txt
onesixtyone -c communities.txt 192.168.2.0/24 10.1.2.0/24 | tee snmp_raw.txt
Consejos:
El parámetro -w 1 acelera el sondeo; elimínalo si ves timeouts.
Banner directo para un host:
snmpget -v2c -c public -t 1 -r 0 <IP> 1.3.6.1.2.1.1.1.0
python3 ios_cve20352_parser.py < snmp_raw.txt > parsed.csv
column -s, -t < parsed.csv | less -S
sysDescr.0 directamente con snmpget.FIXED_WHITELIST con versiones corregidas confirmadas.Este proyecto está bajo la Licencia MIT.
El proyecto se distribuye bajo la Licencia MIT.