首先给各位无良媒体记者跪了。七夕那天刚从公司拿到样本的时候还以为是主管随便到网上扒了个木马demo给我练手,第二天看新闻才知道这小玩具已经搞得满城风雨,媒体竟然称它为“超级手机病毒”(-_-#)不得不感叹混安全圈想装逼简直太容易了。在此强烈谴责这种夸张报道,不仅向公众传递错误信息,也会影响孩子的价值观。短短今天说这个apk没有任何研究价值,虽然技术是非常拙劣,但是其利用短信不会审核恶意链接的性质传播的方式倒是令人眼前一亮。
下面就来瞧瞧这个“XX神器”的真面目
从恶意链接上下载到“XXshenqi.apk”,考虑到是恶意应用,先不急着安装,反编译一下看看这到底是个什么玩意。
直接拖进APKIDE,查看AndroidManifest.xml:
乍一看,似乎除了声明了发送短信和读取联系人的权限比较可疑,没其他什么特点。组件部分也只有Activity,没有Service,没有BroadcastReceiver,并不具备木马特征。观察到主Activity是WelcomeActivity,那就先进这个Activity看看在搞什么名堂。
这个木马并没有做代码混淆,直接反编译WelcomeActivity就能看到Java源代码,首先看到的东西很令人惊讶:
不需要仔细看就知道是在群发短信,但是真正让人惊讶的是这段代码里居然藏了一个手机号(っ °Д °;)っ把自己的ID藏在病毒里的事情中已经见怪不怪了,这种赤裸裸暴露自己手机号的还是第一次见(;¬_¬)别急,下面还有更卧槽的。
这一句话就是木马传播的核心,获取通讯录并向联系人发送包含该木马下载链接的短信。通常在QQ或者邮件里发送恶意链接的话都会被检查,而现在的短信却不具备检查内容的安全机制,这是该木马最大的亮点。
WelcomeActivity开启群发短信的进程后,继续启动MainActivity,在MainActivity里找到三个if语句:
不难看出,这就是登陆按钮的事件处理,三个if语句以各种理由拒绝用户登陆,这样做的原因就只有一个,这个所谓的登录窗口是假的,这个“XX神器”根本没有任何功能,当然没办法让人登陆了。
那MainActivty的主要目的是干什么呢?找到retrieveApkFromAssets方法:
可以看到,该方法从assets文件夹里释放了一个文件。那就赶紧到assets文件夹下找到这个文件吧ヽ(`Д´)ノ
居然声称自己的包名前缀是com.android (;¬_¬)
反编译这个apk,打开AndroidManifest.xml,看看到底在搞什么名堂:
看到这些基本上什么都懂了,“XXshenqi.apk”其实是个外壳,其真正目的是释放隐藏在assets文件夹下的com.android.Trogoogle.apk,这才是木马本体。
查看smali目录,发现有如下几个包:
简略看了看源码,其他几个包跟com包杂乱无章的代码风格不一样,应该是作者找的开源包,只有com包才是木马功能真正的实现部分,所以只需要把精力放在这个包上就可以了。
查看com包的源码,首先注意到的是BroadcastAutoBoot,这是个接收开机事件的BroadcastReceiver:
可以看到收到开机事件后,启动了ListenMessageService,这是木马常用的开机自启方式。
跟进ListenMessageService看看,注意到以下两个方法:
private String ReadAllMessage(Context paramContext):
private void ReadCONTACTS(Context paramContext, String paramString)
在ReadAllMessage中找到下面这一行:
在ReadCONTACTS中找到下面一行:
不难判断出ReadAllMessage的目的是读取所有短信,ReadCONTACTS则是读取通话记录。
继续往下看,跟踪onStart(),看看服务启动后做了哪些事情,注意下面这一行是关键:
ListenMessageService.this.getContentResolver().registerContentObserver(Uri.parse("content://sms"), true, new ListenMessageService.SmsObserver(ListenMessageService.this, new ListenMessageService.SmsHandler(ListenMessageService.this, ListenMessageService.this)));
ListenMessageService启动后注册了一个ContentObserver监视短信数据库,处理Handler为ListenMessageService.SmsHandler,继续跟进实现处理Uri改变的onChange()方法,发现下面关键行:
木马通过监视短信收件箱,当手机收到短信时将其截获,并且发送到181****7397这个号码。
继续看:
木马特别留意了186****9904这个号码的短信,将其视为命令消息,继续往下找到处理逻辑:
该短信共有5个操作命令:
readmessage:发送邮件命令,启动MySendEmailService,将收件箱和发件箱的短信以邮件形式发送
sendmessage:发送短信命令,能控制该手机发送任意短信到任意号码
test:测试命令,将“【数据库截获】TEST数据截获(广播失效)”以短信发送至186****9904
makemessage:伪造任意地址、任意内容的短信
sendlink:读取联系人信息,以邮件方式发送
在此明晰了该木马的大体架构,该木马利用指定号码发送短信,控制肉鸡将隐私信息以邮件形式发送到自己的邮箱。
一个有趣的细节是,木马作者将自己的QQ邮箱和密码全部暴露在了代码里(;¬_¬),拿到密码后,兴冲冲地去登陆这个邮箱,却发现密码已经被改了,估计是被前辈们抢先了吧。
有关这个木马的关键点就讲到这儿,有兴趣的朋友可以自己找样本分析,代码没做混淆,肉眼就能看懂。虽然木马使用的技术很小儿科,但是能其利用短信广泛传播的特点令人深思,余弦前辈说:很多时候,工程化能力远比单点技术研究重要多了。
[原文地址/PKAV-ARAYZ]
- 上一篇:监控网络流量?支付宝安全控件“附赠”的可疑进程
- 下一篇:[BlackHat]2014黑客奥斯卡奖Pwnie Awards提名名单公布
-
PP咸猪手回复难道你整个七夕都在读代码?)148(亮了
-
moquns(3级)回复谁都会写的代码,他不仅写了而且还放了出来,他不仅放出来了还被急于想装逼的各大厂商给坑了一把。
各大装逼的厂商不仅成功在公众面前装了一手好逼,还把中国整体智商拉低了几个档。
还他x的超级病毒,老子极度佩服3、q等的不要脸)26(亮了 -
anlfi(5级)回复就因为有了个尾巴来传播 结果被炒火了 本来没什么大不了的
但据说警察叔叔相信 这是窃取 破坏 传播 病毒的行为 不可饶恕
所以这个不满20岁 刚上大一的小朋友 就要抓去捡肥皂了
不明真相的点燃了导火索 no zuo no die)12(亮了
0daybank
已有 60 条评论
难道你整个七夕都在读代码?
@PP咸猪手 ….七夕是啥节日?我总是和我左右手过七夕
想要分析,首先要有台电脑,再有网络,再有……
@王珂 MJJ?
木马制造:卧槽,难道被发现了吗?不然电话号码算那般
我的手机是 摩托罗拉V3 求中此病毒。!
余弦前辈说:很多时候,工程化能力远比单点技术研究重要多了。
呵呵 我只能说作者太倒霉了 被媒体坑了
诺基亚1150 求中病毒。。。。。
别闹,那小孩都被拘留了。。
有点快呀
那小孩最后怎么了??.。
求解。。
一个逗比小屁孩而已
WM年代就有短信内容包含超链接跳转时的安全提示,并显示完整链接。
就因为有了个尾巴来传播 结果被炒火了 本来没什么大不了的
但据说警察叔叔相信 这是窃取 破坏 传播 病毒的行为 不可饶恕
所以这个不满20岁 刚上大一的小朋友 就要抓去捡肥皂了
不明真相的点燃了导火索 no zuo no die
谁都会写的代码,他不仅写了而且还放了出来,他不仅放出来了还被急于想装逼的各大厂商给坑了一把。
各大装逼的厂商不仅成功在公众面前装了一手好逼,还把中国整体智商拉低了几个档。
还他x的超级病毒,老子极度佩服3、q等的不要脸
媒体无良啊、、、唉、、、
只能说媒体亲爱的,作者当时貌似是开个玩笑的,套妹子号码,结果高学籍高智商的媒体人才为了博人眼球。。。。类似的事件一大堆
又一个被媒体强奸的病毒作者~本来好好的在家玩耍,然后就被坑了~想起了悲催的熊猫烧香·
玩安全的想装B是在太容易了。。
http://www.cnblogs.com/bRAyKpoyNt/p/3891265.html
楼主你是墨阳吗
@Rasiel 低调打脸
那也真是够倒霉的!
卧槽
尼玛要学安卓
java是基础
哦,不懂哈哈哈
卧槽。。这不是我学弟的文章么?怎么被转到这了。。
还没分 还在C语言进阶
做人不行 只能和代码玩
做人不行 只能和代码玩
做人不行 只能和代码玩
做人不行 只能和代码玩
做人不行 只能和代码玩
做人不行 只能和代码玩
做人不行 只能和代码玩
做人不行 只能和代码玩
做人不行 只能和代码玩
做人不行 只能和代码玩
做人不行 只能和代码玩
做人不行 只能和代码玩
做人不行 只能和代码玩
做人不行 只能和代码玩
做人不行 只能和代码玩
坑得都爬不上去了
坑得都爬不上去了
坑得都爬不上去了
坑得都爬不上去了
坑得都爬不上去了
坑得都爬不上去了
坑得都爬不上去了
坑得都爬不上去了
坑得都爬不上去了