关于飞牛系统(fnOS)无需认证远程代码执行漏洞链的复现
经过分析与验证,我们已成功复现飞牛系统(fnOS)中的一个严重远程代码执行(RCE)漏洞链。该漏洞链允许攻击者在无需任何身份验证的情况下,远程获取设备的最高管理员(root)权限,从而完全控制设备。
测试环境: FnOS 1.1.14
我们成功复现的攻击链由以下四个关键漏洞构成:
经过分析与验证,我们已成功复现飞牛系统(fnOS)中的一个严重远程代码执行(RCE)漏洞链。该漏洞链允许攻击者在无需任何身份验证的情况下,远程获取设备的最高管理员(root)权限,从而完全控制设备。
测试环境: FnOS 1.1.14
我们成功复现的攻击链由以下四个关键漏洞构成:
1. 漏洞一:路径穿越(任意文件读取)
描述:系统的一个Web接口(/app-center-static/serviceicon/myapp/...)未能正确过滤用户输入的路径,允许攻击者读取服务器文件系统上的任意文件。
在此攻击链中的作用:用于下载一个伪装成RSA私钥、但实际内嵌了硬编码AES密钥的文件 (/usr/trim/etc/rsa_private_key.pem)。这是整个攻击的起点。
2. 漏洞二:硬编码的加密密钥
描述:上述下载的文件中,在固定偏移量(100字节处)硬编码了一个32字节的AES主密钥(Root Key)。
在此攻击链中的作用:为攻击者提供了“万能钥匙”。这是后续伪造合法用户凭证的核心要素。
3. 漏洞三:认证绕过(通过伪造Token)
描述:系统的WebSocket网关在验证用户身份时存在致命逻辑缺陷。它允许攻击者使用上述获取的AES主密钥,在本地凭空“创造”出一个服务器会认为是合法的临时token。
在此攻击链中的作用:攻击者利用此漏洞,无需任何用户名和密码,即可伪造出一个“已登录”的管理员身份,从而有权调用需要高权限的API接口。
4. 漏洞四:命令注入
描述:在通过认证后,一个用于添加Docker镜像的API接口(appcgi.dockermgr.systemMirrorAdd)未能正确处理其url参数。
在此攻击链中的作用:这是最终的执行环节。攻击者将恶意系统命令(如反弹Shell或下载执行脚本)注入到url参数中,服务器在处理该请求时会无条件执行这些命令