一只android短信控制马的简单分析

瘦蛟舞 2014-09-18 14:51:00

0x00 起因


WooYun: 仿冒电信运营商掌上营业厅的大规模钓鱼事件(大量用户银行卡中招CVV2与密码泄露)

然后有大牛在某电信网厅钓鱼站找到一款android app让我看看,就有了接下来的分析。

0x01 观察


拿到应用后先装到测试机上观察下,启动程序后立即监控到其向15501730287号码发送短信,内容为_软件已安装,但未被jh。当前手机型号nexus5。_

之后跳转到_要激活设备管理器吗?_的界面,如果不小心点了激活那卸载就将需要点手法了。

不root的话需要到设备管理器里取消勾选才能正常卸载,如果root也可以直接删文件。

当受害者点击激活后还会发送短信通知黑客

当然你点取消同样也发送短信黑客

当完成这一系列动作后发现木马程序图片消失,并且无法通过系统自带应用管理直接卸载。

0x02 分析


之后是解包反编译看源码咯,当然没有想象的顺利。因为这些个木马要对抗杀软肯定经过加壳处理的。在apk包中看到了libAPKProtect.so这个东西,那接下来就要针对性的脱壳啦。选择使用zjdroid(需xposed框架)脱壳。大致流程如下:

添加locat:zjdroid-shell-com.oliuyht.iujyhtgr.m
得到PID:the app target id = 5585

am broadcast -a com.zjdroid.invoke --ei target 5585 --es cmd '{"action":"dump_dexinfo"}'

filepath:/data/app/com.oliuyht.iujyhtgr.m-1.apk mCookie:1899531496

am broadcast -a com.zjdroid.invoke --ei target 5585 --es cmd '{"action":"dump_class","dexpath":"/data/app/com.oliuyht.iujyhtgr.m-1.apk"}'


am broadcast -a com.zjdroid.invoke --ei target 5585 --es cmd '{"action":"backsmali","dexpath":"/data/app/com.oliuyht.iujyhtgr.m-1.apk"}'

the dexfile data save to =/data/data/com.oliuyht.iujyhtgr.m/files/dexfile.dex

之后在用JEB或dex2jar反编译,然后就可以静态分析app了。文件较少功能肯定不会太复杂,之前有提到过程序采用了apkprotect防护。

查看配置申请权限如下(到这里目测是个短信劫持马)

<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>

配置文件还注册了两个activity和两个broadcast。

再看主界面代码,当主界面被第一次调用后就禁用此组件相应桌面图片也会消失。

然后执行发送短信_软件已安装,但未被jh。n当前手机型号Build.MODEL_,通知黑客。

启动“激活设备管理”界面等待用户点击(一定程度防卸载)。

程序总共发了7条短信6条是发给15501730287其中四条是_安装成功,激活成功,发送成功_这类消息用来判断受害者状态,剩余两条是用来窃验证码之类的机密短信。只有一条短信是根据黑客发送的短信提取出号码以及内容再发送。就是说黑客可以用短信控制你发送指定短信到指定号码。

_kigdgc_类中硬编码了黑客接收短信的号码

整个app大致功能如下

0x03 总结


大致就分析到这里,是一款可以窃取用户电信以及通过短信远程控制手机发送任意短信的短信劫持木马。黑客做了一系列的伪造和防御比如:伪装系统应用、隐藏图标、加壳、_this.abortBroadcast();_隐藏指令短信。预计黑客可以通过短信控制受害者发送一些吸费软短信,或者发送欺诈短信(比如大宝剑被抓给xxxxxxxx打2W块才能放人)当然短信是从本人手机发出就更具欺骗性了。还可以借此绕过一些验证如预留手机确认等(结合上文提到的钓鱼漏洞这个可能是主要目的)。

0x04 查杀


LBE正常查杀(安装时就拦截到了)

腾讯手机管家未检测到

评论

军哥哥 2014-09-18 18:19:06

好牛逼的软文。

路人甲 2014-09-18 21:30:16

这个木马程序还有没?能否发我一份研究下

动后河 2014-09-18 23:23:47

明白了,马上安装360手机卫士!

瘦蛟舞 2014-09-19 08:56:54

http://pan.baidu.com/s/1bnjHSIV 密码: 08iv

瘦蛟舞 2014-09-19 08:59:26

为什么不装lbe了

路人甲 2014-09-19 09:48:53

thank!

瘦蛟舞 2014-09-19 13:38:46

把360查杀的那张图删了,哈哈

疯子 2014-09-19 14:04:30

这APP不光是欺骗短信,而是结合其他的进行大规模诈骗,感谢技术的分析!
http://www.madmaner.com/post/39964f_25fc1d6

瘦蛟舞 2014-09-19 17:56:15

目测你的样本和我的有点不一样~可以共享出来看看。

路人甲 2014-09-20 20:56:27

360 直接扫描就秒杀了

路人甲 2014-09-25 10:28:40

能不能再发一下下载地址啊

咖啡 2014-10-17 09:11:39

好牛逼的软文。

路人甲 2014-11-10 22:39:00

可以再发一遍网址么,非常感谢,原来的失效了~

可乐 2016-01-05 09:41:18

@动后河 错!是卸载腾讯手机管家,再。。。。。。。

瘦蛟舞

小米安全武汉招人ing

随机分类

运维安全 文章:62 篇
安全管理 文章:7 篇
Python安全 文章:13 篇
Android 文章:89 篇
企业安全 文章:40 篇

扫码关注公众号

WeChat Offical Account QRCode

最新评论

K

k0uaz

foniw师傅提到的setfge当在类的字段名成是age时不会自动调用。因为获取

Yukong

🐮皮

H

HHHeey

好的,谢谢师傅的解答

Article_kelp

a类中的变量secret_class_var = "secret"是在merge

H

HHHeey

secret_var = 1 def test(): pass

目录