freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

病毒分析 | 一只“蜗牛”偷梁换柱,靠锁主页进行牟利
2018-01-12 10:00:54

一、概述

众所周知,导航推广、淘宝客劫持可以给渠道商带来巨大的利益,使得木马病毒制造者纷纷变成推广渠道商。一些聪明的病毒制造者利用锁页生成器,以“造福”推广技术人员为由,让其助力进行木马传播。在这期间,病毒制造者再进行偷梁换柱,通过云配替换成自己的推广链接,并对国美,京东,苏宁,淘宝等电商进行劫持。据统计,截至到目前共有438397位网民中招。

1.png

 图1:蜗牛锁页QQ 群

二、样本分析

1.母体分析

蜗牛主页是一套很全的主页锁定木马,模块和功能也比较多,整体的模块和功能说明如下:

2.png

 图2:蜗牛锁页框架

3.png

图3:蜗牛锁页生成器

木马制作者会向推广人员提供一个生成器(如上图),当推广人员填写完推广id和锁定的链接并点击”生成静默包”后会在当前目录下生成名叫LockPage.exe的文件,该文件就是用于传播的母体,其主要负责工作如下:

a.解密释放配置文件sss.dat,该文件用于保存“插件模块”的存放目录信息,创建com组件注册表的路径等信息。

4.png

  图4:蜗牛锁页sss.dat配置

b.解密释放文件config.dat到%temp%和C:\ProgramFiles\Common Files\System 目录下,该文件保存导航主页的配置信息。

5.png

 图5:蜗牛锁页主页配置文件

c.根据系统版本数位不同,释放safe32.dat或者safe64.dat命名为safe.zip,并将文件生成到”%temp%”和C:\ProgramFiles\Common Files\System\目录下,safe32.dat 和safe64.dat是主页劫持的核心模块。

6.png

 图6:释放safe32.zip和 safe64.zip

d. 木马通过该创建COM组件接口的方式将safemonn.dll进行注入explorer中

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\0OverlayIcon

HKEY_CLASSES_ROOT\CLSID\{8D6E9E7B-57C4-4080-AAAE-5DC03C45B9D7}\InProcServer32

7.png

图7:添加com组件

e.根据不同版本位数的系统解密释放safemonn32.dll或者safemonn64.dll文件到C:\ProgramFiles\Common Files\System\目录下。

8.png

图8:释放safemonn32.dll或safemonn64.dll

f.做完以上操作后,木马会重启Explorer进程,并自删除。这时safemonn.dll将被explorer自动加载启动。

9.png

 图9:重启Explorer

2.safemonn分析

Safemonn它的在整个模块中扮演的loader的”角色”,负责加载safe32.dat或者safe64.dat和卸载自身。首先safemonn会判断当前模块名是否为空,如果不是就在当前进程开辟一段内存空间并将自己拷贝到该内存中,然后进行PE文件重定位修复等工作,最后调用自身DLLMAIN。

10.png

图10:内存加载自身

自身DLLMAIN被调用后,接下来木马会尝试对LdrLoadDll函数进行 inline Hook,如果LdrLoadDll函数地址获取不成功,则获取LoadLibraryW函数的地址进行inline Hook,作者的目的是为了让自己运行在当前进程内存中,并卸载当前进程的自身模块,不让分析人员发现有可疑DLL的存在。

11.png

图11:HookLdrLoadDll

12.png

图12:卸载模块

做完以上的步骤后,接下来创建一个隐藏的Dialog,当Dialog被初始化时(MSG= WM_INITDIALOG)将会启动一个线程,该线程主要完成对C:\Program Files\Common Files\System\目录下的safe32.dat或者safe64.dat文件进行解密并内存加载( ps:如果safe32.dat或者safe64.dat不存在,那么将会从服务器上下载进行解密加载 )

13.png

 图13:加载safe32.dat或者safe64.dat

3.safe32.dat分析

Safe32.dat它被保存在C:\ProgramFiles\Common Files\System目录下并以safe.dat命名,该样本在整个模块中负责主页劫持模safe32.dll( ps:与safe32.dat同名而已),nline hook CreateProcessW,配置环境检测还原,信息上报,主页配置文件的更新等。

14.png

图14 资源

a、从资源中读取safe32.dll,进行异或0xA加密后保存在C:\\ProgramFiles\\Common Files\\System\\ado\\ hehe.dat做一次备份,然后创建sort.exe进程做为傀儡进程,通过枚举safe32.dll导出表找到导出函数Loadpe地址,传递safe32.dll(自身)做为参数,以远程线程的方式注入到傀儡进程sort.exe中。

15.png

图15:傀儡进程

b、 从资源中释放reload.sys,进行异或0xA加密后保存在C:\\ProgramFiles\\Common Files\\System\\ado\\uiprotect.dat做一次备份,然后检测reload.sys驱动是否已经被加载,如果没有加载,则进行驱动的加载。并生成一份未加密的在C:\\Program Files\\Common Files\\System\\uiprotect.sys,最后加载驱动。

16.png

图16:木马驱动注册表

 

C、作者为了起到双保险效果,对CreateProcessW函数进行inlinehook ,在浏览器启动后,在浏览器后面添加参数,达到劫持的主页的效果。

17.png

图17:Hook CreateProcessW

劫持的浏览器例表如下:

18.png

图18:被劫持的浏览器

木马还会对桌面上的浏览器快捷方式做劫持。

19.png

 19:浏览器快捷方式被劫持

d、木马会检测自己的配置文件是否已经被删除,如果文件不存在。则发控制码0x222024给驱动,准备还原配置文件。

20.png

图20:恢复配置文件

e、  访问http://www.woniulock.com/taobaoke.php?domain=http://www.woniulock.com/获取淘宝客配置文件,并发送控制码0x222018把内容交给驱动。

21.png

  图21:淘宝客内容

f、   统计用户电脑信息以http方式向服务端发送格式如下:

www.woniulock.com/getwinmm.php?type=1&compName=&visiteNow=&code=&ip=&sys=&ver=&setuptime=&qq=&md5=

g、           木马根据用户机器名计机码进行一次md5计算,然后向服务端发送请求进行md5查寻,如果服务端配置好的机器码md5和客户端请求的md5值一致,那么就会新返回id号,url等等值,然后去修改config.dat(主页配置文件)中的id、url等等字段( 作者想黑吃黑)。

22.png

图22:修改config.dat配置文件

h、根据机器码查询获取广告配置,不过根据病毒后台显示该功能目前疑似暂未启用。

23.0.png

23.png

图23:广告模拟点击

4.safe32.dll(hehe.dat)分析

Safe32.dll( hehe.dat ) 是浏览器劫持模块它被内核层注入到浏览器中,通过读取config.dat中的url字段获取主页信息。

24.png

图24:读取config.dat文件

通过对GetCommandLineW函数进行inline hook,检测浏览器参数中是否包含电商类网站(如淘宝、京东、苏宁、国美)进行电商和导航的劫持。

25.png

图25:HOOK  GetCommandLineW函数:

26.png

图26: 淘宝客劫持


5.驱动分析

蜗牛锁页的驱动主要起到保护注册表、对抗安全厂商主页锁定模块、淘宝客劫持、主页劫持、关机修复等功能。

5.1控制码对应功能:

木马的驱动控制码功能对应如下:

控制码 功能说明
0x222000 未实现功能
0x222004 未实现功能
0x222018 接收R3传递过来的淘宝客劫持pid
0x222024 清楚FSD Hook
0x222028 删除文件
0x22202C 未实现功能
0x222048 恢复注册表

27.png

图27:控制码

5.2镜像回调:

镜像回调函数是蜗牛锁页木马的浏览器劫持和淘宝客劫持功能核心点,其逻辑如下:

1.如果msvcrt.dll被加载时且当前的进程是浏览器进程会通过命令行参数的方式进行导航劫持,如果浏览器命令行参数中包含电商域名关键词就将命令行参数替换如下。

https://ai.taobao.com/?pid=mm_34440408_12080698_110948961

http://www.woniulock.com/tuguan.php?name=jd

http://www.woniulock.com/tuguan.php?name=gm

http://www.woniulock.com/tuguan.php?name=sn

2.当ntdll.dll被载时将safe32.dll(C:\\ProgramFiles\\Common

Files\\System\\ado\\hehe.dat ) 注入到浏览器中

3.当explorer就加载时,进行safemonn32.dll的恢复

流程图如下:

28.png

图28:流程图

5.3对抗安全厂商:

木马在对抗安全厂商的分别用了两套策略:

1.注册mini File filter对安全软件厂商的浏览器保护模块进行文件读取过滤,防止安全厂商浏览器保护模块被加载。

29.png

图29:安全厂商浏览器防护模块

2.重新加载内核获取原始SSDT表中函数地址,然后通过KeServiceDescriptorTable[0]获取到现有的SSDT表,然后循环枚举判断ZwOpenKeyEx、ZwCreateKey、ZwSetKeyValue函数是否被HOOK,如果被HOOK,则进行恢复

30.png

图30:摘除ZwOpenKeyEx、ZwCreateKey、ZwSetKeyValue钩子

3.通过暴力搜索特征0x2B、0xE1、0xC1、0xE9、0x2得到现有的kifastCallEntry,通过内核加载获取到原始的kifastCallEntry进行恢复。

31.png

图31:恢复kifastCallEntry钩子

4. 枚举移除 LoadImageNotifyRoutine,让安全厂商镜像加载监控失效

32.png

图32: 枚举移除LoadImageNotifyRoutine

5.4注册表回调:

创建注册表回,对注册表

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\0OverlayIcon进保护防止打开访问

33.png

图33:注册表回调

5.5关机回调:

关机回调函数,进行safemonn32.dll模块的恢复。

34.png

图34:关机回调

三、安全建议 

金山毒霸安全专家建议推广技术人员特别警惕这种主页生成器,切勿帮助他人进行病毒的传播。

*本文作者:渔村安全,转载请注明来自FreeBuf.COM

# 流量劫持 # 锁定主页
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者