
CVE-2025-20352 SNMP Exposure Check (onesixtyone + parser)
Schnelle, sichere Black-Box-Expositionsprüfung für Cisco IOS/IOS XE-Geräte im Zusammenhang mit CVE-2025-20352 (SNMP-Subsystem):
sysDescr.0-Banner mit einem kleinen Python-Skript, um Cisco IOS/IOS XE zu kennzeichnen und Versionen als Fixed (falls auf der Whitelist) oder Potentially Vulnerable (in Cisco Software Checker prüfen) zu markieren.Dieses Projekt exploitiert nichts. Es identifiziert nur Geräte, die auf Standard-SNMP-Communitys antworten, und extrahiert Versionsinformationen aus
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
Spalten von parsed.csv:
ip — Ziel-IPcommunity — funktionierende SNMP-Communityvendor — Cisco / Non-Ciscoos_family — IOS, IOS XE oder leerversion — aus dem Banner extrahierte Versionszeichenfolgestatus — Fixed, Potentially Vulnerable (in Cisco Software Checker prüfen) oder Not Cisco / Not IOSraw — ursprüngliche BannerzeileBeispiel
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 liest von stdin (oder einer Datei) Zeilen wie:
<ip> [<community>] <sysDescr...>
Es extrahiert Cisco IOS/IOS XE-Versionen und kennzeichnet sie.
Behobene Versionen (Fixed) stehen in einer kleinen Whitelist im Skript:
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)
}
}
Warum eine Whitelist? Ciscos Advisory verweist Administratoren für die genauen betroffenen/behobenen Builds je Train/Plattform auf den Cisco Software Checker. Das Skript geht daher auf Nummer sicher: Wenn eine Cisco IOS/IOS XE-Version nicht in der Fixed-Liste steht, wird sie als „Potentially Vulnerable“ markiert, und Sie sollten sie im Checker überprüfen.
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
Tipps:
Fügen Sie -w 1 hinzu, um die Wartezeit pro Host zu verkürzen (schneller), oder entfernen Sie es, wenn Timeouts auftreten.
Für ein direktes Einzelhost-Banner:
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 direkt mit snmpget ab.FIXED_WHITELIST hinzu.Dieses Projekt ist unter der MIT-Lizenz lizenziert. Den vollständigen Text finden Sie in der Datei LICENSE.
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Den vollständigen Text finden Sie in der Datei LICENSE.
Schnelle und sichere Expositionsprüfung von Cisco IOS/IOS XE-Geräten im Zusammenhang mit CVE-2025-20352 (SNMP-Subsystem):
sysDescr.0-Banner mit einem Python-Skript: Kennzeichnen Sie Cisco IOS/IOS XE und setzen Sie den Status auf Fixed (falls in der Whitelist) oder Potentially Vulnerable (in Cisco Software Checker prüfen).Das Projekt exploitiert die Schwachstelle nicht. Es ermittelt lediglich Geräte, die auf Standard-SNMP-Communitys antworten, und extrahiert die Version aus
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
Spalten von parsed.csv:
ip — IP-Adressecommunity — funktionierende SNMP-Communityvendor — Cisco / Non-Ciscoos_family — IOS, IOS XE oder leerversion — Versionszeichenfolge aus dem Bannerstatus — Fixed, Potentially Vulnerable (in Cisco Software Checker prüfen) oder Not Cisco / Not IOSraw — ursprüngliche BannerzeileBeispiel
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 liest Zeilen der Form:
<ip> [<community>] <sysDescr...>
Extrahiert Cisco IOS/IOS XE-Versionen und vergibt Status.
Behobene Versionen (Fixed) sind in einer internen Whitelist aufgeführt:
FIXED_WHITELIST = {
"IOS": {
# Добавляйте точные версии IOS 15.x после проверки в Cisco Software Checker
# напр. "15.9(3)M12": True
},
"IOS XE": {
"17.15.4a": True
# Дополняйте по мере публикаций/подтверждений (напр. "17.15.4b": True)
}
}
Warum eine Whitelist? Das Cisco-Advisory empfiehlt, konkrete Builds über den Cisco Software Checker zu prüfen. Wenn eine IOS/IOS XE-Version daher nicht in der Fixed-Liste gefunden wird, setzt das Skript die Markierung „Potentially Vulnerable“; prüfen Sie sie anschließend im Checker.
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
Tipps:
Der Parameter -w 1 beschleunigt die Abfrage; entfernen Sie ihn, wenn Timeouts auftreten.
Gezieltes Banner für einen 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 direkt über snmpget ab.FIXED_WHITELIST um bestätigte Fix-Releases.Dieses Projekt ist unter der MIT-Lizenz lizenziert.
Dieses Projekt ist unter der MIT-Lizenz lizenziert.