# 探秘短信马产业链-从逆向到爆菊

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2013-12-16T08:52:00Z
Canonical: https://wepostx.com/topics/264

> 乌云历史资料归档
>
> **原始作者：** 国士无双
> **原始编号：** superkieran-wooyundrops:121
> **原始发布时间：** 2013-12-16 16:52
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

## 0x00 楔子

近日，小明有了一桩烦心事，扰的他寝食难安。原来是女神的某安卓手机出了怪病，短信收不到，发出去别人也收不到，更可气的是女神用来准备网购的钱都被神秘刷走。当女神满心焦躁翻遍通讯录时，蓦然发现了小明的备注：千斤顶17号-电脑、刷机。于是在女神可怜巴巴大眼睛的注视下，小明把胸脯拍的山响，承诺一天搞定。
于是，小明拿到了梦寐以求的女神手机。可没想到，后面发生的事让他始料未及。

## 0x01 锁定元凶

拿到手机的第一件事，就是找到收不到短信的原因。翻了翻系统短信设置和APP，装的东西都很正常，没有发现可疑的空白图标，用软件管理工具查看，也没有发现可疑的迹象。于是小明从系统程序开始排查，果不然，在打开“谷歌商店”时，发现了狐狸尾巴。
如下图所示，第一，在未联网时点击这种APP会提示“手机无法联网”。

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

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

第二，在联网时点击这种APP会提示一大堆权限要求和出现“网络正常”提示

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

看到这，小明笑了，这不就是最正火的短信拦截马嘛。于是果断把手机通过豌豆荚导出目标APK文件包。如图所示

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

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

看着桌面上不到100KB的短信马，小明默默的系上了围裙（安卓虚拟环境），找出了手术刀（反编译工具dex2jar+Xjad），把马儿按到在解剖台（Eclipse）上。

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

## 0x02 庖丁解牛

首先，小明把APK文件解压，然后找到关键的classes.dex文件。他是APK文件的java源码编译文件。

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

然后把classes.dex 拷贝到dex2jar目录下,然后cmd进入dex2jar目录后再输入：dex2jar.bat classes.dex 回车,同目录下就得到我们想要的源码包：classes_dex2jar.jar

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

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

再请出我们的jar反编译Xjad，点击文件-反编译jar-选择上把生成的jar文件，就会反编译成源码文件夹。

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

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

到这一步，我们的牛算是初步分解成功了，下面就是如何找出我们要的菲力牛排~

## 0x03 轻抚菊花

反编译后分析出木马和后台交互是通过调用c#的WebService协议，而且菊花的IP是加密的，调用代码图如下:

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

直接把加密代码，按图索骥找到加密函数后，反编译过来发现如下：

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

运行后，直接爆到服务器端的地址http://103.X.X.X/priv1/baseservice.asmx
至此，找准了菊花的所在。下面开始研究爆菊啦

## 0x04 长驱注入（ 爆菊部分由sql test大牛完成）

既然找到后台地址了,下面怎么来拿下这后台，这是头疼的问题，用工具扫描了下没发现什么漏洞，本人能力有限。看样子只能从站点下手了，重新整理下思路，把http://103.X.X.X/priv1/baseservice.asmx输入到浏览器发现

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

有这么几个方法，既然有方法可以我直接用下，打开程序引用了WebService 代码如下：

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

本来想试试XSS ,用AddCall方法插入到数据库，代码如下

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

调用了下发现报错

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

无语了，既然有SQL 注入，下面我们来说下这WebService SQL 注入。
挑选了一个获取方法getOrders ,调用的时候把参数加了一个单引号提示MYSQL错误，这注入点也太多了吧
以下就改造了查询语句

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

返回了XML：

```text
<?xml version="1.0" encoding="UTF-8"?><RootJob><Job><Type>9</Type><Content>3</Content><Phone>2</Phone><JobID>1</JobID></Job></RootJob>
```
这个一看就知道了，下面的步骤就不详细写，是root注入。
写入一句话，目标是IIS，我也没找到目录程序目录，直接试了C:Inetpubwwwroot 写了一个Aspx马上去了，在浏览器上访问成功了。

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

基本上完成了，剩下的就是提权了，在一个朋友的帮助下提权成功。

## 0x05 扩大战果

这时已经通过mysql拿到了服务器的权限，查看注册表发现端口是55555，服务器版本为2003R2，加了个用户就进去看看。

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

东西不复杂，IIS+mysql+C#的WebService

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

把mysql做了个远程，本地连上看看。一看之下，这个团伙通过短信马监控到被害者的内容令小明大吃一惊。

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

在SO这个库里，小明发现N多受害人的信息，包括大额的银行转账提示。如果这种短信被拦截的话，那后果可想而知。

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

## 0x06 挖掘产业链

但凡一个行业必须是有利可图的，小明既然发掘到了源头，就逆流而上，去深挖一下，安卓短信拦截马的整个产业链条。
说干就干，小明在电脑上输入短信拦截马、短信马 出售等相关关键词，发现有很多人在发布相关的需求。

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

而是各种地下论坛里，很多相关求马的帖子。
他们买来主要就是为了诈骗。
或冒充熟人诈骗，或为了诱骗网银，或为了某些不可告人的秘密勾当。
随机找了个例子。

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

小明通过对代码的分析，发现短信马的运行方式是这样的。
一旦安装了木马的手机，并授权给木马后，木马会立刻上传受害手机的通讯录。该手机的所有短信来往都会发给指定的手机号，而且该手机号可以使用代码，来指挥木马进行伪造短信。从而实施诈骗的目的

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

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

## Replies
