漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解

IoT 2年前 (2022) admin
783 0 0

★且听安全-点关注,不迷路!



漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解

★漏洞空间站-优质漏洞资源和小伙伴聚集地!


漏洞信息


近日 Rapid7 发现并报告了 CVE-2022-30525 Zyxel ZTP RCE 漏洞,该漏洞影响支持零接触配置 (ZTP) 的 Zyxel 防火墙,其中包括 ATP 系列、VPN 系列和 USG FLEX 系列。允许未经身份验证的远程攻击者以 nobody 受影响设备上的用户身份执行任意代码。


利用代码网上已经公开了,这里就不过多赘述了。下面给各位小伙伴分享下自己对 Zyxel 固件破解到漏洞原理分析,以及配置文件密码破解的过程。


固件破解


从官网选择下载 Zyxel USG FLEX 100 v5.30 和 v5.21 两个版本。解压固件,包含一个 `.bin` 主文件,一个  `.ri` 文件和两个 `.pdf` 文件:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


其中 `.bin` 、 `.db` 文件使用 `binwalk` 无法解压获取linux目录, `binwalk -Me 521ABUH1C0.ri` 文件解压后可以看到 `zyinit` 目录:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


注意到其中有一个 `zld_fsextrct` 文件,使用的是 `MIPS` 架构:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


经过测试可使用 `qemu-mipsn32-static` 执行:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


使用如下命令可以看到支持的选项:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


使用 `extract` 选项解压,提示 `Exec format error` ,原因是 `binwalk` 解压后 `unzip` 格式为 `mips` 指令集:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


尝试使用 `strace` 来监视 `unzip` 请求,注意到执行 `unzip` 命令时包含了一个固定密码:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


尝试利用该密码解压 521ABUH1C0.bin 文件:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


继续利用 `binwalk -e compress.img` 提取文件目录:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


漏洞分析


先看一下环境情况, `/usr/local/zyxel-gui` 为配置界面服务,使用 Apache 启动,端口为 443:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


可以看到配置文件添加了 `.py` 类型 cgi 映射:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


`ZTP` 模块位于 `/htdocs/ztp/cgi-bin` 目录:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


`handler.py` 中引用 `liib_wan_settings.py` :


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


支持 `setWanPortSt` 和 `getWanPortSt` 操作:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


从请求中获取 `command` 的值并进行调用相应函数,其中并没有进行权限检查:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


提取 5.21 和 5.30 固件后进行补丁对比,漏洞文件出现在 `lib_wan_settings.py` 下的 `setWanPortSt` 函数。当 `proto` 为 `pppoe` 时, `req[mtu]` 的值直接传入 `cmdLine` 并进行 `os.system` 调用:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


修补后调用为 `subprocess.call` ,且进行 `shlex.split` 检查:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


通过上面的分析,很容易构造出利用过程了,网上放出了很多 POC ,这里就不重复了。

密码破解


拿下权限后,可以尝试分析配置文件。用户配置文件存储于 `__system_default.xml` 中:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


密码示例为 `$4$*` ,可以被解密还原:


漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解


某些老设备可能还存在 CVE-2020-29583 后门漏洞,可使用后门密码登录 ftp 21 端口。


有兴趣获取完整分析工具和漏洞分析过程的小伙伴,请加入我们的漏洞空间站-致力于打造优质漏洞资源和小伙伴聚集地!



由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用本人负责,且听安全团队及文章作者不为此承担任何责任。



★且听安全-点关注,不迷路!

漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解



★漏洞空间站-优质漏洞资源和小伙伴聚集地!

漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解

原文始发于微信公众号(且听安全):漏洞空间站上线啦!CVE-2022-30525 Zyxel ZTP RCE 从固件破解到漏洞分析再到密码破解

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...