首页> 头条新闻

2017-10-14点击:

近日,腾讯反病毒实验室截获到了大量通过传入特殊参数实现刷流量行为的恶意程序,经过回溯发现,这些恶意程序均是由某wifi热点共享软件下载并解密运行进行传播,感染量非常大。该恶意程序的主要功能是后台定向的流量推广等操作,目前腾讯电脑管家已全面拦截和查杀。

0×01 木马样本简介

如果你电脑上存在C:\ProgramData\AppData\*app\(Win7)、C:\Documents andSettings\All Users\Application Data\AppData\*app\ (XP)目录,那很可能你已经中招了。

1.png

感染表现

木马文件wifiinit.dll是南宁某科技有限责任公司的wifi热点共享软件——WifiBaby,安装后释放的dll文件。其在安装后注册为系统服务,主要功能为从服务端获取需要执行的任务,下载恶意程序到本地并执行。其下载的恶意程序通常重命名为系统exe,解析传入的参数执行特定的行为。截止到编写该文档,分析到的大部分行为为后台刷流量。

2.png

木马功能大致流程

0×02 详细分析 1. Wifiinit.dll行为分析

Wifibaby安装完成后,在其安装目录下会生成Wifiinit.dll,该dll被注册为系统服务随系统开启自启动,并与驱动程序wifinat.sys绑定。

其导出函数大部分为服务安装与卸载功能以及服务功能函数。

3.png

当服务异常的情况下,驱动wifinat.sys会调用其中RundllInstall来完成对驱动、服务的重新安装。

4.png

经过分析,定位到服务中恶意行为部分主要外层代码如下:

5.png

当服务启动后,首先判断是否有windbg、ida、OllDbg、Wireshark、Sniffer等进程存在,若有,则不触发恶意行为。Anti_debug内容如下:

6.png

若未发现调试工具,则尝试与服务器获取联系,获得服务器返回后的Taskid结构体后。程序会在GetTask函数里另起一个进程来处理获取到的Taskid:

7.png

在该线程中,首先按程序自身的协议构造包含有任务派发url:Dispatch.se.17wangwang.com的结构体,而后以udp形式与服务器进行通信,所有流量均经过解密处理。

8.png

在udp在经过通信协商,并获取到Taskid后,程序首先删除现有AppData/{Taskid}app/目录下的文件,此后再遍历并删除该目录下所有文件:

9.png

而后,程序将首先判断AppData目录下是否存在app.cfg,app.cfg是一个sqlite数据库,其以taskid为主键,data字段中存放对应taskid执行所需的加密后的exe文件数据。如下图:

10.png

若app.cfg文件不存在,则执行create table新建一个数据sqlite数据库文件:

11.png

若存在app.cfg文件,则先搜索数据库,判断对应taskid所需的exe是否存在:

12.png

若id存在,则直接读取数据库中data字段,生成一个以Taskid命名的raw文件,如图1中“79”文件。

倘若该id不存在,则再次解析服务端返回的数据,提取其中下载url和执行exe所需的参数以及exe解密所需的密钥。

提取到url后,执行下载:

13.png

下载成功后,程序还将对下载的文件进行校验,判断其大小及md5是否符合。验证通过后再将下载的数据写回到app.cfg:

14.png

此后,程序将其解密并以常见的系统进程名对其重命名。再通过获取到的Taskid结构体中信息来判断下载得到的程序为dll还是exe,并分别执行起来:

15.png

在GotoRunDll函数中,程序将加载该dll并调用其中PlugWork函数,传入获取到的taskid结构体中的参数:

16.png

同样,在GotoRunExe中,程序可利用CreateProcessAsUserW以及CreateProcessW,调用程序:

17.png

由上可知,该dll主要功能是定时与服务端连理链接进行通信,获取任务。解析任务结构体,下载相应可执行文件。下载后解密并以任务结构体中得到的参数运行该可执行文件。

2. exe文件分析

上一节对wifiinit.dll的分析可以知道,wifiinit.dll作为母体主要下载可执行文件并执行。因此,对下载回来的可执行文件进行分析是必不可少的。

在样本回溯过程中,笔者收集并整理到的目录名及样本MD5对应关系如下(其后文件名为随机系统进程名):

├─44app 6d8dd8e97e8c5856f454eb2323c5d43d *SearchFilterHost.exe ├─50app f415810f3e513624c4081809792402bc *SearchFilterHost.exe ├─63app b8b9b3d5b0ba82260f3db9c011c82c86 *taskmgr.exe ├─65app b2d8bad6a7949b1f2902215eec875815 *ctfmon.exe ├─74app 17072cd99b3a7403e2af883db189070b *taskhost.exe ├─75app bdd569f5c76e5f492d212b34f5203fc5 *lsm.exe ├─79app 3851021f81ad2e62f52d51e0b53f6c1c *alg.exe ├─81app b94c6c76c7f9d113049e0139cadbb7c3|b94c6c76c7f9d113049e0139cadbb7c3 *lsass.exe ├─83app 9297ed57e3f04fb1bc5b20efd91d0ab6 *SearchProtocolHost.exe └─85app 4e9e1b1c152521f3111e92e4d0fe6226|38b628edabba1d5fae6f93c7582e0ad4 *svchost.exe

由于exe文件过多,就不对其进行一一分析,下文将抽取其中几个样本,大致描述其功能。这一些列可执行程序都是需要传入特殊构造的参数才能正确的去执行其中功能的,以其中一个样本为例,笔者截获到其中的一条参数如下:

a1e9a397a1e8eff1a3f5e9e9edeea7b2b2f5fcf2b3aeabadb3fef3b2a2eeeffea0f1f0bbf1eea0f3acabaea9a9aca8fea4fca1b2e8eff1a397a1e9f4f0f8f2e8e9a3aeabadada1b2e9f4f0f8f2e8e9a397a1fef1f8fceffef2f2f6f4f8a3aeabada1b2fef1f8fceffef2f2f6f4f8a397a1f6eabdeaf8f4faf5e9a0bfa4adbfa351714d592b342635b12e392927bd5e5d5058505824275065b14a6b296f51384d752b7d54445a33a1b2f6eaa397a1eef8fceffef5c2edfcfaf8bdeee9fce4a0bfaca8b1aeadbfbdeefeeff2f1f1a0bfacbfbdfef1f4fef6a0bfafbfbdfcf9c2eaf8f4faf5e9a0bfa8adbfbdedfcfaf8c2eaf8f4faf5e9a0bfaaadbfb2a397a1f0fcf4f3c2edfcfaf8bdeee9fce4a0bfa9adb1abadbfbdeefeeff2f1f1a0bfacbfbdfef1f4fef6a0bfacbfbdf1e9c2eaf8f4faf5e9a0bfaaadbfbdefe9c2eaf8f4faf5e9a0bfaaadbfbdefffc2eaf8f4faf5e9a0bfaaadbfbdf1ffc2eaf8f4faf5e9a0bfaaadbfb2a397a1f2e9f5f8efc2edfcfaf8bdeee9fce4a0bfa9adb1abadbfbdeefeeff2f1f1a0bfacbfbdfef1f4fef6a0bfacbfb2a397a1b2e9a3

程序运行时,首先会判断是否安装有杀毒软件:

18.png

如果机器未装有杀毒软件,则对程序传入的参数进行解密,若有则结束进程:

19.png

其解密部分代码用python描述为:

def decode(buf): buf = binascii.a2b_hex(buf) lenth = len(buf) result = [] for i in buf: result.append(chr((ord(i) ^ lenth) & 0xff)) return "".join(result).decode('gb2312')

将刚才的参数解密得到明文如下:

<t> <url>https://hao.360.cn/?src=lm&ls=n1634415c9a</url> <timeout>3600</timeout> <clearcookie>360</clearcookie> <kw weight="90">天心订花,长春 美团团购网,做打胎需多少钱</kw> <search_page stay="15,30" scroll="1" ad_weight="50" page_weight="70"/> <main_page stay="40,60" scroll="1" lt_weight="70" rt_weight="70" rb_weight="70" lb_weight="70"/> <other_page stay="40,60" scroll="1"/> </t>

在解密完参数后,程序将对其进行解析,程序会对传入的参数进各个字段进行相应的提取:

20.png

最后并访问其中网址,完成自动点击操作:

21.png

在RunAutoClick函数中,程序将首先随机获取一个浏览器头部,而后解析传入的解密后的参数,并且新起一个线程来做点击以及html页面解析的工作:

22.png

而后将写注册表,设置特定的浏览模式:

23.png

再按照传入的参数设置窗口显示状态:

24.png

一般情况情况下都为隐藏窗口,笔者将其手动patch后,得到效果如下:

25.gif

自动打开网址并翻页

26.gif

自动输入关键词搜索并点击进入搜索结果

从动画中可以看到,该exe可谓是实现了一整套自动点击流程,完美实现了后台静默刷流量的整个过程。

在程序中还可以看到各种对html页面的解析等代码:

27.png

如果有杀毒软件或者访问到的url是一些主流的电商网站,则停止:

28.png

其编译遗留的信息也挺多比如:

c:\users\fananjie\desktop\dianshang_jc\code\xxx\导航\AutoClick/SogouSeClickMethod.h

甚至还有大量的类名、方法名。如:CCrash::WriteMiniDump、CGlobalCritical::SetName、SogouSeClickMethod::SearchClickInput

从命名上看,该团伙的工程意识也是很强的,整个工程也是很规范。如此,这个exe的也就分析到这里了。

再看另一系列exe,以bdd569f5c76e5f492d212b34f5203fc5为例吧,截获到的其中一条参数如下:

571f4b0a5649585b5b5b175e5b17494b185649031f1f1b5144441c1c1c450d02050f5d5c5345080406445f2e5829595d2e29522d292d5f5b090f292d2d2d2d2d2d5c2859285b2d59282d451b031b4955571b4b0a56495a595b475a5e5b175b175b175a5b49445557441f55

猜测解密算法与上一个exe一致,解密后得到内容如下:

<t a="3000|50|" s="http://www.find678.com/4E3B26EB9FBF40bdBFFFFFF7C2C0F2CF.php"><p a="120,150|0|0|10"/></t>

pExplorer可以看到该可执行文件中含有名为FILE的资源,并且是一个可执行文件:

29.png

在IDA中可以看到提取资源和加载的过程,这里主要关注这个资源中程序的启动方式。在得到资源数据后,程序获取系统位数进而得到ctfmon.exe的绝对路径:

30.png

而后启动进入create_write_memory函数中,其主要代码如下:

31.png

该函数中主要判断资源文件是否正常,并且提取其中.text段,启动ctfmon.exe并将代码注入到ctfmon的进程中。下图为od调试可见提取.text段操作。

32.png

提取到数据后,注入到ctfmon.exe进而运行起来:

33.png

此时,pchunter看到的lsass.exe进程与ctfmon.exe的关系如下:

34.png

由此便可知道该进程为了躲避杀毒软件,所使用的启动方式了。

由解密后的参数可知,其主要作用是访问参数中包含的url:

ie打开可以看到,整个页面充斥着各种广告:

35.png

在其源码中还存有各类刷流量的url:

36.png

其资源文件中的EXE这里就不做详细分析了,还有很多样本大致行为也几乎相似。

截获到的参数解密后的得到的需要刷流量的url有以下这些:

1\. 2\. 3\. :8800/News/GetNews.aspx?newsid=471 4\. 5\. 6\. :8080/r?cc=otgKYKaOCdE&cb=86gytjGAo0M 7\. 8\. 9. 10.?id=1259006651&u=http%3a%2f%2fm.pciiss.com%2fcoop%2fwap%2frmw%2f02.htm 11. 12. 13. 14. 15.?id=126&from=ty 16. 17. 18. 19. 20.?utm_source=slvrline&utm_medium=syn_OG&utm_content=&utm_campaign=test

其中大部分页面为无限跳转、广告等页面。其在后台默默运行,在用户不知情的情况下默默地执行着服务器派发的各种刷流量任务。

37.png

0×03 危害及查杀

经过以上分析,可以发现该木马的主要功能还是通过后台刷流量来实现获利,由于该木马作为wifi共享软件的组件,并且以服务形式存在,使得用户难以发现异常。但是频繁地刷流量会占用用户大量的带宽,导致用户网速变慢,并且占用大量内存。如发现近期下载速度变慢、在线看视频玩游戏变卡,很可能中了该木马,可下载电脑管家进行全盘扫描。