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

[复制链接]

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册用户

x
 一、 背景
  近期我们接到用户反馈。刚刚装好的系统无法安装火绒安全软件,表现为:安装程序执行安装步骤到一半的时候,安装程序自己消失,除此以外浏览器首页也被恶意篡改。通过定位问题,我们在用户计算机上提取了和中毒现象相关的八个病毒文件。在进一步的分析中我们发现,提取的文件是一组病毒,并且和两个叫做“卫士”的软件有关联,分别是:“浏览器卫士”和“铠甲卫士”。
  这个发现并不让我们感到意外,这些年免费的“卫士”类软件不断出现,一般都是广告满天、弹窗不断,浏览器主页“被”保护,当然这些都是“增值功能”,大多还是有安全防护能力的。但是今天这两个”卫士“,颠覆了我们的三观:打着卫士的幌子,作着流氓的生意,没有安全软件的功能,却屏蔽安全软件的安装,和真正危害计算机安全的病毒的共存,所谓的“卫士”,最主要的功能除了锁首截取导航站流量,下载推广软件。
  二、 病毒分析
  中毒计算机可以在C:WINDOWSsystem32Qprotect目录找到以下六个文件(x64系统安装目录就是C:WindowsSysWOW64Qprotect目录):“QProtect.sys、QProtect64.sys、svchost.exe、QProtect.dll、QProtect64.dll、csrss.exe”。在C:WindowsSystem32Drivers目录下找到另外两个以“usb”字母开头,文件名称随机的驱动文件。根据提取的文件,我们在火绒病毒实验室复现了用户现场。
  Qprotect文件夹下的病毒文件名相似,创建时间也相同。其余两组文件usb3568.sys、usb79701.sys看起来和第一组病毒没有太大关系。但是这些病毒的数字签名的签名人姓名一致,签名日期相近,很可能是由一个病毒释放器安装的,如图2-1:
   20180430101434868.jpeg
  图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:WINDOWSsystem32Qprotect目录下,x64系统安装目录就是C:WindowsSysWOW64Qprotect。
  2. 加载驱动文件QProtect.sys,x64下是Qprotect64.sys。
  3. 联网在hxxp://bbup.201061。C0m 替换。和0下载带有病毒作者推广信息的安装包到%Windir%Qhotfix目录下,如图2-2:
   20180430101445413.jpeg
  图2-2、csrss.exe执行流程
  4. x86下csrss.exe会对新启动进程注入Qprotect.dll,x64位程序由svchost.exe负责注入。Qprotect.dll、Qprotect64.dll动态库的功能相同。注入后的Qprotect动态库会挂钩CreateProcessInternalW系统函数,拦截被注入进程启动的程序。如图2-3:
20180430101455774.jpeg
  图2-3、Qprotect挂钩CreateProcessInternalW系统函数
  以Qprotect.dll注入资源管理器(explorer.exe)为例,Qprotect.dll会调用VerQueryValueW函数得到explorer.exe欲启动程序的详细信息,调用证书相关API得到启动程序的签名信息,和病毒内置的推广软件安装包信息进行对比。如果explorer.exe启动的程序是一个安装包,并且在病毒自己的列表内,就会启动%Windir%Qhotfix目录下的对应的安装包安装,以QQ浏览器为例,如图2-4、2-5:
   20180430101505169.jpeg
图2-4、用户下载的QQ浏览器和explorer.exe启动的QQ浏览器不同
20180430101514505.png
图2-5、explorer.exe启动的QQ浏览器
  这些安装包都包含有渠道商信息,如果不使用监控工具,用户根本不可能知道自己下载的安装包被替换运行过,通过此方法可以悄声无息的截取软件安装量。病毒内完整功能的推广列表如下(图2-6):
   20180430101523921.jpeg
  图2-6、提取病毒和推广软件功能相关的可见字符
  QProtect.sys驱动负责保护HKLMSOFTWAREQprotect、HKLMSYSTEMCurrentControlSetServicesQprotect注册表项不被修改删除。保护Qprotect文件夹下的病毒文件不被修改、删除。这样病毒可以长期驻留用户计算机。
  这一组病毒文件模块众多,表面功能简单。但是仔细分析可以发现,病毒不是只有表现的这些功能。在分析Qprotect.sys代码时,我们发现了该驱动可以“保护”默认浏览器注册表项,阻止安装第三方浏览器的功能,但是实际测试时并没有生效。如图2-7:
20180430101536401.jpeg
  图2-7、Qprotect.sys中没有用到的字符串
同样在病毒程序csrss.exe的资源文件中,我们发现一个名为ZIPRES00830804的压缩包资源,解压出来可以看到如下内容(图2-8、2-9):
   20180430101546523.jpeg
  图2-8、csrss.exe内包含的图片资源
20180430101554873.jpeg
  图2-9、csrss.exe内包含的文字资源
  一个是默认浏览器注册表项和浏览器列表,一个是“浏览器卫士”的贴图和文字资源,而以上两点,都没有看到病毒使用。这说明该病毒和名为"浏览器卫士"软件存在联系。在同源性分析章节,我们会对"浏览器卫士"这条线索继续追查,证明此事。
  2.2 阻止安全软件安装
  第二组病毒usb3568.sys就是在用户计算机上无法安装安全软件的元凶。病毒功能简单,就是对抗安全软件的安装,如果有安全软件在安装,就会结束安装包的进程。
  该病毒驱动加载后会初始化过滤文件列表,列表内包含有绝大多数的安全软件关键文件名称,只要出现在该列表内文件,都会在病毒文件过滤功能中拦截,病毒发现若是有安装程序创建列表内的文件,就会调用内核函数ZwTerminateProcess将创建文件的进程结束,阻止安装程序继续安装。
  有意思的是,该病毒调试日志丰富,如果启动内核调试器调试,可以看到病毒打印出来的调试日志信息,调试信息中包含了病毒要过滤文件的完整列表,列表内包含了国内外几乎常见的所有安全软件关键文件,如图2-10:
   20180430101604815.jpeg
图2-10、病毒打印的日志
  和第一组病毒一样,我们发现usb3568.sys包含部分代码不会被调用,比如:病毒创建的设备“DeviceKJAnti”、还有“KJClientPort”都可以和上层应用程序进行通信。但是在用户计算机上没有找到上层应用。这的符号名中都包含“KJ”也是重要的线索,在同源性分析章节,也会继续追查,寻找病毒源头。
  2.3 破坏安全软件功能
  第三组程序usb79701.sys是整个病毒的核心,负责截取用户首页流量,也是功能比较多的一个驱动模块。病毒中包含的所有有用信息全都被加密保存对抗分析,这是其他两组程序没有的。
  usb79701.sys驱动首次加载后,会复制自身到系统drivers目录下,然后删除驱动原始文件。将新释放的驱动加载到用户系统,并且删除驱动的注册表服务启动项,做到无启动项,后续通过关机回掉函数,在关机的时候写回启动项。复制到drivers目录下新的病毒文件名是随机的。无启动项、随机文件名,都给手工检测、发现病毒提高了难度。
  加载后的病毒会在用户桌面创建“淘宝.url”文件,在用户收藏夹也会创建三个url文件分别是:“百度.url"”、“京东商城.url"”和“淘宝.url"”,如图2-11:
   20180430101613761.png
  图2-11、病毒添加的URL文件
  三个URL的链接分别指向以下三个网址,最终回跳到下表右侧的“跳转链接“指向的网址,如下表2-1:
  添加链接
  跳转链接
  hxxp://ie.150398。C0m 替换。和0/baidu.html
  hxxps://w-w-w。去掉-更换。baidu。C0m 替换。和0/index.php?tn=93139410_hao_pg
  hxxp://ie.150398。C0m 替换。和0/taobao.html
  hxxp://ai.taobao。C0m 替换。和0/?pid=mm_120655403_19768235_68200168
  hxxp://ie.150398。C0m 替换。和0/jingdong.html
  hxxps://w-w-w。去掉-更换。jd。C0m 替换。和0/?cu=true&utm_source=kong&utm_medium=
  tuiguang&utm_campaign=t_1000023102_&utm_term=
  139109ff8cf04e53a91cf9a66f385e7f&abt=3
表2-1
  其中百度和淘宝的两个URL并不是直接跳转的,中间会有一个跳转页面。百度的是的是hxxp://w-w-w。去掉-更换。112112。C0m 替换。和0,淘宝的是hxxp://shop.156038。C0m 替换。和0。这两个网址直接访问都显示的都是正常页面,但是如果修改了referrer,就会跳转到病毒访问的推广页面,如图2-12、2-13:
   20180430101623122.jpeg
  图2-12、修改referrer会的到不同的结果
20180430101635335.jpeg
  图2-13、修改referrer会的到不同的结果
  我们猜测这样做的目的是为了让带有推广号的导航页面更隐蔽。除了释放URL病毒驱动还包含其他RootKit功能:
  1.注册文件过滤驱动,如图2-14。
  2.注册进程通知、映像通知、和关机通知几个内核通知,如图2-15。
   20180430101645483.jpeg
  图2-14、病毒包含文件过滤功能
20180430101654296.jpeg
  图2-15、病毒包含进程通知、关键通知、和映像通知
  下面分别进行详细说明:
  文件过滤驱动主要负责病毒文件的隐藏和保护工作,如果在中毒计算机直接查看文件信息,看到的都是系统动态库Ntdll.dll的信息。用于迷惑用户和安全研究人员。恢复文件过滤器就可以看到真实的文件信息和数字签名,如图2-16、2-17:
20180430101702767.png
  图2-16、文件过滤功能生效的情况下看到的假信息
20180430101711745.jpeg
  图2-17、文件过滤功能失效的情况下看到的真实信息
  关机通知负责驱动的服务项回写。因为驱动注册成功后会删除相关启动项,病毒注册关机通知就可以利用关机回调函数回写注册表启动项。做到有病毒无启动项。并且在关机时添加服务启动项可以过掉主流安全软件的主防拦截。同样用户正常关机后可以在PE系统下看到的关机后病毒添加的注册表驱动服务启动项,如图2-18:
20180430101720941.jpeg
  图2-18、PE系统下看到病毒关机添加的驱动启动项
  映像通知负责病毒驱动对抗安全软件的首页保护功能。病毒驱动在映像文件加载的时候,会判断是否是浏览器进程,该进程中是否注入了安全软件浏览器首页锁定相关动态库,如果都满足就补丁首页保护动态库入口代码使其加载失败,失去浏览器保护功能,如图:,被Patch完的某安全软件首页保护动态库模块入口代码,如图2-19、2-20:
   20180430101730104.jpeg
图2-19、病毒Patch安全软件首页保护功能的反汇编流程图
20180430101739690.jpeg
图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。C0m 替换。和0/,问号后面的是驱动的安装日期,是病毒作者用于统计的标记,如图2-21:
   20180430101751585.jpeg
  图2-21、病毒劫持的首页
  有意思的是,在病毒代码中我们发现有一段用于检测是否存在KJService.exe(区分大小写)进程的代码片段。如果存在该进程,病毒的进程通知中给浏览器命令行添加导航页面的功能将不再生效,没有多余的任何判断。这又引起了我们的注意。结合之前的字符串"KJAnti"和"KJClientPort",和现在的“KJService.exe” 都包含“KJ”字样。“KJ”指的会是什么。下一章的同源性分析中我们将会继续追踪。
  三、 同源性分析
  3.1 “浏览器卫士”病毒
  通过火绒情报威胁系统,对病毒文件Qprotect,sys的火绒检测结果进行检索。可以找到包含该病毒样本,SHA1是5fd5e56cfe51a1fb90852e6fb11c8bd2f7f6d610,是一个自身描述为“浏览器卫士安装程序”的安装包文件。
  找到的“浏览器卫士”是一个静默安装包,默认的安装路径、驱动名称和病毒只有一个字母的差别,如图3-1:
   20180430101801658.jpeg
  图3-1、“浏览器卫士”静默包安装路径和安装后文件
  如果分别对驱动文件通过简单提取字符比较,可以看到两者相似度极高,左边是”浏览器卫士”HProtect.sys的字符数据,右边是病毒Qprotect.sys的字符数据。如图3-2:火绒对两个文件的检测结果也是一致:“Trojan/Kiaja.a”。
   20180430101810960.jpeg
  图3-2、左侧是“浏览器卫士”,右侧是病毒文件
  在查看HProtect.exe的资源文件中,可以找到名为ZIPRES00650804的压缩包资源,解压出来的资源和第一组病毒的csrss.exe也是一样。
  我们找到”浏览器卫士”包含用户界面,功能上除了拦截浏览器,还会对安全软件进行拦截。如图3-3:
20180430101819444.png
图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:
   20180430101827799.png
  图3-4、卸载功能在软件设置中,且卸载按钮为灰色
以“浏览器卫士”作为关键字在百度知道进行搜索,可以看到很多用户都遇到了“浏览器卫士”阻止安装浏览器的,并且针对“浏览器卫士”卸载的卸载也有用户询问,如图3-5:
   20180430101836235.jpeg
  图3-5、用户针对“浏览器卫士”遇到的问题
  通过分析可以确认“浏览器卫士”就是一个打着卫士幌子的病毒。自身没有提供任何和安全相关功能,还阻止其他安全软件的安装。这个“卫士”还只是一个“单纯”的KillAV(特指对抗安全软件的病毒),下一个“卫士”可就不那么简单了。
  3.2 “铠甲卫士”病毒
  再看第二组病毒同源信息,我们使用关键字"KJAnti"关键字进行搜索,可以得到“铠甲卫士"(hxxp://w-w-w。去掉-更换。kaijiaweishi。C0m 替换。和0)这条线索。而汉语拼音的“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安装完成后,可以在安装目录(CrogramFilesKaiJia)下的Drivers文件夹找到两个驱动文件kjanti.sys和kjanti64.sys。通过简单字符对比和IDA引用分析,可以确认KJ1.x的驱动文件kjanti.sys和火绒捕获usb3568.sys病毒功能一致,如图3-6、3-7:
20180430101847218.jpeg
  图3-6、左侧是病毒,右侧是铠甲卫士
20180430101857175.jpeg
  图3-7、左侧是病毒,右侧是铠甲卫士
  对比病毒驱动usb3568.sys和铠甲卫士kjanti.sys的数字签名时间可以看出,铠甲卫士驱动的出现时间更早,先有的铠甲卫士后出现的病毒。如图3-8:
   20180430101908297.jpeg
  图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:
20180430101919767.jpeg
  图3-9、铠甲卫士二代包含了病毒寻找的KJService.exe这个文件
  经过试用,“铠甲卫士“一代和”铠甲卫士“二代,同“浏览器卫士“一样,都不具有安全软件基本的功能,无法保护用户计算机安全,在安全功能不足的情况下,专精首页锁定,锁首页面“45.cc、696123。C0m 替换。和0”和软件推广。
  我们列出前文出现的所有可疑域名:201061。C0m 替换。和0、150398。C0m 替换。和0、112112。C0m 替换。和0、156038。C0m 替换。和0、kaijiaweishi。C0m 替换。和0、696123。C0m 替换。和0 、45.cc和rjguanjia。C0m 替换。和0。在whois.chinaz。C0m 替换。和0上进行域名检索。可以发现除“150398。C0m 替换。和0”域名外,注册人都为一个,如图3-10:
   20180430101928731.png
  图3-10、201061。C0m 替换。和0在whois.chinaz。C0m 替换。和0的查询结果
  根据注册的QQ邮箱反查,可以看到该邮箱注册多个域名,其中绝大多数都是导航站。完整列表如下图(3-11):
   20180430101943126.jpeg
  图3-11、whois.chinaz。C0m 替换。和0上通过邮箱反查得到的全部域名
  浏览这些域名,有几个域名引起我们的注意“bigbaicai。C0m 替换。和0”, “ushendu.net“、“laomaotaoupan.cn”。再加上第一章交代的用户反馈:“刚刚装好的系统无法安装火绒安全软件”,我们怀疑在病毒是在启动盘的时候安装的。通过搜索引擎搜素验证了我们的猜想。如图3-12:
   20180430101955606.jpeg
  图3-12、网络上关于铠甲卫士的相关问题
  四、 附录
  QProtect.sys
  6e65611aa8e3b5007f9ee0a9e6fa25075a62df85
  QProtect64.sys
  754ca3d964596b870aa2bdbe7ebe754d087a2ca3
  usb3568.sys
  654c1eb569dfd44d2d6da1e987ccc2e3d12f16a0
  usb79701.sys
  a022ae991fe771a624609eec3fd945fb0c5f1042
  usb3568.sys(x64)
  5ceabc70723bf53557562277681607dbf3429b89
  usb79701.sys(x64)
  65dddb5357cfcb7b33792d318a11474b071c4c81
  svchost.exe
  68825ac3c7b53c7ec74c97ccee37e8cd1c21335c
  csrss.exe
  1ceca8919d7fbb70cceb4249b5b65b54f0ef75d9
  QProtect.dll
  c1a3c3926712d7454916b5049324e5f120950a4b
  QProtect64.dll
  54fca4c4382ff35e2e636245164a75c2b3c35bf7
  kjanti.sys:
  df4277c037ff08307d9d73f47e718768482f32da
  kjanti64.sys
  915632f398d779e5d13dcd8b42fd45fdc5c94878
  kjaqws_1.0.16.233.1458641936.exe
  263103ec357cc91ab71e7a18864abb3df810f0b4
  518c01705e89ec231e1de75656f4a9ca0d5303b6
  c2c864234a2ce1079151cd33f97dd3c5f1c6b0a4
  浏览器卫士静默包
  5fd5e56cfe51a1fb90852e6fb11c8bd2f7f6d610


笔就是刀
回复

举报 使用道具

全部回帖
暂无回帖,快来参与回复吧
您需要登录后才可以回帖 登录 | 注册用户
快速回复 返回顶部 返回列表