En

手机“流氓软件”清理一例

作者:lake2[TSRC]公布时间:2013-03-28阅读次数:13620评论:7

分享

自打手机让firewings给我人肉root之后就觉得很happy,各种测试。某日无聊,决定装个tcpdump抓包。


用google提供那个ADB工具包连上手机,把Android下的tcpdump传到SD卡,然后就可以执行抓包了(当然可能遇到不能执行的情况,自己百度解决吧):

 

 

抓包之后把pcap文件拉回来查看内容,不由得大骇,看图:



手机会定时向某域名发送一个请求,特别是带有一个加密的tk字符串,颇为可疑,而且目标域名也非常可疑(xxsvr.com。WHOIS一下域名,是个没听过的移动软件公司),加之其域名根目录、根域名什么也没有。我倒吸一口冷气,心里想到一个“物种”:灰鸽子!



基本确定是手机的问题,那就要排查间谍位置了,先看看是Rootkit还是应用级木马。把应用程序逐个结束,依次抓包,发现结束掉某APP后就不再有“心跳包”了。看来是应用级(那就是小事啦,出了点小意外情况还在我控制中),而且是捆绑在某APP里面的。


把该APP的安装文件扔到Android沙盒里面跑一下(地址 http://sanddroid.xjtu.edu.cn ),可以看到它确实访问了xxsvr.com域名以及一些莫名其妙的域名。



同时APP也有一些读写收发短信(READ_SMS、RECEIVE_SMS、WRITE_SMS、SEND_SMS)、读写联系人(READ_CONTACTS、WRITE_CONTACTS)、读写浏览器历史/书签(READ_HISTORY_BOOKMARKS、WRITE_HISTORY_BOOKMARKS)、获得位置(ACCESS_FINE_LOCATION)等跟其应用功能无关的权限,非常可疑。


好吧,既然事情到了这个地步,只好看看它的代码了。


Android上的应用程序是JAVA写的,反编译也很容易。Apk文件其实就是个ZIP压缩包,先改下后缀,用WinRAR之类的工具解压,其中关键文件是AndroidManifest.xml和classes.dex。


AndroidManifest.xml是Android应用声明权限、组件的文件,这个是二进制的,需要用一个叫AXMLPrinter2的工具反编译出来。我简单写了个脚本,只把权限提出来:



Classes.dex就是JAVA代码编译后的二进制,直接用dex2jar转换为jar格式,再用JAVA反编译器如JD-GUI查看即可。


仔细查找出现那可疑域名的代码,发现那段可疑的字符串是加密后的手机MAC、IMSI等信息,看源代码:

 

其他代码还有一大堆,看得头疼,就不继续分析了。这个APP既然这么可疑,那就不管是不是流氓软件了,直接卸载。


最后我还要啰嗦几句,现在移动APP比较火,业界非常担心隐私泄漏问题。但是有些APP开发者还没有这个意识,在APP中申请一些没有必要的权限,读取和传输一些容易引起争议的数据。这就给用户带来了恐惧。当然了,用户害怕隐私泄漏,信不过你,“疑人不用”,最终结果就是卸载你的APP咯。


所以,有手机APP产品的企业尤其是大型互联网企业应该重视这个问题,要建立自己的移动APP安全规范、标准、流程和系统,在APP发布前解决这类问题,避免因为隐私问题给用户、给自己带来困扰。

评论留言

提交评论 您输入的漏洞名称有误,请重新输入