01概述
年初Pwn2Own Austin 2021曝出了多个Cisco RV系列路由器漏洞,在对应版本的Cisco RV340路由器上,博智非攻研究院对其中几个漏洞进行研究复现,相关漏洞详情如下所示:
漏洞存在于固件版本低于V1.0.03.24及其以前的RV340系列路由器中,当前最新版本V1.0.03.26已修复了此漏洞。手头的RV340路由器固件版本为V1.0.03.22,刚好为存在漏洞、适合分析的对象。
02漏洞复现
从官网分别下载了V1.0.03.22固件并file命令查看:
$ fileRV34X-v1.0.03.22-2021-06-14-02-33-28-AM.img
RV34X-v1.0.03.22-2021-06-14-02-33-28-AM.img:u-boot legacy uImage, RV340 Firmware Package, Linux/ARM, Firmware Image (gzip),74777418 bytes, Sun Jun 13 21:03:33 2021, Load Address: 00000000, Entry Point:00000000, Header CRC: 0XA2BA8A, Data CRC: 0XFFE70AEC
显示固件为IoT设备通用的镜像格式“Das U-Boot”,系统架构为Linux/ARM。
Cisco RV340路由器的web服务器使用了Nginx,其系统配置位于文件系统的/etc/nginx,所有的二进制CGI文件位于/www/cgi-bin/,web UI功能交互使用到的几个CGI文件主要为:blockpage.cgi, jsonrpc.cgi 和upload.cgi。由于所有的用户交互始于Web UI操作,因此可以从web服务器的配置着手分析:
从web.upload.conf文件中可以看出,为了确保所有请求都是经过了认证的,变量$deny被设置为0,代表了/tmp/websession/token/路径下存在一个session ID,由此说明当前用户已经经过登录认证,否则session ID文件将不会生成。所有未认证的请求将直接被拒绝并返回HTTP 403。
然而,此处的认证可被轻松绕过:通过使用../../将sessionid指向为任何当前系统存在一个文件,通过curl测试如下:
通过测试可以看出,当指向系统中不存在的文件,系统返回HTTP 403,而指向一个存在的文件将返回HTTP 400,由此完成了CVE-2022-20705的复现。
通过认证之后,将进入一些列的参数合法性检查,通过逆向upload.cgi可分析其详细过程:
同时将对cookie的合法性做二次检查:
因此只有合法的认证才能通过检查。因此,我们第一步的绕过认证的登录session id将无法通过二次检查。但是,由于在cookie分析的逻辑过程中多次调用了strstr()和strtok_r()函数,此处可使用cookie混淆的手法,构造另一个符合认证格式的cookie来绕过此处的认证检查,同时通过构造正确的pathparam、fileparam、file.path、destination等参数,通过函数的逻辑检查,最终使函数的执行逻辑来到popen参数,用户注入参数将被引入执行,达到RCE的目的:
使用构造好的参数封装POST请求,发送至路由器可实现命令注入:
至此完成了CVE-2022-20707漏洞的复现,获取的权限为www-data,接下来是如何提权至root了。
由于当前已经实现了命令注入,因此可以考虑创建用户登录到web,然后开启ssh服务获取一个系统shell,经过查证发现RV340直接禁用了SSH服务:
尝试nc反弹也失败了,猜测系统对nc命令进行了阉割,进而只能先生成ARM的payload上传至系统执行,反弹msf的shell了。有了www-data权限的shell之后,首先尝试调用系统级的服务如confd达到提权目的,刚好可以在用户模式执行confd_cli调用confd达到最终的提权:
03总结
通过分析与实践复现了Cisco的三个漏洞:CVE-2022-20701、CVE-2022-20705、CVE-2022-20707,漏洞发现使用了认证绕过、Cookie混淆和系统服务调用提权,整个思路非常经典精妙,值得学习探讨。
参考资料:
[1]https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-smb-mult-vuln-KA9PK6D
[2]https://www.zerodayinitiative.com/advisories/ZDI-22-412/
[3]https://www.zerodayinitiative.com/blog/2021/8/11/pwn2own-austin-2021-phones-printers-nas-and-more
博智安全提供专业的网络安全服务,包括漏洞挖掘、风险评估、渗透测试、安全培训、安全竞赛、应急响应、安全加固及代码审计等。
01.经验丰富的安全服务团队团队
成员均来自业内知名网络安全公司,有多年网络安全服务经验,多人拥有CISP、CISSP、CISO、CISP-PTE等证书。
02.最前沿的非攻研究院技术
支撑拥有博智安全最前沿的非攻研究院提供前沿技术支撑,包括最新最全的漏洞、先进智能的安全服务工具。
03.丰富的自研安全产品
保障拥有丰富的自研安全产品保障,网络安全、工控安全、保密安全相关检测与防护类产品,为安全服务提供最全面的产品工具支持。
04.贴合政府政策和国际标准的服务流程
取得行业内较权威的资质认证,包括工业控制系统应急响应服务支撑单位证书等,服务符合国际化的标准服务流程。
、
“博智非攻研究院”为博智安全旗下技术创新、安全研究的重要部门,部门拥有一支能力突出、技术过硬、业务精通、勇于创新的技术队伍,当前主要专注于应用安全、攻防渗透、工业互联网安全、物联网安全、电信安全和人工智能安全等方向。自成立以来,博智非攻研究院获得多家客户的认可,收到来自西门子、施耐德、ICS-CERT、组态王等客户的官方感谢信。博智非攻研究院在凭借强大的漏洞挖掘和响应处置能力入选第九届CNCERT网络安全应急服务支撑单位、CITIVD信创政务产品安全漏洞专业库技术支撑单位、国家信息安全漏洞库技术支撑二级单位、工业信息安全应急服务支撑单位、国家工业信息安全漏洞库优秀成员单位、南京市网络安全应急技术支撑单位。未来,团队将继续以专业的服务,帮助工业企业构建安全可靠的工业网络环境,为我国关键信息基础设施保驾护航!