首页 > 安全资讯 > 正文

银狐木马终于还是对微信下手了

近期,360反病毒安全团队捕获到一类活跃度极高的恶意样本。攻击者将目标锁定在国民级应用——微信身上,利用经典的“DLL劫持”技术实施所谓的“白加黑”攻击。与以往常见的针对version.dll或userenv.dll两个文件的劫持不同,此次攻击者选择劫持的是更为隐蔽的系统库文件——cryptbase.dll以及 d3dcompiler_74.dll。攻击者通过钓鱼邮件、捆绑软件等方式,将这些精心构造的恶意DLL文件释放到用户的微信安装目录下。

技术分析

运行流程概述

由于Windows系统的DLL加载机制是按照特定的路径顺序进行搜索所以当用户启动微信程序时,这些恶意文件会先于正常系统文件被加载,导致微信进程在毫不知情的情况下成为木马的“宿主”。这不仅使得恶意代码能够绕过大量基于白名单的安全防护,更让黑客获得了稳定的系统启动机会,从而对受害主机实施长期的远程控制、数据窃取。

本文将针对该攻击样本的劫持原理、执行流程进行深入分析。

 

1. 木马攻击流程示意图

劫持机制说明

本次分析的示例样本路径如下:

C:\Program Files\Tencent\Weixin\4.1.4.19\cryptbase.dll

以上路径所指向的cryptbase.dll文件Windows操作系统的一个核心系统库文件,原本属于Base Cryptographic API的一部分。包括微信在内的许多应用程序都会在运行时调用这个库文件进行加密、解密或证书验证等操作。系统中正常cryptbase.dll文件,通常存在于以下两个目录中:

C:\Windows\System32\

C:\Windows\SysWOW64\

当微信主程序WeChat.exe启动崩溃检查组件crashpad_handler.exe时,会尝试加载一些DLL文件,其中就包含上述这个cryptbase.dll文件。但在这个加载过程中,并没有明确指定该待加载的DLL文件的绝对路径,而是完全依赖于Windows系统的默认搜索顺序,对这些待加载文件进行查找。

 

2. 微信组件按系统默认顺序加载被劫持的DLL文件 

根据Windows的DLL加载机制,默认的搜索顺序通常如下:

1. 应用程序所在的目录(如本案例中的D:\Program Files\Tencent\WeChat);

2. 系统目录(通常为C:\Windows\System32);

3. 16位系统目录(通常为C:\Windows\System);

4. Windows目录(通常为C:\Windows);

5. 当前工作目录;

6. 环境变量PATH中列出的其他目录。

显然,在未指定DLL文件绝对路径的前提下,木马所存在的路径是最优先被加载的位置,会先于系统的正常文件被加载。

 

3. DLL劫持攻击原理示意图

代码分析

用于劫持的木马DLL文件,会在启动后先从其内置数据中解密出一个URL:

hxxp://augvertu[.]com/xxxca.txt

其相关解密代码如下:

 

4. 解密处的URL链接

解密后,木马会继续访问这个拿到的URL,并解析服务器返回的数据,将其中#ST##ed#之间的数据段先用Base64解码后,再进行Shellcode解密。

 

5. 解密从服务器获取到的数据

解密出来的Shellcode内容,其代码和数据部分会被黑客预先用codemark 进行分隔。其中,数据区块前部主要为执行参数、执行条件,以及一些标志位,而后部则是逆序处理过的域名,形如:

 

6. 解密出数据的内容 

完成后,木马会再度根据解密出的配置信息进行远程的C2连接:

 

7. 与远端C2服务器进行连接

连接成功后,会再度从该C2服务器中拉取所需的加密数据:

 

8. 从C2服务器上拉取加密数据

对于请求到的内容,通过如下算法进行解密:

 

9. C2服务器数据解密代码

解密后的代码可以执行包括远程控制在内的各种操作,其中也包括上线模块.dll以及登录模块.dll等。

 

10. 解密出的远程控制代码

接下来,木马会将合法的tracerpt.exe程序作为宿主,以进程注入的方式在其内存空间中开辟一段代码执行空间,并写入恶意Shellcode代码,完成写入操作后,再唤醒宿主进程的主线程,这样宿主进程便会直接跳转去执行注入内存当中的Shellcode恶意代码。

 

11. 木马对tracerpt.exe进行注入 

木马会将解密后的恶意代码写入注册表当中,此后木马会直接读取注册表中存储的恶意代码,并加载到内存当中执行,属于典型的无文件攻击方式。猜测这一步骤是为了防止对C2服务器的网络访问被阻断,使用本地注册表来保障对Payload的随时调取。

 

12. 将恶意代码数据写入注册表当中备份 

注册表中所保存的Shellcode代码是一个经典的x64反射式DLL加载器,其主要功能是在内存中加载一个黑客指定的可执行程序。

 

13. 注册表中保存的Shellcode数据 

而在解密获取到的第二段Shellcode中,包含了多个功能模块。其主要功能为:检测敏感软件窗口信息、获取剪贴版信息、键盘记录等。

完成后,木马会再度使用远程线程注入技术,将一段新的Shellcode及相关数据注入系统进程svchost.exe中并执行。

 

14. 木马对svchost.exe进程进行远程线程注入 

这段注入的Shellcode代码会进行截屏、清除系统事件日志、导出函数、加载傀儡进程,以及检测安全软件等操作。

 

15. 被检测的安全软件列表

安全提醒与防护建议

360安全终端可直接对该木马进行有效查杀。

 

16. 360安全终端查杀木马

针对此类利用微信目录进行DLL劫持的攻击,建议采取以下措施进行排查:

自我排查

检查您的微信安装目录。如果在安装时未进行指定,则安装路径通常位于:

C:\Program Files (x86)\Tencent\WeChat\[版本号]\

在安装目录下查看是否存在以下文件:

cryptbase.dll

d3dcompiler_74.dll

上述文件均为Windows系统组件,正常情况下不会出现在微信的安装目录下,而应位于C:\Windows\System32目录中。如果在微信目录下发现这些文件,您的电脑有极大概率已被植入木马。

处置方案

一旦发现微信可能被感染,可按照如下方案进行处置:

l终止进程:立即在任务管理器中结束所有 WeChat.exe 进程。

l删除文件:手动删除微信目录下的上述可疑 DLL 文件。

l全盘杀毒:使用有效的杀毒软件进行全盘扫描,查杀可能残留的释放器(Dropper)或其他恶意组件。目前,360安全卫士无需升级即可查杀和拦截该类木马。

l修改密码:考虑到木马可能具有键盘记录或窃密功能,建议在清除病毒后修改微信及相关敏感账号的密码。

日常防范建议

此外,建议所有用户增强安全意识,对此类攻击进行日常防范。

l下载渠道:务必通过官网下载软件安装包,避免使用第三方下载站或不明来源的“绿色版”“破解版”软件。

l开启文件扩展名显示:防止攻击者利用“双重后缀名”(如 readme.txt.exe)或伪装图标进行欺诈。

l安装可靠的安全软件:对于安全软件拦截或阻止的程序,不要轻易添加信任运行。

360安全卫士

热点排行

用户
反馈
返回
顶部