# 《对一款木马APP“聚会照片”的逆向分析》
首先,这款木马是通过短链接,如下图左图的形式大量传播的,打开短链接之后会直接跳出是否下载聚会
照片APK如下图右图:


点击普通下载之后,就会和普通的APP安装一样提示一步步的将其安装到用户手机上。如上图所示,我们看
到这款恶意APP能够提取到读取手机状态、读取并编辑讯息、发送短信、读取通讯录、读取、修改以及删除
SD卡的内容、完整的网络访问权限、更改系统设置等多种权限。而且在按照提示一步步安装成功后,就会
发现手机屏幕上并不能找到这个app,也就是说它自动隐藏了。与此同时,这款恶意APP也开始了它的工作。


如上图所示,当APP安装完毕后,这款恶意软件首先直接就可以获取下载者的手机品牌,型号,以及系统版本
等信息。并将窃取到的信息发送到13053xxxxx这部事先设定好的手机上。接着木马的服务器端设置一个自动的脚本,使下载者自动的注册了“微医”。并且能窃取到下载者所有的本地短信记录。然后如第三张图所示,得到了验证码等信息之后,木马作者便直接登录下载者的移动和包以及京东等,修改密码,盗刷京东、和包账户。通过本地短信的获取以及网络权限和安全权限的提取,他得到下载者的银行卡账号、身份证号和动态口令后(如第四张图),就盗刷下载者的银行卡。
接下来对其进行分析:我们在拿到APK后先将apk文件解压缩后,用dex2jar将解压缩得到的classes.dex文件转换为jar文件,接下来用jdgui来看到源码:

发现APK并没有被加密,很容易就拿到了源码。里面也只有一些类有稍微的混淆,但并不能影响阅读,这就省去了我们很多麻烦。大致看一下源码,发现源码中的javax、datatransfer以及最后的org的apache都是引用原有的java类库,可以不做分析。然后很容易找到了木马的MainActivity,如图:

因为这个木马的代码写的比较繁琐,所以我们只对其中的有用的一些进行分析:首选它开启了一个线程,跟过去看后发现是用来安装软件的:

继续分析发现它又开启了BootService服务,木马服务器端有一个自动的脚本,为下载者自动注册“微医”。

跟进去之后发现,在里面还开启了SmSserver服务,我们看到


很容易就可以看出来这款木马可以获取下载者的本地权限,得到手机短信记录以及本地的电话薄内容还有手机型号等基本信息。并能在获取手机接收短信时的系统广播。拿到即时的验证码等。之后就盗取下载者的京东和包等。(代码太长,仅粘贴部分代码。)

那就想到了,木马的作者既然获取了这些权限,终归是要得到信息。我们在下载APP的时候,就知道他的目标是把得到的受害者的短信发给13053XXXX这个手机号,于是乎,搜索这个手机号。

最终在这里找到了这个手机号,那想必这里就是返回信息的地方了。可是得到一个手机号码并不能得到什么有效的信息。因为这手机号很可能是特意买的。继续分析发现木马作者应该是为了方便,将所有得到的本地电话薄以及短信以邮件的形式发给了
[email protected]

既然是用的邮件(SMTP),那么要想做到自动的发送到指定的邮箱,肯定要有密码,我们很快就在后面找到了他的密码。设置的很简单:

于是,登上这个新浪邮箱试一试。果然就是这个:

发现木马作者就是将窃取到的信息发到了这个邮箱,还发现他还关联了另一个邮箱也可以登录,登上去发现也是用来接收窃取到的信息邮件的。并且在我登录上时,还不断有各种邮件发送过来。说明现在还一直有人上当。我们随意点开几份看到许多信息:有电话薄的全部联系人信息。

当然还有手机主人的银行短信验证码的私密信息、身份证号、银行卡号等等敏感信息


登到了邮箱拿到了信息,那么其他的也不太重要了,但还是继续分析一下,看看还有其他的什么功能。这个木马还会提取到手机的安全权限,从而激活它的安全状态。使用户无法轻易删除而同时木马作者还做了一个迷惑的提示:令下载者误以为这款APP已经删除掉了。

为了避免检测,木马作者将一些敏感词汇用其他词来代替,如报告开始截图中的“注册”就被“住厕”取代。源码如下:

代码分析有用的部分基本上就是这样。还有一个很重要的信息可以利用,就是木马作者用来传播木马的这个短链接。根据短链接解密分析,定位到相关的一些信息,服务器地址,手机号,QQ等。

原来是河南郑州的服务器,但是以木马作者的谨慎想必这个也是租用的服务器吧。基本可以找到的信息就是这些了。剩下的追踪应该就要靠警察叔叔了。