400电话
在线咨询
微信咨询
咨询时间: 9:30-18:30
400-998-3555

木马病毒在网吧快速传播,隐蔽性极强

  • 作者:火绒安全

  • 发布时间:2023-12-21

  • 阅读量:1054

近期,火绒威胁情报系统监测到一款木马病毒正在网吧快速传播。该病毒被激活后,可接收并执行黑客下发的恶意模块,包括各种广告推广、DNS劫持、URL劫持、刷量控制、传奇登陆器劫持等。除此之外,该病毒还采用了多种对抗手段,隐蔽性极强。目前,火绒安全产品可对上述病毒进行拦截查杀,请用户及时更新病毒库以进行防御。

 01.png

查杀图

 

该病毒被运行后,会先从C&C服务器接收一个主加载器MainProShell.dll,然后将其注入到系统进程Explorer.exe中,以执行各种恶意操作。同时,该病毒还部署了一个看门狗模块(MainProcKeeper.dll),确保其持续在系统中活跃。该病毒执行流程,如下图所示:

098d6eaed7230148f9385132e8859846.png

 病毒执行流程

 

此外,火绒安全工程师在分析过程中发现一篇专利内容,描述的DNS劫持与本次分析的样本使用技术一致,相关专利信息,如下图所示:

6c68d6c7bbd04a4f7457751f2547cc99.png

专利信息

 

在继续查看专利申请人的其他专利时,发现了一个名为“一种针对多个网吧或机房群控分发软件的方法”的专利信息,与本次分析的病毒样本运行模式极为相似。目前经该专利申请人自述,其与该病毒之间不存在直接的关联,相关专利信息,如下图所示:

69df9cbdd41c87973dc4744077af103b.png

 

专利信息

 

火绒安全工程师在此建议,网吧经营者安装并定期更新杀毒软件,同时加强设备管理,及时修复安全漏洞,确保各终端处于最新的安全防护状态。

 

一、样本分析

病毒启动之后,通过一个多阶段加载器机制在系统关键进程中部署恶意模块。首先,病毒从C&C服务器接收主加载器 MainProShell.dll。病毒将这个主加载器注入到系统进程 Explorer.exe 中。MainProShell.dll 是次加载器,主要负责将 gox64.dllpayload)随机注入到其他的系统进程以执行恶意操作。同时,病毒还部署了 MainProcKeeper.dll,这是一个看门狗模块,被注入到winlogon.exe。其主要职责是监控 MainProShell.dll 的运行状态,确保它在系统中持续活跃。

 

防止 MainProShell.dll 遭遇注入失败或运行中断,MainProcKeeper.dll 会将MainProShell.dll重新注入到explorer进程中,这大大增加了恶意软件的持久性。这种复杂的注入策略,不仅提高了病毒的隐蔽性,同时也使其更加抗干扰,难以被杀毒软件侦测和清除。从C&C服务器接收恶意模块MainProShell.dll并注入到explorer进程中的相关代码,如下图所示:

7f7b4d7e2562a43d8fb02c4da6da1bbf.png

注入MainProShell.dll模块

 

将看门狗模块从资源中读出并注入到winlogon中执行 ,相关代码,如下图所示:

c0873d8e935132a538cf64877f185612.png

注入看门狗模块

 

MainProShell.dll模块中会创建一个互斥体,如果MainProShell.dll没有运行,互斥体就会失效,所以在看门狗模块中会循环判断互斥体是否存在,如果不存在就将MainProShell.dll重新注入到explorer进程中,相关代码,如下图所示:

e8210cd48802b51b0b551651ccfc910d.png

看门狗

 

第二加载器阶段,MainProShell.dll会从将gox64.dll从资源节区中取出,并注入到随机的系统进程中,相关代码,如下图所示:

4ef7eb4cceb79379664c43a3cc769eac.png

注入gox64.dll模块

 

在恶意模块gox64.dll中,会请求C&C服务器配置信息,根据配置信息来下载执行各种恶意模块,如:URL劫持、DNS劫持、广告推广、刷量控制、传奇登陆器劫持、反调试等恶意模块。除此之外,该模块还具备多种对抗手段,如反虚拟机,检测杀毒软件,通过hook系统API来隐藏真实的域名信息等。反虚拟机会通过GetSystemFirmwareTable函数来检测是否在虚拟机中,相关代码,如下图所示:

23b896d9f31198c9347cacc4fd8e87f8.png

检测虚拟机代码

 

还会检测用户电脑中是否存在杀毒软件,相关代码,如下图所示:

8cf079d8460fe51f5d7c5f7100964d2c.png

检测是否存在杀毒软件

 

通过HOOK 网络相关API来隐藏真实的域名,HOOK之后,调用该函数时传入无效的域名,但是在内部HOOK代码处修改域名为正常域名,HOOK相关代码,如下图所示:

01c34d8c53cf7d1adfbcce2b284bf8ba.png

hook网络相关API

 

InternetOpenUrlW函数为例,HOOK之后,在HOOK函数内部会修改无效的域名为正常域名,相关代码,如下图所示 :

69f43c946b542ce673362c0ce1f5d66d.png

InternetOpenUrlW HOOK代码

 

C&C服务器接收执行恶意模块,相关代码,如下图所示:

cacfe5b2d96f25e40b462173de442232.png

接收执行C&C服务器下发恶意模块

 

解密后的配置信息中有数十个模块,部分配置信息,如下图所示:

7ea4833063739acff0e6f19536797dcf.png

恶意模块配置信息

 

火绒安全工程师获取到的部分恶意模块列表,如下图所示:

f6f72ec2f966196e097400f69386475d.png

部分恶意模块列表

   

内存加载C&C服务器下发的恶意模块,相关代码,如下图所示:

73c1b005e3ca9a2549b2d871ff821cb2.png

内存加载恶意模块



恶意模块分析

由于病毒的恶意模块数量众多,以下仅挑选有代表性的恶意模块进行详细分析。

 

桌面图标广告推广模块

该模块负责向用户电脑桌面中添加广告,模块被加载后,会先从C&C服务器获取配置信息,再根据配置信息来创建推广的图标,获取配置信息,相关代码,如下图所示:

54e449f39437344983e80684b89da0a2.png

获取配置信息

 

获取到的配置信息,如下图所示:

7ba33a1a25ab628e16919c681804f9d8.png

配置信息

 

获取到配置信息之后,该模块就会根据配置信息在桌面创建推广的广告图标,相关代码,如下图所示:

da3889b648b308f3b2999631e8e24c85.png

创建桌面广告图标

 

创建的桌面图标,如下图所示:

316eaf12a8334fc271c1fc78ed80bf7f.png

创建的桌面图标

 

浏览器书签广告推广模块

 

 

该模块的功能是向用户浏览器书签中添加广告,模块被加载后,会先从C&C服务器获取配置信息,再根据配置信息来向用户浏览器书签中添加广告。从C&C服务器获取配置信息,相关代码,如下图所示:

9434cf215a669a258fe10b1fd6d28c5f.png

C&C服务器获取配置信息

 

获取到的配置信息,如下图所示:

400e54a67988ef80679e7b30f8a7a6e4.png

获取到的配置信息

 

获取到配置信息之后,再根据配置信息来向相关浏览器中添加书签广告,相关代码,如下图所示:

c4f07aaf393f183b4a655d718f6c94a3.png

向浏览器添加书签广告

 

被添加书签广告之后的浏览器,如下图所示:

5f11f14e50f6db977f693612e4d829f3.png

被添加书签广告之后的浏览器

 

刷量控制模块

 

 

 

该模块的功能是根据C&C服务器的配置信息,对指定的URL访问进行刷访问量,模块启动之后,会先从C&C服务器获取要刷流量的URL,相关代码,如下图所示:

96c400aacb7a70d9c8f2fbcc0dea55e6.png

C&C服务器获取配置信息

 

获取到的配置信息,如下图所示:

6e80c5e288cb01211cb1b600221ec8fb.png

配置信息

 

将接收到要刷量的URL组成html代码,在后台进行刷量,相关代码,如下图所示:

508b80dbe14cedfccd02b21a4201c515.png

html代码

 

通过fiddler抓包工具可以监控到流量数据,如下图所示:

c3822b86251a08094e8d75acb8832d26.png

fiddler流量监控 

DNS劫持模块

DNS劫持模块启动之后,首先获取DNS缓存服务的pid,然后将劫持模块注入到DNS缓存服务中,相关代码,如下图所示:

1e92c351db1577ce423d42343e8d89f5.png

将劫持模块注入到DNS缓存服务中

 

在注入的劫持模块中,通过HOOK WSARecvMsg函数来监控和修改系统中所有DNS请求,HOOK相关代码,如下图所示:

fc705483dd438724d7d60e0869d5be32.png

HOOK WSARecvMsg函数

 

HOOK WSARecvMsg函数中对DNS请求进行劫持,相关代码,如下图所示:

7d59d1ee090b28ad287e4d173ab0526b.png

DNS劫持

 

URL劫持模块

URL劫持模块启动后,会先从C&C服务器获取劫持相关的配置信息,相关代码,如下图所示:

945c1c38438d29f6c2ec89637707b707.png

获取劫持相关的配置信息

 

获取到的部分配置信息,如下图所示:

ae2eb34896c50fbb90b5e9f4140b414b.png

获取到的部分配置信息

 

获取到劫持相关的配置信息之后,会将URL劫持相关的模块,注入到浏览器进程进行劫持,相关代码,如下图所示:

65e0cb4b5352db2887ec6dfa7e3c724f.png

注入劫持模块

 

传奇登陆器劫持模块

该模块主要负责劫持用户电脑中的传奇登陆器,来推广指定的传奇。模块启动之后,会先从C&C服务器中获取相关配置文件,再根据配置文件进行检测,如果存在指定的传奇客户端就进行劫持。获取配置信息相关代码,如下图所示:

fbb7c02b069cb2785730b09f0412954e.png

获取配置信息代码

 

由于安全工程师在调试的过程中并未获取到相关配置信息,无法进行动态调试。以下是分析人员通过对恶意文件的静态分析的结果,分析发现配置信息中存在几个字段:icomd5filemd5等字段 ,病毒通过这几个字段信息来确定要劫持的登陆器,以icomd5为例,模块会遍历系统中的进程并计算图标文件的MD5值来判断是否为劫持的登陆器,计算图标MD5相关代码,如下图所示:

6eb9152d5dbbf0dd1a8418c2e562f611.png

计算图标md5

 

确认是要劫持的登陆器之后,会将劫持模块注入到目标进程中,相关代码,如下图所示:

5b75014b0bdac7e5e257cd2fdb6153ca.png

注入劫持模块

 

在劫持模块中会对ShowWindow 函数进行HOOK,相关代码,如下图所示:

b007c46c3dfa2ec2aaa11cd1264a7ef9.png

HOOK ShowWindow

 

HookShowWindow中,会创建一个新的窗口来代替代替原窗口,相关代码,如下图所示:

7cb328087c6c675d06ae50b6043c69cb.png

劫持登陆器界面

 

反调试模块 

反调试模块启动后,会通过枚举Windows窗口的类名和标题来检测是否存在特定的调试软件,相关代码,如下图所示:

7f03208ce9578bcf7583dabae2fba186.png

检测用户电脑中的软件

会检查的窗口标题和类名列表,如下图所示:

2595ad13fef0b65ce7a98dd095754016.png

会检查的窗口标题和类名列表

 

二、附录

C&C

 

0666d2f07fe9381726ddc0db72fe8d6e.png

 

HASH:

 

 

8f3882ed28cd6364b233b39dbcb77327.png

安全无忧,一键开启

全面提升您的系统防护