-
UID:17777
-
- 注册时间2007-05-02
- 最后登录2026-01-18
- 在线时间19418小时
-
- 发帖853839
- 搜Ta的帖子
- 精华0
- 飞翔币125777
- 威望325912
- 飞扬币3863986
- 信誉值8
-
访问TA的空间加好友用道具
- 发帖
- 853839
- 飞翔币
- 125777
- 威望
- 325912
- 飞扬币
- 3863986
- 信誉值
- 8
|
[font=-apple-system, BlinkMacSystemFont, "]近期,有用户在尝试通过非正规渠道下载一部“蓝光电影”时,触发了“安全警报”。经核查,该电影资源捆绑了高度危险的DCRat后门病毒,其利用了一系列复杂技术手段试图绕过安全检测。这一事件再次揭示了一个残酷的现实:[font=-apple-system, BlinkMacSystemFont, "]盗版软件、影视资源已成为黑客投毒、窃取信息的温床[font=-apple-system, BlinkMacSystemFont, "]。攻击者正是利用了用户寻求“免费午餐”的心理,在热门资源中精心布置陷阱。[font=-apple-system, BlinkMacSystemFont, "]该病毒利用快捷方式中填写CMD命令的方式执行字幕文件中的PowerShell代码,并通过下载 Go语言编译器现场编译Go代码执行PowerShell命令,且其Go代码中含有随机密钥与对应的加密数据,从而试图躲避安全软件检测。随后利用计划任务形成持久化,最终会加载DCRat后门病毒,其拥有加载任意插件的功能,火绒安全软件可对上述木马进行拦截查杀,建议用户将火绒安全软件更新至最新版本。查杀图 [font=-apple-system, BlinkMacSystemFont, "]流程图如下: 流程图 [font=-apple-system, BlinkMacSystemFont, "]一、样本分析[font=-apple-system, BlinkMacSystemFont, "]此样本在释放最终 DCRat 后门之前会利用行数定位字幕文件与其他文件中藏匿的 PowerShell 或 CMD 代码。[font=-apple-system, BlinkMacSystemFont, "]其中字幕文件名为Part2.subtitles.srt,发现利用PotPlayer加载该字符文件时还是会出现藏匿在字幕文件中的代码。 字幕中的代码 [font=-apple-system, BlinkMacSystemFont, "]1.1脚本阶段[font=-apple-system, BlinkMacSystemFont, "]文件构成与目的:[font=-apple-system, BlinkMacSystemFont, "]首先样本为显性的两个快捷方式与三个隐藏属性的文件,其中两个快捷方式图标分别为光盘与文件夹,试图让受害者认为是启动器和文件夹,从而使用户主动点击。其中的指令都是提取出Part2.subtitles.srt字幕文件中第100行至103行代码,随后利用cmd执行。隐藏文件Cover.jpg与Photo.jpg分别为压缩包与文件数据包,其文件中包含持久化脚本与DCRat后门病毒数据。 文件结构与快捷方式 [font=-apple-system, BlinkMacSystemFont, "]字幕文件中的四行CMD指令是利用PowerShell执行字幕文件中第2501行至第2530行的代码,其中利用乘法、拼接以及函数别名的方式实施了弱混淆处理。 字幕文件中 第100行至第103行指令 [font=-apple-system, BlinkMacSystemFont, "]下图是将会执行的 30 行PowerShell代码图与注释图,该代码主要功能是将字幕文件中被加密数据(PowerShell 代码),利用AES算法解密后写入至Cache_{GUID}.ps1文件中,随后执行。其文件名中Cache_后为随机的 GUID,每次生成时都不相同。 字幕文件中 第2501行至第2530行与注释版 [font=-apple-system, BlinkMacSystemFont, "]最终会解密出 5 个PowerShell文件并执行,分别为创建文件夹、创建计划任务、提取 Photo.jpg中文件、解压Cover.jpg文件、解压One Battle After Another.m2ts文件。[font=-apple-system, BlinkMacSystemFont, "]注意:[font=-apple-system, BlinkMacSystemFont, "]获取到的样本中并没有One Battle After Another.m2ts文件。[font=-apple-system, BlinkMacSystemFont, "]Photo.jpg与Cover.jpg中的文件提取出来是一样的。5 个 PowerShell 文件 [font=-apple-system, BlinkMacSystemFont, "]上文所提到的计划任务为cmd.exe启动RealtekCodec.bat批处理文件,该批处理文件是用于执行RealtekDriverInstall.ps1脚本。创建执行 PowerShell 脚本的计划任务 [font=-apple-system, BlinkMacSystemFont, "]RealtekDriverInstall.ps1 脚本:[font=-apple-system, BlinkMacSystemFont, "]1.首先会识别Defender是否存在,若存在则创建计划任务 RealtekDriverInstallerDetective,用于启动RealtekAudioSyncHelper.bat批处理文件。[font=-apple-system, BlinkMacSystemFont, "]2.下载 Go 编译器并解压。[font=-apple-system, BlinkMacSystemFont, "]3.提取RealtekAudioService.db中第899行至第9999行代码,将其利用随机密钥加密,随后将密钥与被加密数据替换至RealtekAudioService.go文件中。[font=-apple-system, BlinkMacSystemFont, "]4.随后利用 Go 编译器编译,编译出audio_diag_{GUID}.exe。[font=-apple-system, BlinkMacSystemFont, "]5.创建计划任务,用于持久化启动audio_diag_{GUID}.exe。[font=-apple-system, BlinkMacSystemFont, "]RealtekAudioSyncHelper.bat 脚本:[font=-apple-system, BlinkMacSystemFont, "]1.执行Part3.Resolution文件中第1001行至第1030行指令(PowerShell 执行)[font=-apple-system, BlinkMacSystemFont, "]2.对part{1~3}.txt进行Base64解码,并加载DCRat后门病毒。解码加载后门病毒 [font=-apple-system, BlinkMacSystemFont, "]下载 Go 编译器并解压:获取 Go 编译器 [font=-apple-system, BlinkMacSystemFont, "]构建 Go 脚本:[font=-apple-system, BlinkMacSystemFont, "]获取第899行至第9999行代码,随后将随机数作为异或密钥并加密并替换 Go 脚本中的加密数据与密钥。加密与替换 [font=-apple-system, BlinkMacSystemFont, "]删除之前编译出的可执行程序 audio_diag_{guid}.exe,随后再次对 Go 脚本进行编译。编译 [font=-apple-system, BlinkMacSystemFont, "]删除之前的计划任务,重新创建新的计划任务,目的为登录时打开执行audio_diag_{guid}.exe。创建计划任务 [font=-apple-system, BlinkMacSystemFont, "]随后会执行第899行至第9999行代码,随后将{GUID}.1.ver0x{十六进制数字}.db文件进行解码,数据分别是:- DCRat后门病毒
- 启动器
- C:WindowsMicrosoft.NETFrameworkv4.0.30319aspnet_compiler.exe
- Test_RunTime.Program
- ExeTTTT
- invoke
- load
- Gettype
- GetMethod
[font=-apple-system, BlinkMacSystemFont, "]关闭PowerShell的AMSI(反恶意软件扫描接口),从而使后续加载DCRat后门病毒时不会被Windows Defender(Windows安全中心)或其他杀毒软件扫描。 关闭PowerShell的AMSI [font=-apple-system, BlinkMacSystemFont, "]随后利用注入器将DCRat后门病毒注入至aspnet_compiler.exe。利用注入器注入 DCRat 后门 [font=-apple-system, BlinkMacSystemFont, "]1.2注入器[font=-apple-system, BlinkMacSystemFont, "]初始阶段将加载 Load.dll,用于后续调用 API。 Load.dll 模块中函数构造 [font=-apple-system, BlinkMacSystemFont, "]下图为整个进程镂空的逻辑:[font=-apple-system, BlinkMacSystemFont, "]1.首先会创建阻塞进程(aspnet_compiler.exe),用于之后将 DCRat 后门病毒写入至该傀儡进程。[font=-apple-system, BlinkMacSystemFont, "]2.随后获取DCRat后门病毒的ImageBase(基址)。[font=-apple-system, BlinkMacSystemFont, "]3.随后构造Context调用Wow64GetThreaddContext函数获取傀儡进程中主线程的整数类寄存器(例如AX、BX)。[font=-apple-system, BlinkMacSystemFont, "]4.获取傀儡进程中PEB中的ImageBaseAddress(实际模块基址)。[font=-apple-system, BlinkMacSystemFont, "]5.若两者相同则利用ZwUnmapViewOfSection释放那片内存。[font=-apple-system, BlinkMacSystemFont, "]6.获取SizeOfImage与SizeOfHeaders,前者用于分配DCRat后门病毒所需要大小的内存,后者用于写入PE头时指定大小。[font=-apple-system, BlinkMacSystemFont, "]7.将所有Section(区段)数据写入傀儡进程中。[font=-apple-system, BlinkMacSystemFont, "]8.将注入的模块基址写入到傀儡进程的PEB中的ImageBaseAddress,进行修补。[font=-apple-system, BlinkMacSystemFont, "]9.获取DCRat后门病毒入口点,将入口点地址通过Wow64SetThreadContext函数写入至 EAX。[font=-apple-system, BlinkMacSystemFont, "]10.最后ResumeThread使进程继续下去。[font=-apple-system, BlinkMacSystemFont, "]11.最终执行注入的DCRat后门病毒。
|