新型Android银行木马“MoqHao”利用社交网络隐藏C&C服务器

2017-09-27 16:06:48 启明星辰 ADLab

更多资讯和分析文章请关注启明星辰ADLab微信公众号及官方网站(adlab.venustech.com.cn)


概 述

启明星辰AdLab近期追踪到一个新出现的Android恶意木马样本,该恶意木马主要通过钓鱼APP来窃取用户银行及理财APP登录凭证,能够通过创建本地代理来窃取Google账户登录凭证,且具备远程控制感染机的能力。依据样本关联分析我们发现,该同类型的样本之前被Mcafee披露过(其在8月28日将该银行木马命名为:Android/MoqHao),并且还发现恶意代码背后的黑客早在2013年就开始针对韩国的手机用户进行钓鱼攻击。直到2015年,该黑客组织开始利用伪造的Chrome更新消息来进行传播,并且开始利用QQ空间等社交网络账户来配置C&C服务器地址。本次启明星辰ADLab追踪到的恶意代码样本为9月中旬的最新样本,该样本利用了百度账户来设置C&C服务器,不过C&C服务器IP进行了加密处理。通过对该恶意代码的分析我们发现其具有如下特点:

1、通过短信传播。

2、伪装成Chrome浏览器更新欺骗用户下载。

3、通过BASE64编码将恶意dex文件隐藏于资源目录。

4、创建手机代理服务的方式来窃取Google账户凭证。

5、通过百度个人账户来更新C&C服务器地址。目前涉及到的攻击者百度账户页面有http://www.baidu.com/p/dajiahao188384/detail 和http://www.baidu.com/p/womenhao183527/detail,解密后的C&C服务器地址为:111.240.228.234:8833。

6、利用加密的WebSocket协议通信。

7、使用了类似RPC的机制来实现远程控制。

8、替换合法金融类APP为钓鱼APP,窃取登录凭证。

该样本相关信息见表1:

样本属性

内容

样本文件名称

Chrome.apk

马名称

Android/MoqHao

样本大小

180935 字节

MD5

D2D4BDEEC275C8C8AD270988A4A5C410

SHA1

78947935E406F1B1AE2B5A441E29C669035B5E99

C&C跳板

http://www.baidu.com/p/dajiahao188384/detail  

http://www.baidu.com/p/womenhao183527/detail

C&C

111.240.228.234:8833

表1  样本相关信息

木马行为简介

该恶意木马伪装成Chrome浏览器更新包来欺骗用户下载,并且该恶意木马运行后会不断提示用户激活其设备管理员权限(见图1),一旦其设备管理员权限被激活,该恶意木马就隐藏自身的图标。这样,普通用户很难卸载掉该恶意木马,从而使该恶意木马长期驻留在受害用户的设备中。

图1  提示用户激活设备管理员权限

该样本原始包充当了类似壳的角色,真实的恶意dex文件被加密保存在原始包的assets目录下,原始包在运行时解密加载其恶意dex文件来实现恶意攻击。解密后的dex文件经过了严重的混淆。我们对其深入分析后发现,恶意木马在运行时,通过Http请求获取攻击者提前在其百度个人账户页面配置好的加密过的C&C服务器地址,请求成功返回后,再对C&C服务器进行解密。获取到C&C服务器地址后,该恶意木马会使用加密的WebSocket协议来和C&C服务器通信。值得注意的是,该恶意木马和C&C服务器均各自实现了自己的RPC函数,通信双方利用这些RPC函数来达到数据窃取和远程控制的目的(示意图见图2)。

图2  恶意木马网络通信图

需要关注的是,该恶意木马会遍历受害用户本机安装的APP信息,以确定受害用户是否安装有特定的银行类APP。如果有的话,该恶意木马就会从C&C服务器下载对应的伪装银行木马,待对应的伪装银行木马下载完成后,就提示用户升级。伪装银行木马运行后,会卸载掉受害用户本机原始合法的银行APP来偷梁换柱。不难推测,对用户真正的钓鱼活动才刚刚开始。

另外,该恶意木马除了收集受害用户的手机硬件相关信息和手机状态信息,还会窃取受害用户的Google账号凭证。与常见的利用远程服务钓鱼页面不同的是,该恶意木马在受感染手机本地开启了一个Httpserver服务,并利用该本地服务页面完成对受害用户的Google账号凭证钓鱼后,再将其通过WebSocket协议转发到C&C服务器。该恶意木马的主要行为见图3:

图3  恶意木马的主要行为

原始包解密分析


如前所述,该恶意木马真实的恶意dex文件被加密保存在原始包的assets目录下,其内容是Base64后的可见字符(见图4),其原始包只是扮演了壳的角色,原始包在运行时解密加载真实的恶意dex文件来实现恶意攻击。我们将bin文件Base64解密或在该恶意木马运行后,从其安装包路径下的files文件下均可得到真实的恶意dex文件(见图5)。

图4  加密存放真实的恶意dex文件

图5  真实的恶意dex文件运行时解密到files目录

真实攻击逻辑分析


该恶意木马申请的权限如图6所示,其中涉及到的敏感权限包括短信的读写权限、通讯录读取权限、打电话权限、修改手机状态权限等。

图6  恶意木马申请的权限

1. 注册大量广播,用于窃取用户手机状态信息

该恶意木马注册了大量的广播事件,主要用来窃取受害用户手机状态信息,以达到实时监控受害用户手机的目的(见图7)。

图7  恶意木马注册大量广播事件

其中,当用户手机有新的应用安装或卸载、手机电量变化、网络连接改变、屏幕唤醒或休眠等事件发生时,恶意木马就发送受害用户手机状态相关信息到C&C服务器。发送的手机状态相关信息包括:运营商名字、网络类型(wifi还是移动网络)、wifi的mac地址、电量百分比、wifi信号强度、是否管理员权限、自己是否在休眠白名单中、屏幕是否唤醒、手机情景模式(见图8)。

图8  向C&C服务器发送手机状态相关信息

2. 获取C&C服务器地址

该恶意木马利用动态页面来获取和更新C&C服务器地址。攻击者将加密后的C&C服务器地址配置在申请的百度账户个人简介中,恶意木马在运行时会通过Http请求获取对应的页面数据再进行解密。从图9我们可以看到,获取C&C服务器的Http请求串也经过了加密处理,我们对其解密后的结果为:http://www.baidu.com/p/dajiahao188384/detailhttp://www.baidu.com/p/womenhao183527/detail

图9  Http请求的解密和拼凑

另外,通过抓包也可清楚看到该Http请求的内容(见图10)。

图10  Http请求抓包结果

我们在浏览器中访问对应的Http请求,可以看到访问的是对应百度账户的个人页面,我们注意到攻击者的账户目前还处于在线状态,个人简介部分即为加密后的C&C服务器地址(见图11),我们对其解密后为:111.240.228.234:8833。

图11  攻击者注册的百度账户页面

3. 窃取用户设备信息和状态信息

恶意木马连接C&C服务器成功后,会发送受害用户手机相关信息,包括:android_id、系统版本、手机版本+显示屏参数、是否root、关机状态、sim卡是否处于就绪状态、用户手机号码、IMEI、手机中账户信息(见图12、图13)。除了发送用户手机相关信息,还会再次发送用户手机的相关状态信息(见图14)。

图12  连接C&C服务成功后,发送用户手机信息

图13  具体发送的手机信息

图14  发送用户手机当前状态信息

图15是以上通信的日志信息。可以清楚地看到连接的C&C服务器地址,连接成功后,更新用户手机状态信息到C&C服务器。

图15  更新用户手机状态信息的日志

4. 通过C&C服务器下发命令和回传任务

该恶意木马使用加密的WebSocket协议来和C&C服务器通信,恶意木马和C&C服务器各自实现了自己的RPC函数供对方调用(其中图16是恶意木马实现的RPC函数),通信双方利用这些RPC函数来达到数据窃取和远程控制的目的。恶意木马实现的RPC函数可发送短信(目标地址和内容由C&C服务器提供)、锁定用户手机、获取手机通讯录、发送钓鱼信息给手机联系人等(具体见表2)。

图16  恶意木马实现的RPC函数

命令

含义

sendSms

发送短信(地址和内容由C&C服务器提供)

setWifi

打开WiFi

gcont

获取手机通讯录

lock

锁定手机

bc

发送钓鱼信息给手机联系人

setForward

设置本地配置文件中的“fs”值

getForward

得到本地配置文件中的“fs”值

hasPkg

判断手机是否安装有指定apk

setRingerMode

设置情景模式

reqState

发送手机状态信息到C&C服务器

showHome

回到主屏幕

getnpki

获取压缩包

表2  该恶意木马实现的RPC函数

图17是该恶意木马和C&C服务器通信部分,恶意木马解析C&C服务器发送过来的网络数据,执行对应的RPC函数,再将函数执行结果返回给C&C服务器。

图17  C&C服务器和恶意木马的通信

同时,该恶意木马也会给C&C服务器发送请求指令,分别为:下载指定的apk文件、发送钓鱼到的Google账户凭证、得到需要更新的包列表、得到标题等显示提示(见表3)。

请求名称

含义

getPkgData

下载指定的apk文件

setMyInfo

发送钓鱼到的Google账户凭证

getPkgMap

得到需要更新的包列表

getnotify

得到标题/内容/url来显示提示

表3  恶意木马发送给C&C服务器的函数请求

5. 窃取用户Google账户信息

该恶意木马除了收集受害用户的手机硬件相关信息和手机状态信息,还会窃取受害用户的Google账户凭证。与常见的利用远程服务器钓鱼页面不同的是,该恶意木马在受感染手机本地开启了一个Httpserver服务,并利用该本地服务页面完成对受害用户的账户凭证钓鱼后,再将其通过加密的WebSocket协议转发到C&C服务器。在恶意木马筛选出google账户后(见图18),会弹出警告对话框,等受害用户点击确定后,恶意木马就会打开浏览器,跳转到自定义的本地钓鱼页面(见图19)。

图18  筛选Google账户

图19  弹出警告窗口

该恶意木马在本地创建HttpServer服务,本地HttpServer服务启用线程来处理钓鱼到的Google账户信息(见图20)。

图20  恶意木马利用本地服务来处理钓鱼到的Google账户信息

恶意木马将钓鱼到的Google账户凭证发送到C&C服务器(见图21)。

图21  恶意木马将钓鱼到的Google账户凭证发送到C&C服务器

6. 下载伪装银行类APP

该恶意木马会遍历受害用户本机安装的APP信息,以确定受害用户是否安装有特定的银行类APP。如果有的话,该恶意木马就会从C&C服务器下载对应的银行类木马,待对应的木马下载完成后,就提示用户有新的升级。银行类木马运行后,会卸载掉受害用户本机原始合法的APP来偷梁换柱。显而易见,对受害用户真正的钓鱼攻击才刚刚开始。

遍历用户手机应用,检查是否有内置指定的银行类APP,有的话,从C&C服务器下载对应的银行木马APP(见图22)。

图22  遍历受害用户手机应用

如果用户手机存在指定的银行类APP,则从C&C服务器下载对应的银行木马APP(见图23)。

23  C&C服务器下载指定的银行木马APP 

表4为恶意木马内置的要伪装的银行类APP包名。

目标对比的银行类APP包名

com.wooribank.pib.smart

com.kbstar.kbbank

com.ibk.neobanking

com.sc.danb.scbankapp

com.shinhan.sbanking

com.hanabank.ebk.channel.android.hananbank

nh.smart

com.epost.psf.sdsi

com.kftc.kjbsmb

com.smg.spbs

表4  恶意木马要伪装的银行类APP包名

银行类恶意木马APP下载完成后,会弹出提示框,诱使用户更新(见图24)。

图24 诱使用户安装下载到的银行类木马 

银行类恶意木马运行后,会卸载掉受害用户原来合法的银行类APP(见图25)。

25 下载下来的木马偷梁换柱

7. 传播

该恶意木马通过向受害用户的通讯录联系人发送钓鱼信息来传播(见图26)。

图26  该恶意木马的传播途径

总结及建议

虽然该恶意木马是针对韩国用户,但也不排除后续针对其他国家实施攻击的可能。用户除了对热门的APP下载和更新不能大意外,对系统自带的APP的更新也应保持警惕。建议用户不要轻易点击短信中的不明链接,不要安装不明来源的APP。对申请可疑权限尤其是短信读写、打电话以及需要激活设备管理器的APP要特别留意,涉及到金钱的操作要格外谨慎。遇到操作异常,应当及时使用杀毒软件查杀或找专人处理。目前互联网上也充斥着形形色色的第三方APP下载站点,很多甚至成了恶意应用的批发集散地。用户应特别留意不要轻易地在一些下载站点下载APP,尽量从官网下载所需APP应用,在不得不从第三方下载站点下载软件时,要保持高度警惕,认真甄别,防止误下恶意应用,给自己造成不必要的麻烦和损失。





启明星辰积极防御实验室(ADLab)


ADLab成立于1999年,是中国安全行业最早成立的攻防技术研究实验室之一,微软MAPP计划核心成员。截止目前,ADLab通过CVE发布Windows、Linux、Unix等操作系统安全或软件漏洞近400个,持续保持国际网络安全领域一流水准。实验室研究方向涵盖操作系统与应用系统安全研究、移动智能终端安全研究、物联网智能设备安全研究、Web安全研究、工控系统安全研究、云安全研究。研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。