安全研究人员OJ Reeves发现无论是在家庭网络还是在公司网络中,希捷网络附加存储(NAS)设备都会受0day远程代码执行漏洞的影响。目前已经有超过2500台设备暴露在了危险之中。
漏洞详情
希捷的网络附加存储(NAS)设备是一种网络管理应用程序,管理员通常会用它添加用户、设置访问权限、管理文件等。本次的远程代码执行漏洞出现在2014.00319版本的固件上,攻击者可以在没有认证的情况下远程执行命令,获取设备root权限。
希捷NAS存在一个web形式的管理界面,当管理员登录后可以通过它进行一些操作,比如添加用户,设置访问控制,管理文件等等。
该web应用程序使用了3个核心技术组件: 5.2.13版的PHP、2.1.0版的CodeIgniter、1.4.28版的Lighttpd,遗憾的是这些版本早已过时。
常用的web应用程序一般会基于浏览器中的cookies验证登录的用户,主要从下面三个参数中验证:
username:输入用户名
is_admin:用户是否是管理员(yes或者no)
language:选择一种语言
如果攻击者想要利用这一漏洞,首先他需要和受害者设备使用同一网络,这样攻击者无需登录就可获得受害者设备的root访问权限。一旦用户名cookies建立成功,攻击者即可轻而易举的利用它。is_admin参数的变量可被设置为“Yes”,这样攻击者即可在web应用程序上权限提升。此外攻击者还可以通过Language参数利用本地文件中存在的漏洞。
受影响的产品版本
2014.00319版本的企业存储2-Bay NAS
2013.60311版本的企业存储2-Bay NAS
2014.00319之前的所有版本可能都受该漏洞的影响。
Metasploit已更新漏洞利用组件
研究者已经把Metasploit组件和python脚本放到了Github上,其中的每一个脚本都可执行以下命令:
1、连接存在漏洞的NAS设备并提取ci-session cookies
2、用静态加密密钥解密上述cookie并提取PHP hash值
3、修改序列化的PHP hash值,然后把用户名设置成管理员,is_admin字段设置成“yes”
4、解密更新后的PHP hash值,以作为ci-session cookies进一步使用
5、执行请求以提取主机配置信息,例如设备的描述等
6、修改主机配置信息,使其包含一个小而精的有效负荷
7、用新数据更新主机配置数据
8、再次修改PHP hash值,使得语言参数中包含../../../../etc/devicedesc\x00字段
9、解密新的PHP hash值,以作为ci-session cookies进一步使用
10、用前面生成的cookies向NAS发送一个请求,激活硬盘上写入的有效负荷
11、执行一个请求,使主机配置返回到之前的版本
安全建议
希捷公司目前并没有对固件进行更新,也就是说当前其设备还是受0day漏洞的影响。建议用户不要使用公共网络访问设备,而且最好再对设备设置防火墙策略,以确保只有受信任的IP地址才可接入。