400电话
微信咨询
咨询时间: 9:30-18:30
400-998-3555
感谢您访问本站!我们检测到您当前使用的是 IE 浏览器。由于微软已正式终止对 IE 浏览器的技术支持,本站现已不再兼容该浏览器,可能会导致页面显示异常或功能无法使用。为了获得最佳体验,建议您:使用 Chrome、Edge、Firefox 等现代浏览器访问。
x

警惕盗版电影投毒!利用Go编译器隐匿DCRat后门

  • 作者:火绒安全

  • 发布时间:2025-12-01

  • 阅读量:408

近期,有用户在尝试通过非正规渠道下载一部“蓝光电影”时,触发了“安全警报”。经核查,该电影资源捆绑了高度危险的DCRat后门病毒,其利用了一系列复杂技术手段试图绕过安全检测。这一事件再次揭示了一个残酷的现实:盗版软件、影视资源已成为黑客投毒、窃取信息的温床。攻击者正是利用了用户寻求“免费午餐”的心理,在热门资源中精心布置陷阱。


该病毒利用快捷方式中填写CMD命令的方式执行字幕文件中的PowerShell代码,并通过下载 Go语言编译器现场编译Go代码执行PowerShell命令,且其Go代码中含有随机密钥与对应的加密数据,从而试图躲避安全软件检测。随后利用计划任务形成持久化,最终会加载DCRat后门病毒,其拥有加载任意插件的功能,火绒安全软件可对上述木马进行拦截查杀,建议用户将火绒安全软件更新至最新版本。


查杀图.png

查杀图



流程图如下:

流程图.png

流程图

一、样本分析

此样本在释放终 DCRat 后门之前会利用行数定位字幕文件与其他文件中藏匿的 PowerShell 或 CMD 代码。


文件行数对应表.png



其中字幕文件名为Part2.subtitles.srt,发现利用PotPlayer加载该字符文件时还是会出现藏匿在字幕文件中的代码。


字幕中的代码.png

字幕中的代码


1.1脚本阶段

文件构成与目的:首先样本为显性的两个快捷方式与三个隐藏属性的文件,其中两个快捷方式图标分别为光盘与文件夹,试图让受害者认为是启动器和文件夹,从而使用户主动点击。其中的指令都是提取出Part2.subtitles.srt字幕文件中第100行至103行代码,随后利用cmd执行。


隐藏文件Cover.jpg与Photo.jpg分别为压缩包与文件数据包,其文件中包含持久化脚本与DCRat后门病毒数据。


文件结构与快捷方式


字幕文件中的四行CMD指令是利用PowerShell执行字幕文件中第2501行至第2530行的代码,其中利用乘法、拼接以及函数别名的方式实施了弱混淆处理。


字幕文件中 第100行至第103行指令



下图是将会执行的 30 行PowerShell代码图与注释图,该代码主要功能是将字幕文件中被加密数据(PowerShell 代码),利用AES算法解密后写入至Cache_{GUID}.ps1文件中,随后执行。其文件名中Cache_后为随机的 GUID,每次生成时都不相同。



字幕文件中 第2501行至第2530行与注释版.png


最终会解密出 5 个PowerShell文件并执行,分别为创建文件夹、创建计划任务、提取 Photo.jpg中文件、解压Cover.jpg文件、解压One Battle After Another.m2ts文件。


注意:

获取到的样本中并没有One Battle After Another.m2ts文件。

Photo.jpg与Cover.jpg中的文件提取出来是一样的。


5 个 PowerShell 文件.png

5 个 PowerShell 文件


上文所提到的计划任务为cmd.exe启动RealtekCodec.bat批处理文件,该批处理文件是用于执行RealtekDriverInstall.ps1脚本。


创建执行 PowerShell 脚本的计划任务.png

创建执行 PowerShell 脚本的计划任务



RealtekDriverInstall.ps1 脚本:

1.首先会识别Defender是否存在,若存在则创建计划任务 RealtekDriverInstallerDetective,用于启动RealtekAudioSyncHelper.bat批处理文件。


2.下载 Go 编译器并解压。


3.提取RealtekAudioService.db中第899行至第9999行代码,将其利用随机密钥加密,随后将密钥与被加密数据替换至RealtekAudioService.go文件中。


4.随后利用 Go 编译器编译,编译出audio_diag_{GUID}.exe。


5.创建计划任务,用于持久化启动audio_diag_{GUID}.exe。



RealtekAudioSyncHelper.bat 脚本:

1.执行Part3.Resolution文件中第1001行至第1030行指令(PowerShell 执行)


2.对part{1~3}.txt进行Base64解码,并加载DCRat后门病毒。



解码加载后门病毒.png

解码加载后门病毒



下载 Go 编译器并解压:

获取 Go 编译器.png

获取 Go 编译器


构建 Go 脚本:获取第899行至第9999行代码,随后将随机数作为异或密钥并加密并替换 Go 脚本中的加密数据与密钥。


加密与替换



删除之前编译出的可执行程序 audio_diag_{guid}.exe,随后再次对 Go 脚本进行编译。


编译.png

编译


删除之前的计划任务,重新创建新的计划任务,目的为登录时打开执行audio_diag_{guid}.exe。


创建计划任务.png

创建计划任务


随后会执行第899行至第9999行代码,随后将{GUID}.1.ver0x{十六进制数字}.db文件进行解码,数据分别是:

  • DCRat后门病毒


  • 启动器


  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe


  • Test_RunTime.Program


  • ExeTTTT


  • invoke


  • load


  • Gettype


  • GetMethod


关闭PowerShell的AMSI(反恶意软件扫描接口),从而使后续加载DCRat后门病毒时不会被Windows Defender(Windows安全中心)或其他杀毒软件扫描。


关闭PowerShell的AMSI


随后利用注入器将DCRat后门病毒注入至aspnet_compiler.exe。


利用注入器注入 DCRat 后门.png

利用注入器注入 DCRat 后门


1.2注入器

初始阶段将加载 Load.dll,用于后续调用 API。


Load.dll 模块中函数构造.png

Load.dll 模块中函数构造


下图为整个进程镂空的逻辑:


1.首先会创建阻塞进程(aspnet_compiler.exe),用于之后将 DCRat 后门病毒写入至该傀儡进程。


2.随后获取DCRat后门病毒的ImageBase(基址)。


3.随后构造Context调用Wow64GetThreaddContext函数获取傀儡进程中主线程的整数类寄存器(例如AX、BX)。


4.获取傀儡进程中PEB中的ImageBaseAddress(实际模块基址)。


5.若两者相同则利用ZwUnmapViewOfSection释放那片内存。


6.获取SizeOfImage与SizeOfHeaders,前者用于分配DCRat后门病毒所需要大小的内存,后者用于写入PE头时指定大小。


7.将所有Section(区段)数据写入傀儡进程中。


8.将注入的模块基址写入到傀儡进程的PEB中的ImageBaseAddress,进行修补。


9.获取DCRat后门病毒入口点,将入口点地址通过Wow64SetThreadContext函数写入至 EAX。


10.最后ResumeThread使进程继续下去。


11.最终执行注入的DCRat后门病毒。


进程镂空的逻辑.png

进程镂空的逻辑


1.3 DCRat后门

后门入口点如下图所示:休眠指定秒数、解密字符串(远控服务器链接、端口、配置开关等)、验证密钥、创建互斥体、伪装安装、设置不休眠等步骤。

后门入口主函数.png

后门入口主函数


下图为解密、互斥体、模拟安装、设置不休眠的逻辑,其中不休眠利用 SetThreadExecutionState 传参 ES_DISPLAY_REQUIRED | ES_CONTINUOUS 实现。


解密、互斥体、模拟安装、设置不休眠的逻辑.png

解密、互斥体、模拟安装、设置不休眠的逻辑



连接远程服务器进入消息主循环:

1.若存在域名下载链接,则动态获取远控服务器的 IP 地址与端口,其格式为 xx.xx.xx.xx:port1:port2:port3 类似。


2.通过配置中的远控服务器链接列表和端口配置,逐个进行连接操作,若连接成功,则开始远控准备。此次配置为 thepiratebay.st,thetorpiratebay.st 与 443。


3.随后发送系统信息,包含计算机标识、用户名、操作系统、执行程序路径、版本、管理员权限、组名等信息。


4.随后进入消息主循环。


连接远程服务器进入消息主循环.png

连接远程服务器进入消息主循环



消息循环与消息处理函数:在接收到远控服务器所发出的指令之后,该病毒将会进入消息处理函数,该函数中包含三种指令。


· pong:发送 pong 信息至远控服务器。


· savePlugin:将插件数据保存至注册表中。


· plguin:加载插件或发送 sendPlugin 消息至远控服务器。


消息主循环与消息处理函数.png

消息主循环与消息处理函数



最终加载下发的插件数据,并调用该插件中的 Plugin.Plugin 类中的 Run 方法,从而执行插件。

加载插件和调用 Run 方法.png

加载插件和调用 Run 方法


本次分析的攻击链清晰地揭示,此类利用盗版电影资源投毒的威胁已高度复杂化和自动化。


火绒安全在此提醒广大用户:


警惕可疑文件:对下载资源中的非常规文件(如异常的快捷方式、脚本文件等)保持警惕,切勿轻易点击。


提高安全意识:请务必通过正规渠道观看影视内容。盗版资源不仅是版权问题,更是信息安全的重灾区,其中捆绑的恶意软件所带来的损失远超其“免费”的价值。


保持火绒安全软件更新:建议使用并及时更新火绒安全软件,以应对不断演变的威胁。


二、附录

C&C:

cc.png

HASH:

HASH.png


安全无忧,一键开启

全面提升您的系统防护