近日,360互联网安全中心拦截了大量可疑流氓推广样本,这些样本伪装成游戏盒子,安装后接收云端指令,会强制下载推广软件,弹窗,修改主页,通过用户的电脑赚取大量的利益,本文将对此样本详细分析.

0x00 概述


该木马通过下载站捆绑传播,安装后潜伏25分钟,25分钟后向服务器发送机器信息(系统版本,软件版本号等),收到指令后下载推广软件和刷流量软件,系统重启后静默安装同时启动刷流量的软件,占用系统大量资源和流量.总感染量达数千万.

0x01 样本信息


图 1 安装包

Setup11009.exe

文件大小: 362752 字节

MD5 e20ecf2a617ae0a063b49668a64577ec

安装包和程序都使用同一个签名

0x02 行为分析


1) 安装后目录结构:

图 2 目录结构

2) 程序列表中:

程序名为 gmbox Redistributable Package(kb20140526) ,伪装成Windows补丁包程序

时间为真实安装时间的一年前

图 3 控制面板-卸载程序-显示

3) 开始菜单显示为 GXBox游戏

图 4 开始菜单

4) 托盘显示图标

图 5 托盘图标

5) 打开后,伪装成游戏广告

图 6 主界面

6) 添加服务,名称为GmXbox_update, dll路径指向安装目录下的gmbox.dll

图 7 服务名称

图 8 服务DLL路径

7) 在HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run添加启动项,参数为 -tray,每次启动不显示主界面,只有托盘图标

图 9 启动项

8) 安装后25分钟,在临时目录下载了数个广告软件和安装程序

图 10 下载安装包

图 11 临时目录中下载的安装包

其中

  1. ir56.exe 调用下载的广告程序安装包.
  2. hw.dat 遍历安装程序,使其窗口隐藏.
  3. ck.dat 刷网站流量.

这3个程序的PE头被修改,防止被杀软查杀.

图 12 修改后的PE头

其他为广告软件安装程序.

系统重启后,广告程序全部都静默安装

0x03 技术细节


1) 安装过程:

A) 安装包使用NSIS打包

首先,禁用常用程序的快速启动任务栏显示,为后面安装软件留位置

WriteRegStr HKCR Applications\$_gmbox_.exe NoStartPage ""
WriteRegStr HKCR Applications\uninstall.exe NoStartPage ""
WriteRegStr HKCR Applications\uninstall.exe NoStartPage ""
WriteRegStr HKCR Applications\rsmain.exe NoStartPage ""
WriteRegStr HKCR Applications\360sd.exe NoStartPage ""
WriteRegStr HKCR Applications\rsagent.exe NoStartPage ""
WriteRegStr HKCR Applications\360safe.exe NoStartPage ""
WriteRegStr HKCR Applications\rsmctray.exe NoStartPage ""
WriteRegStr HKCR Applications\kav.exe NoStartPage ""
WriteRegStr HKCR Applications\rsstub.exe NoStartPage ""
WriteRegStr HKCR Applications\SHPlayer.exe NoStartPage ""
WriteRegStr HKCR Applications\wandoujia.exe NoStartPage ""
WriteRegStr HKCR Applications\wandoujia2.exe NoStartPage ""
WriteRegStr HKCR Applications\Uninst.exe NoStartPage ""

B) 删除桌面和IE中的网址导航快捷方式

Delete $DESKTOP\*123*.lnk
Delete $DESKTOP\*123*.url
Delete $DESKTOP\*Int*.lnk
Delete $DESKTOP\*Int*.url
Delete $DESKTOP\*1nt*.lnk
Delete $DESKTOP\*1nt*.url
Delete $DESKTOP\*网址*.lnk
Delete $DESKTOP\*网址*.url
Delete $DESKTOP\*导航*.lnk
Delete $DESKTOP\*导航*.url    

Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*123*.lnk"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*123*.url"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*Int*.lnk"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*Int*.url"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*1nt*.lnk"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*1nt*.url"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*网址*.lnk"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*网址*.url"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*导航*.lnk"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*导航*.url"
Delete $INSTDIR\ad.dat

C) 调用gmbox.dll的Install函数,安装服务

图 13 安装脚本-调用gmbox.dll Install函数

D) 修改安装时间为当前时间的前1年.

图 14 安装脚本-修改安装时间

2) 主程序 gmbox.exe

A) 发送客户信息数据包: 内容包括PID(用于识别客户端),推广渠道ID,版本号,当前时间

图 15 数据包

B) 加密后Post到 http://sj.go2050.com/rcsj.ashx

图 16 post数据

C) 注册云控命令处理函数,可以看到有获取操作系统版本,执行任务,打开URL,执行云控命令,读取注册表,获取和设置主页等功能.

图 17 注册云控命令相应函数

D) 其中doTask1函数中接收到URL然后下载文件到临时目录

图 18 下载广告软件

E) 获取广告软件指令单,id=11009猜测可能是渠道号

图 19 获取指令单

其中带有-kboxsvc标记的(即ir56.exe)是安装软件.

F) 下载完成后把ir56.exe路径加密后, 添加到gmbox安装目录下的gmbox.ini文件nrd字段

图 20 加密后的ir56.exe路径

3) 服务程序 gmbox.dll

A) SERVICE_CONTROL_SHUTDOWN事件响应函数:

当系统关机时,函数执行,读取gmbox.ini中的nrd字段,即安装程序ir56.exe的路径,解密后设置RunOnce启动项.

图 21 设置ir56.exe启动项

B) 遍历下载的文件,判断PE文件标志,如果是修改过的exe,则恢复MZ和PE标记

图 22 还原PE文件

C) 添加启动项,不显示主界面,只有托盘图标

图 23 添加gmbox.exe启动项

D) 添加系统服务

图 24 创建gmbox update服务

E) 判断是否有调试进程,没有则以 -g参数启动gmbox.exe,自动升级程序.

图 25 遍历检测是否有指定进程

F) 加密后的检测进程名称列表

图 26 加密后的进程名称

G) dll还可以向指定网站通过SOAP协议获取捆绑软件的数据,弹窗数据,统计活跃数据,采集主机的信息.记录安装和卸载的数据等

图 27 调用采集接口

图 28 获取和采集数据接口说明

0x04 意外发现


在软件获取最新版本号的地址 http://dh.go2050.com/download/version.xml 的上层目录中我们发现了anote(多彩便签)的安装包,下载后分析判定和gmbox高度相似.

图 29 anote安装包下载

1) 注册云控命令处理函数

图 30 gmbox注册云控命令处理函数

图 31 anote注册云控命令处理函数

2) 字符串加密函数

图 32 gmbox.dll 字符串加密函数

图 33 anote.dll 字符串加密函数

3) 加密的字符串表

图 34 gmbox.dll 加密的字符串表

图 35 anote.dll 加密的字符串表

这个字符串列表被_UnInstall函数引用,用于判断是用户手动卸载还是第三方管理软件卸载,并把结果发送到服务器做统计.

图 36 判断是否是用户手动卸载

图 37 构建发送字符串

图 38 发送统计数据

图 39 安装拦截

总结: 通过分析我们发现,该木马添加了系统服务,启动后过一段时间才触发行为,下载的安装程序去除了PE特征,以此逃过杀软扫描,系统关机时恢复PE文件,重启后安装推广软件,潜伏性、隐蔽性较强,中招之后较难发现,建议用户安装专业的安全软件,养成良好的上网习惯,从正规下载网站或者软件管家下载软件,不要运行来历不明的软件.安装软件时注意取消默认勾选的捆绑软件.