“易语言定制”助力黑产,溯源开发者多平台账号
火绒安全
编辑于 2025年04月29日 18:30
近期,火绒安全情报中心监测到一款伪装成 Clash(代理工具)的程序正在网络上传播。该程序的官方网站通过模仿 Clash 的下载页面,诱骗用户下载恶意软件。在安装过程中,该恶意软件会进行 C2 通信并植入持久化后门,进一步窃取敏感信息。经溯源分析,这款恶意软件是由易语言编写的木马,其开发者还提供私人定制易语言服务,为他人的黑灰产活动提供支持。
在此提醒广大用户,一定要从官方或可信渠道下载软件,以免因使用不明来源的程序而导致账号被盗或数据泄露。目前,火绒安全产品可对上述病毒进行拦截查杀,建议广大用户及时更新病毒库以提高防御能力。

Clash 是一款开源的跨平台代理客户端,主要用于网络代理、流量转发及网络规则管理。攻击者会伪装成 Clash 官网来进行钓鱼攻击,其 Clash 介绍、使用方法、注意事项、规则编写等页面通过精心伪造,已致使部分用户中招,造成信息泄露。以下是伪造的网站:https://clash-pc.com/

一、样本分析
流程图如下:

病毒分析
病毒初始样本通过增加体积(膨胀至 100MB+ 以绕过云查杀上传)并伪装签名(无法通过验证)来欺骗用户。为确保恶意程序能在不同环境下顺利执行,病毒还携带了运行库,以防止程序因缺少必要的运行支持而无法正常运行。

首先,样本调用 IsDebuggerPresent
来检测是否处于调试环境,若未在调试器中,则将标志位设为 0,并继续进入主函数的执行流程。

随后,样本跳转至虚拟化代码段执行。该段采用代码虚拟化技术(VMProtect 指令混淆),通过 PKZIP 算法对资源节中的恶意载荷——易语言编译的 Etools.dll1
(易之卫定制版)进行解密。

其 PKZIP 解压算法如下。

接着,样本利用 LoadLibraryA
动态加载已解密的 Etools.dll1
,并调用其导出函数 WhiteTool
,执行流程如下。

Etools.dll1
由易语言编写而成,经特定的黑月编译器优化处理后借助 VMP 技术进行加壳。该病毒会增大自身文件体积,以此绕过云查杀系统的检测并实现上传,同时,它还会通过伪造虚假证书签名来掩盖恶意行径。

深入分析该 DLL 后,发现其主要借助自定义派遣函数来执行恶意代码。其具体功能由参数一决定。以下是其参数一对应的各项功能:
0
:peekmessage
1
:分配内存
2
:写文件
3
:创建进程

其 DLL 的核心逻辑如下:
在释放病毒阶段,依据进程名称来决定执行的功能。由于此时处在释放病毒阶段,作者将功能函数留空(之后在病毒执行阶段添加实际功能)。随后,病毒会释放并执行恶意程序 uok
进程,同时运行 Clash 的 WinRAR 自解压安装程序,以此完成钓鱼过程。

根据进程名执行相应的功能,并释放不同的病毒文件。

之后,病毒运行 Clash for Windows.exe
,执行 WinRAR 自解压的正常 Clash 安装程序,以此完成钓鱼过程。

由于病毒采用了 VMProtect 虚拟化混淆处理,因此采用 Unicorn 进行指令模拟来对其进行分析。


uok.exe
释放后,与 Clash 一样,会将 Etools.dll2
释放到临时目录并加载其导出函数。此时,Etools.dll2
的功能发生了变化,它会释放多个文件到公共文档目录。路径包括:
C:\Users\Public\Documents\QQ\
C:\Users\Public\Documents\123\
- 文件:
audidog.exe
、TASKMAN.exe
、spolsvt.exe
、Mpec.mbt
随后,病毒利用 AppCompatFlags 的兼容性标志,强制目标程序以管理员身份(~ RUNASADMIN)或用户权限(RunAsInvoker)运行,改变 UAC 行为,绕过权限提升提示。

随后,病毒会释放 audidog.exe
、TASKMAN.exe
、spolsvt.exe
、Mpec.mbt
等文件,并通过调用 ShellExecuteExW
函数来执行 TASKMAN.exe
。

TASKMAN.exe
与 Clash.exe
加载方式相同,均采用释放 Etools.dll3
的方式,并加载其导出函数 whitetool
函数。通过对进程名匹配来执行相应函数,之后借助线程注入(指令模拟)的方式执行 spolsvt.exe
,同时启动 audidog.exe
(进程守护程序)。

注入到 spolsvt.exe
进程中的恶意代码主要实现以下功能:
- 构造路径并释放病毒文件。
- 调用
fn_dispatch()
函数对路径、资源或注册表进行设置,或执行模拟行为。
- 从 PNG 文件中提取 payload,并调用
fn_thread_inject()
函数,将某些执行体(如 EXE 文件)注入到其他线程中,以实现后门功能。

病毒会再次释放相关文件,并通过注入 svcoth.exe
来实现剪贴板监听功能,其病毒文件如下。

后门分析 & 剪贴板
病毒通过二次注入到 spolsvt.exe
实现后门功能,开辟可读、可写、可执行的内存,以执行恶意代码。

将病毒 dump 出来后发现其为 PE 结构的 DLL,深入分析发现其后门功能包括以下内容:
- 0x00 关机注销重启:通过
ExitWindowsEx
函数实现关机、重启、注销的调用。
- 0x01 卸载后门:删除服务项、删除病毒文件。
- 0x02 修改后门地址:病毒将 Host 字段写入注册表,并通过修改注册表进行修改。
- 0x03 修改备注:修改注册表以响应病毒服务端的备注。
- 0x04 清理日志:通过有针对性地删除系统中“Application”(应用程序)、“Security”(安全)及“System”(系统)这三类关键事件日志,以清理自身的攻击轨迹。
- 0x05 下载执行 与 0x06 下载执行2:通过网络读取 URL,下载文件内容并执行其进程。
- 0x07 打开 url 默认打开 与 0x08 打开 url 无窗口:通过注册表获取 IE 路径,并利用 IE 打开指定网址。
- 0x09 创建进程:通过
CreateProcessA
或 ShellExecuteExA
打开指定进程。
- 0x0A 发送弹窗:通过创建线程的方式执行服务端发来的弹窗命令。
- 0x0B 进程列表:通过系统 API 获取系统进程列表,并匹配相关进程名称。
- 0x0D 开启网络代理 与 0x0E 关闭网络代理:网络代理以插件形式执行,通过内存加载 DLL 的方式,调用其导出函数
OpenProxy
开启代理,调用 CloseProxy
关闭代理。
- 0x0F 插件执行:通过分配可读、可写、可执行的内存,并以内存加载 DLL 的方式修复 PE,随后调用导出函数
PluginMe
来实现插件的加载。
- 0x75 修改启动项:通过修改注册表
SOFTWARE\Microsoft\Windows\CurrentVersion\Run
实现对系统的持久化操作。
- 获取剪贴板记录:通过调用系统相关的剪贴板 API 实现对剪贴板的读取。

二、溯源分析
对病毒中的“易之卫(病毒模块 DLL 中的字符串)”进行分析后发现,其为易语言提供免杀支持,主要通过代码体积膨胀以及加 VMProtect 代码虚拟化的方式来逃避杀软检测,并以“卡密”验证的形式公开售卖,同时还在 B 站等平台进行推广。

通过对作者留下的 QQ 号进行溯源分析,发现其与以下信息线索存在关联。

对手机号进一步溯源,发现该手机号存在信息泄露记录。通过支付宝校验收款人功能和账号找回功能,可获取病毒作者的姓名等信息。

三、附录
C&C

HASH

标签:病毒、Clash、病毒分析、火绒安全、代理工具