“易语言定制”助力黑产,溯源开发者多平台账号
-
作者:火绒安全
-
发布时间:2025-04-29
-
阅读量:5
近期,火绒安全情报中心监测到一款伪装成Clash(代理工具)的程序正在网络上传播。该程序的官方网站通过模仿Clash的下载页面,诱骗用户下载恶意软件。在安装过程中,该恶意软件会进行C2通信并植入持久化后门,进一步窃取敏感信息。经溯源分析,这款恶意软件是由易语言编写的木马,其开发者还提供私人定制易语言服务,为他人的黑灰产活动提供支持。在此提醒广大用户,一定要从官方或可信渠道下载软件,以免因使用不明来源的程序而导致账号被盗或数据泄露。目前,火绒安全产品可对上述病毒进行拦截查杀,建议广大用户及时更新病毒库以提高防御能力。
查杀图
Clash是一款开源的跨平台代理客户端,主要用于网络代理、流量转发及网络规则管理。攻击者会伪装成Clash官网来进行钓鱼攻击,其Clash介绍、使用方法、注意事项、规则编写等页面通过精心伪造,已致使部分用户中招,造成信息泄露。以下是伪造的网站:https://clash-pc.com/
伪造Clash官网
一、样本分析
流程图如下:
流程图
病毒分析
病毒初始样本通过增加体积(膨胀至100MB+以绕过云查杀上传)并伪装签名(无法通过验证)来欺骗用户。为确保恶意程序能在不同环境下顺利执行,病毒还携带了运行库,以防止程序因缺少必要的运行支持而无法正常运行。
Clash
首先,样本调用IsDebuggerPresent来检测是否处于调试环境,若未在调试器中,则将标志位设为0,并继续进入主函数的执行流程。
简单反调试
随后,样本跳转至虚拟化代码段执行。该段采用代码虚拟化技术(VMProtect指令混淆),通过PKZIP算法对资源节中的恶意载荷——易语言编译的Etools.dll1(易之卫定制版)进行解密。
释放恶意dll
其PKZIP解压算法如下。
PKZIP算法
解压
接着,样本利用LoadLibraryA动态加载已解密的Etools.dll1,并调用其导出函数WhiteTool,执行流程如下。
加载Etools.dll1
Etools.dll1由易语言编写而成,经特定的黑月编译器优化处理后借助VMP技术进行加壳。该病毒会增大自身文件体积,以此绕过云查杀系统的检测并实现上传,同时,它还会通过伪造虚假证书签名来掩盖恶意行径。
VMP
易语言程序
深入分析该DLL后,发现其主要借助自定义派遣函数来执行恶意代码。其具体功能由参数一决定。以下是其参数一对应的各项功能。
0peekmessage
1分配内存
2写文件
3创建进程
dispatch
其DLL的核心逻辑如下。
在释放病毒阶段,依据进程名称来决定执行的功能。由于此时处在释放病毒阶段,作者将功能函数留空(之后在病毒执行阶段添加实际功能)。随后,病毒会释放并执行恶意程序uok进程,同时运行Clash的WinRAR自解压安装程序,以此完成钓鱼过程。
uok进程
根据进程名执行相应的功能,并释放不同的病毒文件。
dispatch
之后,病毒运行Clash for Windows.exe,执行WinRAR自解压的正常Clash安装程序,以此完成钓鱼过程。
释放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
TASKMAN.exe与Clash.exe加载方式相同,均采用释放Etools.dll3的方式,并加载其导出函数whitetool函数。通过对进程名匹配来执行相应函数,之后借助线程注入(指令模拟)的方式执行spolsvt.exe,同时启动audidog.exe(进程守护程序)。
TASKMAN.exe
线程注入
注入到spolsvt.exe进程中的恶意代码主要实现以下功能。
1.构造路径并释放病毒文件。
2.调用fn_dispatch()函数对路径、资源或注册表进行设置,或执行模拟行为。
3.从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打开指定网址。
打开url
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站等平台进行推广。
售卖易之卫
利用平台推广易之卫
通过在B站上的群号以及病毒文件中的QQ号进行溯源,发现该病毒开发者主要为黑灰产提供定制化技术支持,以此非法牟利。
账号
通过对作者留下的QQ号进行溯源分析,发现其与以下信息线索存在关联。
QQ号信息
对手机号进一步溯源,发现该手机号存在信息泄露记录。通过支付宝校验收款人功能和账号找回功能,可获取病毒作者的姓名等信息。
病毒制作者相关信息
二、附录
C&C:
HASH: