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

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2014-09-18T06:51:00Z
Canonical: https://wepostx.com/topics/573

> 乌云历史资料归档
>
> **原始作者：** 瘦蛟舞
> **原始编号：** superkieran-wooyundrops:346
> **原始发布时间：** 2014-09-18 14:51
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

## 0x00 起因

[WooYun: 仿冒电信运营商掌上营业厅的大规模钓鱼事件(大量用户银行卡中招CVV2与密码泄露)](http://www.wooyun.org/bugs/wooyun-2014-076180)
然后有大牛在某电信网厅钓鱼站找到一款android app让我看看，就有了接下来的分析。

## 0x01 观察

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

![原文图片](/media/2016/06/ba87b34e744d9dd09c1f65dfd8f331fe)

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

![原文图片](/media/2016/06/6748048905210ec6ff66caaeb6a27e87)

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

![原文图片](/media/2016/06/1e4f6122b995a202695874d0d40b8a46)

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

![原文图片](/media/2016/06/84c172ae1f8e10e00695f7d04e8247eb)

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

![原文图片](/media/2016/06/77ed3ca0aa8802b0a7e108aca406ace7)

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

## 0x02 分析

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

```text
添加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防护。

![原文图片](/media/2016/06/eaf5b6f5b9ba785aad5de56a0d3c298c)

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

```text
<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。
再看主界面代码，当主界面被第一次调用后就禁用此组件相应桌面图片也会消失。

![原文图片](/media/2016/06/a9ef2f1ed22389d9be8c0849508dc4f0)

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

![原文图片](/media/2016/06/a39bbe8240ea468f6a5f155d1d9fa463)

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

![原文图片](/media/2016/06/48e66a11388a6be16a3eb944e79bf3d9)

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

![原文图片](/media/2016/06/931f63e0f01e67be84f5abeb9f98cdbf)

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

![原文图片](/media/2016/06/8f5e4f8172215f89bccbc9c45e837c73)

整个app大致功能如下

![原文图片](/media/2016/06/d77a5b8d89d58eb77bb62961c5c2be4f)

## 0x03 总结

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

## 0x04 查杀

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

![原文图片](/media/2016/06/521e9ff2b0565745d1aaca5af4b2a022)

腾讯手机管家未检测到

![原文图片](/media/2016/06/13207a6abbc453cd55adc7661f54c12d)

## Replies
