【权威报告】大型挂马团伙“擒狼”攻击分析及溯源报告【转】

第一章 概述


7月13日,360安全卫士检测到一起网站广告位挂马事件,大量网络广告出现集体挂马,广告内容以同城交友等诱惑信息为主,预警为“擒狼”木马攻击。我们通过对整个挂马攻击的分析溯源发现,这个木马主要功能是锁定浏览器的主页并带有远程控制后门,作者通过木马谋取暴利,是一起典型的黑产行为。

该木马通过漏洞执行,安装服务和驱动,通过驱动锁定浏览器主页,服务实现自启动并将自身注入系统进程.连接C&C下载配置和插件,其中一个插件劫持淘宝客的推广ID来实现流量变现,不排除还有其他插件实现静默安装等更多的黑产行为.

在分析过程中我们发现,利用漏洞传播仅仅是该木马的其中一种推广方式,但仅仅是这一种推广方式,在7月13日一天内,360安全卫士就拦截了3万多次攻击.因此,我们有理由相信此木马应该有一个庞大的安装基数和日活量,才能使木马作者维持稳定的盈利,支持其继续开发。

第二章 运行效果


木马执行后,全程静默安装,没有任何提示,重启计算机后,服务和驱动被加载,主页被锁定.

http://p1.qhimg.com/dr/__50/t0100d6a24a6ca182f6.png

 

第三章 漏洞利用


此次挂马攻击主要是使用的Kaixin exploit kit(挂马攻击包),是近年来比较活跃的挂马组合攻击包,也是目前已公开发现的国内唯一一个专门提供挂马攻击的服务,该挂马攻击包会混合使用多个Java、Flash和IE漏洞进行挂马,此次攻击使用的较新的漏洞主要是针对Edge 浏览器的CVE-2016-7200/ CVE-2016-7201漏洞,针对Flash的CVE-2016-4117漏洞,针对IE浏览器的CVE-2016-0189漏洞。

黑客通过一些网站的广告位嵌入含漏洞的网页,诱导用户点击。

http://p5.qhimg.com/dr/__50/t01c0473cfb837a1e70.png

如果不慎点击这些广告位就可能触发带漏洞攻击的页面,如CVE-2016-0189[1]漏洞:

http://p5.qhimg.com/dr/__50/t01e7e5c92263a2b97a.png

http://p6.qhimg.com/dr/__50/t011e369cc9e4f03db5.png

如果此时受害者是一台没有打补丁的机器,就会触发相应漏洞,开始下载木马并执行:

http://p3.qhimg.com/dr/__50/t0149da5ea6c546fcba.png

第四章 技术细节 


Dropper

流程图

http://p2.qhimg.com/dr/__50/t015c6b989df7ce7b51.png

Dropper程序运行后,在内存中解密恶意代码,动态获得系统API,最后流程转移到注入代码流程。

注入程序在首次启动时将rsrd节中加密的数据解密并存储到注册表中,随后尝试注入svchost程序,释放白名单文件Acset.dat,将acset.dat设置为重启后重命名为sens.dll,替换掉系统的System Event Notification Service服务,将自身写入sens.lang文件,随后联网发送统计信息.

在系统重启后,系统System Event Notification Service服务模块指向白名单插件sens.dll,白名单插件加载被释放的sens.lang启动注入程序,注入程序注入svchost并且hook ZwOpenFile,hook写入的代码中包含有创建线程,当svchost打开文件时候利用创建线程函数启动注入的代码。

此时被注入的svchost释放并安装驱动文件,驱动加载后删除驱动文件,随后将驱动模块指向微软官方的mlang.dll。

最后svchost将workdll注入services同时hook ZwMapViewOfSection,当services调用ZwMapViewOfSection函数时通过CreateThread函数使workdll开始工作。

细节:

首先提升权限,将当前进程权限提升为SeDebugPrivilege,随后作者为了避免程序被分析进行调试器检测。

http://p5.qhimg.com/dr/__50/t01ac858bbfe6cdb778.png

检测windbg和ollydbg以及pchunter。

http://p7.qhimg.com/dr/__50/t01db47fdb27eb39a60.png

检查是否处于调试状态。

http://p7.qhimg.com/dr/__50/t01b9afc67bc0f8eb2e.png

判断参数是否正确,从文件rsrd节解密数据,用Zlib库解压数据后获得以下文件。

http://p1.qhimg.com/dr/__50/t01ec5c691bcf8680c5.png

创建注册表4d36e965-e325-11ce-bfc1-08002be10318目录,添加InstallName、LastDeleteData、LocalizedInfo、LowerLogoData项。

其中LastDeleteData包含锁主页驱动, workdll, 配置文件等.

为了保证开机自启动,通过延时删除替换系统dll,设置dll开机启动,尝试注入svchost程序。

首先遍历进程找到要注入的系统进程,申请空间注入代码。

http://p8.qhimg.com/dr/__50/t012e1d095bc72da8d1.png

因为通过远程线程调用启动注入代码容易引起杀毒软件监控,所以恶意程序hook 了ZwOpenfile函数,当svchost打开文件时创建线程启动注入的程序。

http://p1.qhimg.com/dr/__50/t014ba941dd885f82da.png

注册延时替换文件,将sens.dll文件在系统重启的时候替换为Acset.dat文件,设置注册表 “HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\SENS\Start” 使sens.dll开机启动。

http://p7.qhimg.com/dr/__50/t01076eb2346f6a3c0a.png

http://p0.qhimg.com/dr/__50/t013195c8c8124a4d8d.png

设置开机启动系统System Event Notification Service服务

http://p8.qhimg.com/dr/__50/t01763433cb3747bff4.png

为了保证程序成功运行,如果系统进程无法注入,则程序自己创建dllhost进程注入。

http://p4.qhimg.com/dr/__50/t011dd500c7c78fb24b.png

随后通过HTTP向http://tj.xinyu88.com/tongji.php?userid=CCC555&mac=${MAC}&osver=${OSVER}&a=${INSSTATE}发送统计信息。

http://p5.qhimg.com/dr/__50/t011a31b2eb8103c39c.png

http://p2.qhimg.com/dr/__50/t013d5f4f1c075561b8.png

在重启系统之后,sens.dll被替换为Acset.dat文件,典型的运行白名单加载恶意程序方式,Acset调用LoadLibrary加载sens.lang文件,即CCC555.exe本身,随后启动注入程序注入svchost并且hook ZwOpenFile来启动注入代码。

http://p0.qhimg.com/dr/__50/t010c21119c9a0d6b9e.png

被注入的svchost释放驱动文件,文件名称为dump_{随机服务}.sys,为了躲避查杀,dump_后面的部分使用系统现有服务名,利用msbpdrv_tsp~.inf文件安装驱动。

http://p9.qhimg.com/dr/__50/t01e678019094aaf4e0.png

作者为了避免sys文件被直接发现引起怀疑,加载驱动后将驱动文件替换为微软官方mlang.dll。

http://p3.qhimg.com/dr/__50/t017ba5db4c0b968e68.png

Workdll被注入services同时hook ZwMapViewOfSection,当services调用ZwMapViewOfSection函数则通过CreateThread函数使workdll开始工作。

http://p0.qhimg.com/dr/__50/t01c13f9be8ba43948d.png

驱动模块

驱动文件带有已经被吊销的数字签名,

http://p4.qhimg.com/dr/__50/t01c8fc4727e873fce1.png

获取配置文件,读取注册表指定位置“HKEY_CLASSES_ROOT\CLSID\{4d36e965-e325-11ce-bfc1-08002be10318}”中的LastDeleteData项获取配置信息

http://p4.qhimg.com/dr/__50/t01bd33d75bfa31b41c.png

http://p8.qhimg.com/dr/__50/t017c7222edd342265e.png

解密得到配置文件

锁主页配置:

http://p7.qhimg.com/dr/__50/t0188a1c82180de02a4.png

后门配置

http://p2.qhimg.com/dr/__50/t0139a08261233b04d6.png

通过”InstallName”项,获取当前安装的服务和驱动文件的文件名

http://p9.qhimg.com/dr/__50/t01626ce5a764da3b0e.png

http://p7.qhimg.com/dr/__50/t016786b19ddadf68f6.png

收集主机中的收藏夹

遍历收藏夹和”Desktop”上的“.lnk .url” 文件, 并提取 链接地址

http://p2.qhimg.com/dr/__50/t01a0ff61978eba2503.png

初始化配置信息

http://p9.qhimg.com/dr/__50/t01d158d49310b5274a.png

http://p4.qhimg.com/dr/__50/t01b2824696e8405108.png

判断延时删除项,检测服务启动项的状态,对服务进行守护

http://p7.qhimg.com/dr/__50/t011959eb6c68b5b705.png

http://p9.qhimg.com/dr/__50/t01e4f2b880b8757469.png

http://p6.qhimg.com/dr/__50/t0112ed831c2c8b3040.png

注册文件监听过滤器

http://p0.qhimg.com/dr/__50/t01da81d7b78602133d.png

http://p5.qhimg.com/dr/__50/t0160d20e9d7435cc73.png

文件增删改查时,都会记录到日志上

监控进程创建事件

系统所有的进程创建,均会通知驱动,驱动会根据PID 维护一个进程列表

http://p0.qhimg.com/dr/__50/t016659ad1745b382da.png

创建进程事件的回调

判断指定的进程,符合条件则注入DLL

http://p6.qhimg.com/dr/__50/t015744cfd314c91e85.png

申请内存,注入”WorkDll”, 后续工作交由Ring3完成

http://p7.qhimg.com/dr/__50/t0197200681c0e9b939.png

Workdll

Dropper启动后从注册表读取保存的workdll文件,把workdll注入到系统进程,workdll加载后将尝试从本地加载缓存的配置文件.没有则从C&C下载新的配置

http://p9.qhimg.com/dr/__50/t01cc0d2dfbf66734f0.png

配置缓存路径为c:\windows\temp,文件名为~G{计算机名CRC32取反}.tmp,内容经过加密分段存放.

http://p7.qhimg.com/dr/__50/t01a1ece6148ca895d6.png

其中GlobalConfig配置内容为:

http://p3.qhimg.com/dr/__50/t0166c53930f7b43446.png

加载完配置后进入加载插件流程

http://p6.qhimg.com/dr/__50/t019b7c2dbb55c2c13d.png

和配置一样插件也有本地缓存,文件名为~TP112FA.tmp,内容为zlib压缩的dll文件

插件的Flag对应表:

从表中可以看出该模块具有后门的基本功能,包括删除文件,下载dll和exe,加载到进程等.

http://p6.qhimg.com/dr/__50/t015e442fe22a990738.png

对于当前插件Flag为0x91,即 类型为DLL,加载到浏览器,数据为zlib压缩

http://p0.qhimg.com/dr/__50/t01019219cf23a2e81c.png

加载插件模块

http://p7.qhimg.com/dr/__50/t0174cd48e9d13e7a06.png

然后进入命令循环,每隔60秒连接服务器

http://p7.qhimg.com/dr/__50/t01007bd2d9868a888a.png

连接C&C为 pzds1.thebestsites.in

http://p9.qhimg.com/dr/__50/t017a79fd7d498b2281.png

http://p2.qhimg.com/dr/__50/t0160bac891d2ff8a96.png

淘宝客劫持插件

通过workdll下载的插件CED566ED.rar是一个淘宝客PID劫持插件,功能为检测到淘宝购物链接时,向浏览器注入JS脚本,把原来的淘宝客PID替换成配置文件中的PID.来达到盈利的目的.

读取配置中的pid列表

http://p2.qhimg.com/dr/__50/t013e624bae5c9fbfb9.png

setJsForTaobao函数,设置js中的参数

http://p8.qhimg.com/dr/__50/t014b802b7f4fff9f09.png

Js脚本,来自从服务器下载的配置

http://p7.qhimg.com/dr/__50/t01550fe627f5ac586a.png

针对淘宝设置js脚本

http://p4.qhimg.com/dr/__50/t016f54fc5a2f2d3577.png

针对京东设置js脚本

http://p5.qhimg.com/dr/__50/t0146f2aab33ab639fd.png

从代码中可以看到插件还有替换HTML的功能,但是由于配置文件设置的是测试字符串,这项功能并没有触发.

http://p4.qhimg.com/dr/__50/t0130d6db6ca2ce2da1.png

html-replacing配置

http://p0.qhimg.com/dr/__50/t01d83bf6220f7ae1d2.png

第五章 对抗


在样本分析过程中遇到了大部分木马常见的对抗手段,包括反调试、反虚拟机、白利用,驱动隐藏、注册表存储文件等,可见作者在免杀上面花费了不少时间和精力.

拼接API函数名称并动态加载

http://p8.qhimg.com/dr/__50/t013faace1c05300523.png

通过检测鼠标位置来对抗虚拟机行为分析

http://p9.qhimg.com/dr/__50/t01a1065ddea7edeae8.png

白利用

利用合法带有数字签名的DLL文件加载木马DLL

http://p5.qhimg.com/dr/__50/t014b30f06dc38d4045.png

延时替换文件

利用MoveFileEx函数的MOVEFILE_DELAY_UNTIL_REBOOT模式实现系统重启时替换文件

驱动文件隐藏

驱动加载成功后,删除驱动文件,修改注册表,使指向的驱动文件为操作系统的白文件,这样在用户层就找不到加载的驱动文件.

http://p6.qhimg.com/dr/__50/t019815ed11c1040ebf.png

常见调试工具进程检测

http://p0.qhimg.com/dr/__50/t012745451363479754.png

驱动模块中检测是否被调试

http://p4.qhimg.com/dr/__50/t01ba6392b26876689a.png

http://p3.qhimg.com/dr/__50/t0122c3e2397bd22925.png

驱动中检测安全类和其他锁主页的模块

http://p9.qhimg.com/dr/__50/t01062420261837ab80.png

只有未检测到安全类和其他锁主页的模块时,才会触发锁主页和淘宝客劫持的行为。

第六章 溯源


和 “一生锁页”的关系

在分析过程中,我们发现样本和 “一生锁页”相似度极高,经详细对比,确认CCC555.exe就是“一生锁页”的免杀版.

http://p6.qhimg.com/dr/__50/t01f0d317e8d0faaf75.png

“一生锁页”官方网站普通版说明:

http://p2.qhimg.com/dr/__50/t01b9ed22ab064d1643.png

可以看到,普通版也有自动更新和后台管理功能.

免杀版说明:

在官网注册推广账号后,可以看到还有免杀版.

http://p1.qhimg.com/dr/__50/t01b576ec074d50d8dd.png

“一生锁页”的官网上作者提到是软件免费,并留有捐赠通道,给人的感觉是单纯凭兴趣开发.

http://p6.qhimg.com/dr/__50/t01f15a4a26b1ba73d3.png

但是当注册账号,登录管理平台后的页面里又说有其他方式盈利,显然前后矛盾.

根据前面的分析,我们推测其所说的其他方式应该是淘宝客劫持.

http://p3.qhimg.com/dr/__50/t01f15a4a26b1ba73d3.png

而来自网友的反馈,确实有人在不知情的情况下中过此木马.

http://p5.qhimg.com/dr/__50/t01b197f7e8777a06d3.png

多个线索都证明”一生锁页”带有后门.具有静默安装和电商推广、淘宝PID劫持等行为.

利益链

结合多个数据,我们整理出一个“一生锁页”的利益链:

http://p4.qhimg.com/dr/__50/t013c4ca539a7722ff3.png

1.作者制作锁主页普通版木马通过官方主页推广,用户和推广者并不知道有后门,表面上通过锁主页的提成盈利,其实更大部分来自于后门插件的淘宝客窃取.

2.作者制作锁主页免杀版木马,针对有固定用户量的推广者,推广者可能使用下载站捆绑或网站挂马等方式实现推广,这些推广者应该知道软件带有后门,锁主页和后门插件窃取淘宝客的收益由推广者和作者共同分成.

普通版和免杀版对比

Workdll导出函数

http://p3.qhimg.com/dr/__50/t010b8197ab5a2b7920.png

Workdll字符串对比

http://p4.qhimg.com/dr/__50/t013ffcd4d01652d0db.png

Workdll解密函数

http://p2.qhimg.com/dr/__50/t01376344257fb65a3e.png

Workdll写注册表函数

http://p7.qhimg.com/dr/__50/t01b4ce6ca508352e21.png

驱动文件版本号比较:

http://p4.qhimg.com/dr/__50/t01801f2f0fc78d2095.png

驱动字符串比较

http://p6.qhimg.com/dr/__50/t015dd32edc788accaa.png

普通版和免杀版主要区别

http://p9.qhimg.com/dr/__50/t01947d361b31aafb69.png

在分析普通版样本过程中,我们发现C&C域名可以直接访问,可以直接看到淘宝客劫持的收益

http://p3.qhimg.com/dr/__50/t01f161fcf51dd78dad.png

经过查看js脚本中的连接,直接访问配置,返回下面的数据

http://p2.qhimg.com/dr/__50/t01d48ce8db4d5449fe.png

其中 邮箱字段就是 一生锁页官网上的QQ邮箱

http://p2.qhimg.com/dr/__50/t01cecd5f0af542080f.png

尝试使用其中的密码登录免杀版的C&C服务器的VNC成功,

获取SVN的账号和密码,下载了2个库

http://p1.qhimg.com/dr/__50/t017dac6d46d4a337db.png

在网站源码中,找到Mysql密码,得到免杀版的账号,日活等信息

php代码中有证据表明有淘宝PID劫持和推广链接ID劫持,免杀等行为.

http://p4.qhimg.com/dr/__50/t016fdc2f2a7dd12141.png

网站源码中还有制造静默安装包的模块,这个功能是在http://120.24.47.99/服务器完成的

http://p1.qhimg.com/dr/__50/t01e028fd4f86d0e6b8.pnghttp://p5.qhimg.com/dr/__50/t01db4b26049a2a156a.png

在这个服务器中就有渠道号CCC555的安装程序, 其中包含“后门”字样

http://p2.qhimg.com/dr/__50/t0181df03750dd68b14.png

配置文件:

http://p3.qhimg.com/dr/__50/t01a324d23519b32868.png

和分析的样本中的相同

服务器数据统计

普通版淘宝客盈利统计 newbe.in

http://p3.qhimg.com/dr/__50/t012b5629cc906ba5a0.png

数据从2016年5月8日开始

可以看到两个明显的峰值,分别是2016年11月11和2016年12月12,和电商的销售旺季重合.这两天提成分别是88594和101675.

截止到2017年7月26日, 448天内累计点击量1173万,成交量42万,提成 219万元.

免杀版用户数统计

我们对免杀版所有用户数量进行了统计,结果如下:

http://p6.qhimg.com/dr/__50/t015b77a7466306850e.png

其中我们分析的样本CCC555.exe,即userid为16的用户数据刚好从7月13日暴增,和我们检测到的数据刚好吻合.

http://p7.qhimg.com/dr/__50/t01e086ba4e6f9db5bd.png

第七章 自检


用户可以通过手动检测查看是否中招:

注册表:

1
HKEY_CLASSES_ROOT\ CLSID\{4d36e965-e325-11ce-bfc1-08002be10318}

其中 InstallName不固定

http://p6.qhimg.com/dr/__50/t0153e4de9032180410.png

HKEY_LOCAL_MACHINE\Software\Microsoft\COM3下新增了COMVersion项

http://p6.qhimg.com/dr/__50/t01b5a4d49c9f0173ee.png

COMVersion的值为机器ID和时间戳

temp目录:

c:\windows\temp目录中:

http://p9.qhimg.com/dr/__50/t0134fc63b2fc1dec57.png

网络:

每隔1分钟向 120.25.239.40或52.78.96.21的11900端口发送数据包

第八章 总结


经过前面的分析,我们可以看出作者在这个项目上投入了大量的时间和精力,独立实现了应用层、驱动以及管理平台,代码量比较大,应该是全职开发.并且有自己的推广渠道,是一起打着免费锁主页的旗号通过后门来变现的黑产行为.

作者以为没有弹窗,不会影响终端用户的体验就不会被发现,就可以和推广者”达到彼此共赢”,闷声发大财了.天网恢恢疏而不漏,只要有恶意行为,总有被发现的一天。目前,360网盾可以有效拦截此类网站挂马

http://p7.qhimg.com/dr/__50/t011d16b5dd7a10f3c0.png

360安全卫士拦截木马注入系统进程:

http://p6.qhimg.com/dr/__50/t011e000e1c0cbb3616.png

360追日团队(Helios Team)


360 追日团队(Helios Team)是360公司高级威胁研究团队,从事APT攻击发现与追踪、互联网安全事件应急响应、黑客产业链挖掘和研究等工作。团队成立于2014年12月,通过整合360公司海量安全大数据,实现了威胁情报快速关联溯源,独家首次发现并追踪了三十余个APT组织及黑客团伙,大大拓宽了国内关于黑客产业的研究视野,填补了国内APT研究的空白,并为大量企业和政府机构提供安全威胁评估及解决方案输出。

已公开APT相关研究成果

http://p4.qhimg.com/dr/__50/t01d1b22e9b55d55b7a.png

http://p5.qhimg.com/dr/__50/t01b488c2a3813c1887.png

此条目发表在未分类, 经验技术分类目录。将固定链接加入收藏夹。