流氓软件化身“卫士” 携带病毒对抗安全软件

2017-01-07 10,911

一、 背景

近期我们接到用户反馈。刚刚装好的系统无法安装火绒安全软件,表现为:安装程序执行安装步骤到一半的时候,安装程序自己消失,除此以外浏览器首页也被恶意篡改。

通过定位问题,我们在用户计算机上提取了和中毒现象相关的八个病毒文件。

在进一步的分析中我们发现,提取的文件是一组病毒,并且和两个叫做“卫士”的软件有关联,分别是:“浏览器卫士”和“铠甲卫士”。
这个发现并不让我们感到意外,这些年免费的“卫士”类软件不断出现,一般都是广告满天、弹窗不断,浏览器主页“被”保护,当然这些都是“增值功能”,大多还是有安全防护能力的。

但是今天这两个”卫士“,颠覆了我们的三观:打着卫士的幌子,作着流氓的生意,没有安全软件的功能,却屏蔽安全软件的安装,

和真正危害计算机安全的病毒的共存,所谓的“卫士”,最主要的功能除了锁首截取导航站流量,下载推广软件。

二、 病毒分析

中毒计算机可以在C:\WINDOWS\system32\Qprotect目录找到以下六个文件(x64系统安装目录就是C:\Windows\SysWOW64\Qprotect目录):“QProtect.sys、QProtect64.sys、svchost.exe、QProtect.dll、QProtect64.dll、csrss.exe ”。

在C:\Windows\System32\Drivers目录下找到另外两个以“usb”字母开头,文件名称随机的驱动文件。

根据提取的文件,我们在火绒病毒实验室复现了用户现场。
Qprotect文件夹下的病毒文件名相似,创建时间也相同。

其余两组文件usb3568.sys、usb79701.sys看起来和第一组病毒没有太大关系。

但是这些病毒的数字签名的签名人姓名一致,签名日期相近,很可能是由一个病毒释放器安装的,如图2-1:

1

图2-1、病毒文件数字签名一致

中毒的计算机有两个明显的现象:安全软件无法安装,首页被劫持。

除此之外还有一个不太容易注意到的问题,就是安装某些软件的时候,启动的安装程序并不是用户自己下载的。

按照现象我们分为三组:
第一组病毒的负责替换用户下载的常见软件安装包,替换为带有病毒作者推广信息的安装包,截取软件安装量。

相关文件有:QProtect.sys、QProtect64.sys、svchost.exe、QProtect.dll、QProtect64.dll、csrss.exe。
第二组病毒,只有usb3568.sys一个文件。负责对抗安全软件,阻止安全软件进入中毒计算机。

病毒文件名很可能会有不同变化,一般规律是“usb“字母开头后跟4位数字。
第三组文件也只有一个“usb79701.sys”,该病毒文件名称也是随机,usb字母开头后跟5位随机数字,负责对抗安全软件的首页保护功能,截取浏览器导航页面流量。
三组病毒按照功能:“推广软件安装”,“阻止安全软件安装”和“破坏安全软件功能”分别进行分析。
2.1 推广软件安装
Qprotect目录下的病毒是第一组。csrss.exe这个文件是整组程序的主模块。它接受一个参数 “/load”,添加该参数启动后,csrss.exe会执行以下流程:
1. 将病毒从任意目录复制到C:\WINDOWS\system32\Qprotect目录下,x64系统安装目录就是C:\Windows\SysWOW64\Qprotect。
2. 加载驱动文件QProtect.sys,x64下是Qprotect64.sys。
3. 联网在hxxp://bbup.201061.com下载带有病毒作者推广信息的安装包到%Windir%\Qhotfix目录下,如图2-2:

 

2

图2-2、csrss.exe执行流程

4. x86下csrss.exe会对新启动进程注入Qprotect.dll,x64位程序由svchost.exe负责注入。Qprotect.dll、Qprotect64.dll动态库的功能相同。

注入后的Qprotect动态库会挂钩CreateProcessInternalW系统函数,拦截被注入进程启动的程序。如图2-3:

3

图2-3、Qprotect挂钩CreateProcessInternalW系统函数

以Qprotect.dll注入资源管理器(explorer.exe)为例,Qprotect.dll会调用VerQueryValueW函数得到explorer.exe欲启动程序的详细信息,调用证书相关API得到启动程序的签名信息,和病毒内置的推广软件安装包信息进行对比。

如果explorer.exe启动的程序是一个安装包,并且在病毒自己的列表内,就会启动%Windir%\Qhotfix目录下的对应的安装包安装,以QQ浏览器为例,如图2-4、2-5:

4

图2-4、用户下载的QQ浏览器和explorer.exe启动的QQ浏览器不同

5

图2-5、explorer.exe启动的QQ浏览器

这些安装包都包含有渠道商信息,如果不使用监控工具,用户根本不可能知道自己下载的安装包被替换运行过,通过此方法可以悄声无息的截取软件安装量。病毒内完整功能的推广列表如下(图2-6):

6

图2-6、提取病毒和推广软件功能相关的可见字符

QProtect.sys驱动负责保护HKLM\SOFTWARE\Qprotect、HKLM\SYSTEM\CurrentControlSet\Services\Qprotect注册表项不被修改删除。保护Qprotect文件夹下的病毒文件不被修改、删除。这样病毒可以长期驻留用户计算机。
这一组病毒文件模块众多,表面功能简单。但是仔细分析可以发现,病毒不是只有表现的这些功能。

在分析Qprotect.sys代码时,我们发现了该驱动可以“保护”默认浏览器注册表项,阻止安装第三方浏览器的功能,但是实际测试时并没有生效。如图2-7:

7

图2-7、Qprotect.sys中没有用到的字符串

同样在病毒程序csrss.exe的资源文件中,我们发现一个名为ZIPRES083804的压缩包资源,解压出来可以看到如下内容(图2-8、2-9):

8

图2-8、csrss.exe内包含的图片资源

9

图2-9、csrss.exe内包含的文字资源

一个是默认浏览器注册表项和浏览器列表,一个是“浏览器卫士”的贴图和文字资源,而以上两点,都没有看到病毒使用。

这说明该病毒和名为"浏览器卫士"软件存在联系。在同源性分析章节,我们会对"浏览器卫士"这条线索继续追查,证明此事。
2.2 阻止安全软件安装
第二组病毒usb3568.sys就是在用户计算机上无法安装安全软件的元凶。病毒功能简单,就是对抗安全软件的安装,如果有安全软件在安装,就会结束安装包的进程。
该病毒驱动加载后会初始化过滤文件列表,列表内包含有绝大多数的安全软件关键文件名称,只要出现在该列表内文件,都会在病毒文件过滤功能中拦截,病毒发现若是有安装程序创建列表内的文件,就会调用内核函数ZwTerminateProcess将创建文件的进程结束,阻止安装程序继续安装。
有意思的是,该病毒调试日志丰富,如果启动内核调试器调试,可以看到病毒打印出来的调试日志信息,调试信息中包含了病毒要过滤文件的完整列表,列表内包含了国内外几乎常见的所有安全软件关键文件,如图2-10:

10

图2-10、病毒打印的日志

和第一组病毒一样,我们发现usb3568.sys包含部分代码不会被调用,比如:病毒创建的设备“ \Device\KJAnti”、还有“\\KJClientPort”都可以和上层应用程序进行通信。

但是在用户计算机上没有找到上层应用。这的符号名中都包含“KJ”也是重要的线索,在同源性分析章节,也会继续追查,寻找病毒源头。
2.3 破坏安全软件功能
第三组程序usb79701.sys是整个病毒的核心,负责截取用户首页流量,也是功能比较多的一个驱动模块。病毒中包含的所有有用信息全都被加密保存对抗分析,这是其他两组程序没有的。
usb79701.sys驱动首次加载后,会复制自身到系统drivers目录下,然后删除驱动原始文件。将新释放的驱动加载到用户系统,并且删除驱动的注册表服务启动项,做到无启动项,后续通过关机回掉函数,在关机的时候写回启动项。

复制到drivers目录下新的病毒文件名是随机的。无启动项、随机文件名,都给手工检测、发现病毒提高了难度。
加载后的病毒会在用户桌面创建“淘宝.url”文件,在用户收藏夹也会创建三个url文件分别是:“百度.url"”、“京东商城.url"”和“淘宝.url"”,如图2-11:

11

图2-11、病毒添加的URL文件

三个URL的链接分别指向以下三个网址,最终回跳到下表右侧的“跳转链接“指向的网址,如下表2-1:
添加链接 跳转链接
表2-1
其中百度和淘宝的两个URL并不是直接跳转的,中间会有一个跳转页面。百度的是的是hxxp://www.112112.com,淘宝的是hxxp://shop.156038.com。这两个网址直接访问都显示的都是正常页面,但是如果修改了referrer,就会跳转到病毒访问的推广页面,如图2-12、2-13:

12

图2-12、修改referrer会的到不同的结果

13

图2-13、修改referrer会的到不同的结果

我们猜测这样做的目的是为了让带有推广号的导航页面更隐蔽。除了释放URL病毒驱动还包含其他RootKit功能:
1. 注册文件过滤驱动,如图2-14。
2. 注册进程通知、映像通知、和关机通知几个内核通知,如图2-15。

14

图2-14、病毒包含文件过滤功能

15

图2-15、病毒包含进程通知、关键通知、和映像通知

下面分别进行详细说明:
文件过滤驱动主要负责病毒文件的隐藏和保护工作,如果在中毒计算机直接查看文件信息,看到的都是系统动态库Ntdll.dll的信息。用于迷惑用户和安全研究人员。

恢复文件过滤器就可以看到真实的文件信息和数字签名,如图2-16、2-17:

16

图2-16、文件过滤功能生效的情况下看到的假信息

17

图2-17、文件过滤功能失效的情况下看到的真实信息

关机通知负责驱动的服务项回写。

因为驱动注册成功后会删除相关启动项,病毒注册关机通知就可以利用关机回调函数回写注册表启动项。做到有病毒无启动项。并且在关机时添加服务启动项可以过掉主流安全软件的主防拦截。

同样用户正常关机后可以在PE系统下看到的关机后病毒添加的注册表驱动服务启动项,如图2-18:

18

图2-18、PE系统下看到病毒关机添加的驱动启动项

映像通知负责病毒驱动对抗安全软件的首页保护功能。病毒驱动在映像文件加载的时候,会判断是否是浏览器进程,该进程中是否注入了安全软件浏览器首页锁定相关动态库,如果都满足就补丁首页保护动态库入口代码使其加载失败,失去浏览器保护功能(如图2-19),被Patch完的某安全软件首页保护动态库模块入口代码,如图2-20:

19
图2-19、病毒Patch安全软件首页保护功能的反汇编流程图

20

图2-20、被Patch的某安全软件的入口点代码

除了图中展示的某安全软件的首页保护动态库以外,病毒补丁入口的全部动态库列表如下:
*\QMPROTECT.DLL
*\QMIESAFEDLL.DLL
*\KSHMPG.DLL
*\KWSUI.DLL
*\KSHMPGEXT.DLL
*\QMIESAFEDLL64.DLL
*\SAFEWRAPPER64.DLL
*\KWSUI64.DLL
进程通知负责判断启动进程是否浏览器进程,如果是则通过PsGetProcessPeb得到PROCESS_PARAMETERS.CommandLine.Buffer直接修改添加导航页面,用作流量截取。

添加的导航网址是hxxp://123.150398.com/,问号后面的是驱动的安装日期,是病毒作者用于统计的标记,如图2-21:

21

图2-21、病毒劫持的首页

有意思的是,在病毒代码中我们发现有一段用于检测是否存在KJService.exe(区分大小写)进程的代码片段。如果存在该进程,病毒的进程通知中给浏览器命令行添加导航页面的功能将不再生效,没有多余的任何判断。这又引起了我们的注意。结合之前的字符串"KJAnti"和"KJClientPort",和现在的“KJService.exe” 都包含“KJ”字样。“KJ”指的会是什么。下一章的同源性分析中我们将会继续追踪。

三、 同源性分析

3.1 “浏览器卫士”病毒
通过火绒情报威胁系统,对病毒文件Qprotect,sys的火绒检测结果进行检索。

可以找到包含该病毒样本,SHA1是5fd5e56cfe51a1fb90852e6fb11c8bd2f7f6d610,是一个自身描述为“浏览器卫士安装程序”的安装包文件。
找到的“浏览器卫士”是一个静默安装包,默认的安装路径、驱动名称和病毒只有一个字母的差别,如图3-1:

22(3-1)

图3-1、“浏览器卫士”静默包安装路径和安装后文件

如果分别对驱动文件通过简单提取字符比较,可以看到两者相似度极高,左边是”浏览器卫士”HProtect.sys的字符数据,右边是病毒Qprotect.sys的字符数据。如图3-2:火绒对两个文件的检测结果也是一致:“Trojan/Kiaja.a”。

23

图3-2、左侧是“浏览器卫士”,右侧是病毒文件

在查看HProtect.exe的资源文件中,可以找到名为ZIPRES065804的压缩包资源,解压出来的资源和第一组病毒的csrss.exe也是一样。
我们找到”浏览器卫士”包含用户界面,功能上除了拦截浏览器,还会对安全软件进行拦截。如图3-3:

24

 

图3-3、安装安全软件的时候会在屏幕右下角弹出提示,默认阻止
完整拦截文件的列表如下:2345MPCSafe.exe、HipsMain.exe、rsmain.exe 、kismain.exe、KSafe.exe、BaiduSd.exe、BaiduAn.exe、360sd.exe、360Safe.exe、YYExplorer.exe、baidubrowser.exe、UCBrowser.exe、Opera.exe、Theworld.exe、firefox.exe、maxthon.exe、2345explorer.exe、sogouexplorer.exe、qqbrowser.exe、chrome.exe、liebao.exe、360chrome.exe、360se.exe。
而且”浏览器卫士”安装后无法在添加删除里卸载,卸载只能通过设置界面的卸载按钮才能完成。如图3-4:

 

25

图3-4、卸载功能在软件设置中,且卸载按钮为灰色。

以“浏览器卫士”作为关键字在百度知道进行搜索,可以看到很多用户都遇到了“浏览器卫士”阻止安装浏览器的,并且针对“浏览器卫士”卸载的卸载也有用户询问,如图3-5:

副本

图3-5、用户针对“浏览器卫士”遇到的问题

通过分析可以确认“浏览器卫士”就是一个打着卫士幌子的病毒。自身没有提供任何和安全相关功能,还阻止其他安全软件的安装。这个“卫士”还只是一个“单纯”的KillAV(特指对抗安全软件的病毒),下一个“卫士”可就不那么简单了。
3.2 “铠甲卫士”病毒
再看第二组病毒同源信息,我们使用关键字"KJAnti"关键字进行搜索,可以得到“铠甲卫士"(hxxp://www.kaijiaweishi.com)这条线索。而汉语拼音的“KaiJia”首字母缩写正是“KJ”二字。这说明后两组usb字母开头的驱动文件和铠甲卫士这款软件一定存在关系。
在铠甲卫士的主页可以看到,它有两个主要版本1.x和2.x。分别下载kjaqws_1.0.16.233.1458641936.exe(下文简称KJ1.x或者铠甲病毒第一代)和KaiJiaSetup@gw_2.0.16.927(下文简称KJ2.x或者铠甲病毒第二代),在安装后分别进行分析验证。
3.3 铠甲病毒第一代
KJ1.x安装完成后,可以在安装目录(C:\Program Files\KaiJia)下的Drivers文件夹找到两个驱动文件kjanti.sys和kjanti64.sys。通过简单字符对比和IDA引用分析,可以确认KJ1.x的驱动文件kjanti.sys和火绒捕获usb3568.sys病毒功能一致,如图3-6、3-7:

27

图3-6、左侧是病毒,右侧是铠甲卫士

28

图3-7、左侧是病毒,右侧是铠甲卫士

对比病毒驱动usb3568.sys和铠甲卫士kjanti.sys的数字签名时间可以看出,铠甲卫士驱动的出现时间更早,先有的铠甲卫士后出现的病毒。如图3-8:

29

图3-8、病毒和铠甲卫士一代的签名时间对比

3.4 铠甲病毒第二代
在2016年9月铠甲卫士更新到了v2.0.16.927版本。重新安装v2.0.16.927后,安装目录“kjanti.sys“和“kjanti64.sys”两个驱动已经找不到了,但是名为“KJService.exe“文件出现在我们眼前,“KJService.exe“文件的自我描述为“铠甲安全卫士-安全防护服务”。

这个文件名称我们在第三组病毒“usb79701.sys”中曾经看到过。
在上文分析中,病毒“usb79701.sys“会检测中毒计算机是否存在“KJService.exe”(区分大小写)进程。

如果存在,则首页劫持代码就不会生效,这一定不是巧合。

继续查看KJService.exe和病毒usb79701.sys的文件签名时间也是出现在同一天,如果不事先知情,病毒代码又怎么会和“铠甲卫士“的程序上做到同步修改呢?如图3-9:

 

30

图3-9、铠甲卫士二代包含了病毒寻找的KJService.exe这个文件

经过试用,“铠甲卫士“一代和”铠甲卫士“二代,同“浏览器卫士“一样,都不具有安全软件基本的功能,无法保护用户计算机安全,在安全功能不足的情况下,专精首页锁定,锁首页面“45.cc、696123.com”和软件推广。
我们列出前文出现的所有可疑域名:201061.com、150398.com、112112.com、156038.com、kaijiaweishi.com、696123.com 、45.cc和rjguanjia.com。在whois.chinaz.com上进行域名检索。

可以发现除“150398.com”域名外,注册人都为一个,如图3-10:

31

图3-10、201061.com在whois.chinaz.com的查询结果

根据注册的QQ邮箱反查,可以看到该邮箱注册多个域名,其中绝大多数都是导航站。完整列表如下图(3-11):

32

图3-11、whois.chinaz.com上通过邮箱反查得到的全部域名

浏览这些域名,有几个域名引起我们的注意“bigbaicai.com”, “ushendu.net“、“laomaotaoupan.cn”。

再加上第一章交代的用户反馈:“刚刚装好的系统无法安装火绒安全软件”,我们怀疑在病毒是在启动盘的时候安装的。

通过搜索引擎搜素验证了我们的猜想。如图3-12:

33

图3-12、网络上关于铠甲卫士的相关问题

四、附录

附录

本文作者:mini fox

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/54587.html

Tags:
评论  (4)
快来写下你的想法吧!

mini fox

文章数:35 积分: 92

火绒安全让所有人都可以安全、安静、自由地使用智能终端设备

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号