
Scanner für Zyxel-Produkte, die aufgrund eines undokumentierten Benutzerkontos potenziell verwundbar sind (CVE-2020-29583)
Details zur Schwachstelle: https://www.eyecontrol.nl/blog/undocumented-user-account-in-zyxel-products.html (Ich bin mir aber nicht sicher, ob ein Login mit zyfwp über die Web-Oberfläche wirklich möglich ist. Berichte dazu wären willkommen. Außerdem fehlen in der „vollständigen Liste der betroffenen Geräte“ NXC2500 und NXC5500.)
Das Fingerprinting der verwundbaren Version erfolgt über bestimmte Zeichenfolgen in index.html, z. B. ist v=200406233228 eine verwundbare USG40. Der Scanner findet die verwundbare Firmware-Version auf diesen Geräten zuverlässig:
Diese Zeichenfolgen sind pro Modell eindeutig und ich kenne sie für die restlichen Modelle nicht (Zyxel hat die verwundbare Firmware-Version von ihren Servern gelöscht.) Bei allen anderen Geräten prüft der Scanner nur das Gerätemodell, um festzustellen, ob sie potenziell verwundbar sind.
Der Scanner testet das Passwort aus rechtlichen Gründen nicht, du kannst das aber gerne bei allen Geräten tun, die du in deinen eigenen Netzwerken gefunden hast. (Benutzername: zyfwp Passwort: PrOw!aN_fXp)
Falls du einen Blick in die Firmware werfen musst, funktioniert die Entschlüsselung immer noch wie 2010: https://www.redteam-pentesting.de/de/advisories/rt-sa-2011-003/-authentication-bypass-in-configuration-import-and-export-of-zyxel-zywall-usg-appliances anschaulich beschrieben in https://twitter.com/cybercdh/status/1345654215654461440
Der Scanner ist multithreaded und kann Dateien mit CIDR-Netzmasken parsen, aber für größere Netzwerke solltest du dennoch nmap verwenden, um offene TCP-443-Ports zu finden, bevor du sie auf Schwachstellen scannst.
Der Standardport für den Schwachstellen-Scan ist TCP 443, änderbar mit --port.
Mit diesem Skript gefundene Geräte:
Der Scanner kann Folgendes parsen:
Example: python3 scan_CVE-2020-29583.py 192.168.1.1/24 # vuln scan for cve-2020-0609 on UDP 3391
Example2 python3 scan_CVE-2020-29583.py 192.168.1.1/24 --webcheck # check webpage for RD gateway
Example3: python3 scan_CVE-2020-29583.py 192.168.1.1
Example4: python3 scan_CVE-2020-29583.py fakewebsiteaddress.com
Example5: python3 scan_CVE-2020-29583.py as15169
Example6: python3 scan_CVE-2020-29583.py file:hostfile.txt
usage: scan_CVE-2020-29583.py [-h] [--port PORT]
[--verbose]
target
Keine Installation erforderlich.
Debian/Kali benötigt: apt-get install python3-netaddr
Zur Leistungsoptimierung kannst du die Threading-Parameter im Skript unter „kind of config“ ändern.