part1
点击上方蓝字关注我们
将二进制空间安全设为"星标⭐️"
第一时间收到文章更新
所谓双模式混淆技术,指的是利用脚本+PE格式进行混合混淆技术,该技术可以导致沙箱执行程序失败, 而且也能够加大分析难度,甚至手动执行都无法成功。
该样本原始文件名为:"Xclient.exe"和"XingCode Unblocker2025.exe", 奇怪的是, 被工具标识为是一个数据文件,而不是一个PE文件, 将其打开后, 可以看到以下内容:
PS C:UsersREM> -join[char[]]((503-426),(-4550+4640),(71128-5595))
MZ?
PS C:UsersREM> ((((((((((((((((((8657-Bxor-8656)-Band2*(8657-Band-8656))-Band((8657-Bxor-8656)-Bor2*(8657-Band-8656)))-Band(((8657-Bxor-8656)-Band2*(8657-Band-8656))-Bor((8657-Bxor-8656)-Bor2*(8657-Band-8656))))+((((8657-Bxor-8656)-Band2*(8657-Band-8656))-Band((8657-Bxor-8656)-Bor2*(8657-Band-8656)))-Bor(((8657-Bxor-8656)-Band2*(8657-Band-8656))-Bor((8657-Bxor-8656)-Bor2*(8657-Band-8656)))))+0)-0)))+0)-0)))+0)-0))))
1
通常,PowerShell 应该忽略不可读字符,但如果尝试在沙盒中使用 PowerShell 执行此文件,会执行不成功。尝试编写一个小脚本以解密上述所有代码片段,但 PE 文件仍然已损坏。
如果从文件中提取ASCII字符串, 会看到一些经典恶意软件的行为特征:
remnux@remnux:/mnt/hgfs/MalwareZoo/20250215$ strings --encoding=l 7c2f2a9a6078d37ee241e43f392f825630016c8ca8416bfd12cd27501b6876d1
以下是列出的一些关键字符串:
schtasks.exe
/create /f /RL HIGHEST /sc minute /mo 1 /tn "
/create /f /sc minute /mo 1 /tn "
SOFTWAREMicrosoftWindowsCurrentVersionRun
.lnk
WScript.Shell
CreateShortcut
TargetPath
WorkingDirectory
Save
[XWorm V5.6]
New Clinet :
UserName :
OSFullName :
USB :
CPU :
GPU :
RAM :
Groub :
https://api.telegram.org/bot
/sendMessage?chat_id=
&text=
powershell.exe
-ExecutionPolicy Bypass Add-MpPreference -ExclusionPath '
-ExecutionPolicy Bypass Add-MpPreference -ExclusionProcess '
http://ip-api.com/line/?fields=hosting
Select * from Win32_ComputerSystem
VirtualBox
SbieDll.dll
rootSecurityCenter2
Select * from AntivirusProduct
SELECT * FROM Win32_VideoController
PING!
pong
shutdown.exe /f /s /t 0
RunShell
StartDDos
StopDDos
StartReport
StopReport
Xchat
Hosts
driversetchosts
Modified successfully!
sendPlugin
savePlugin
RemovePlugins
Plugins Removed!
OfflineGet
RunRecovery
Recovery
RunOptions
POST / HTTP/1.1
schtasks
/delete /f /tn "
.bat
@echo off
timeout 3 > NUL
DEL "
" /f /q
ToUpper
Space
[SPACE]
)eturn
[ENTER]
)scape
[ESC]
LControlKey
)CTRL]
RControlKey
RShiftKey
[Shift]
LShiftKey
Back
)Back]
LWin
)WIN]
)Tab]
Capital
[CAPSLOCK: OFF]
[CAPSLOCK: ON]
很明显, 该样本是XWorm V5.6版本, 推测至少拥有以下功能:
-
持久化: 创建高频计划任务(
schtasks.exe /create /sc minute /mo 1
);注册表自启动项(SOFTWAREMicrosoftWindowsCurrentVersionRun
) -
免杀功能: 添加杀软排除路径/进程(
Add-MpPreference -ExclusionPath
)。 -
信息收集: 查询系统信息(CPU、GPU、RAM)、虚拟机环境(
VirtualBox
、SbieDll.dll
)、杀毒软件列表(AntivirusProduct
)。 -
C2通信:通过Telegram API发送数据(
https://api.telegram.org/bot.../sendMessage
);检测主机是否托管在云环境(http://ip-api.com/line/?fields=hosting
)。 -
攻击性功能:DDoS攻击(
StartDDos
)、强制关机(shutdown.exe
)、键盘记录([SHIFT]
,[CTRL]
键位标记)。 -
插件扩展: 支持插件管理(
sendPlugin/savePlugin
)和数据恢复(RunRecovery
)。
根据以上混淆逻辑和关键字符串, 推断该XWorm变种通过以下技术链实现动态恶意代码执行:
1.多阶段加载流程
阶段1: PowerShell启动器
-
文件结构混淆:将完整的PE文件切割为多块,并通过Base64、Gzip压缩与数学运算编码(如
-join[char[]]
运算生成MZ
头),隐藏在PowerShell脚本的二进制数据段中。 -
沙箱逃逸检查:在脚本头部加入无效字符或语法干扰,导致标准沙盒执行失败(如文中提到的“miserably fails”),迫使真实环境中手动运行或定制解析器激活。
阶段2:内存解密与重建
-
动态生成PE文件:通过数学表达式逐字节计算还原原始PE内容(如:
503-426=77
对应ASCII字符M
),拼接成完整的可执行文件。 -
反射式加载:利用PowerShell的
System.Reflection.Assembly.Load
方法,将生成的PE文件直接加载到内存(无落地文件),规避传统磁盘扫描。
2.关键执行技术
工具链依赖:
-
.NET API集成:调用
Add-MpPreference
添加杀软排除项,利用WScript.Shell
创建快捷方式或启动子进程,降低防御触发概率。 -
COM对象劫持:通过
schtasks.exe
和WScript.Shell
操作计划任务,实现高频持久化(/sc minute /mo 1
每分钟触发)。
环境探测与规避:
-
虚拟机/沙箱检测:查询
Win32_ComputerSystem
判定虚拟化环境(如VirtualBox
)。检查进程模块中是否存在安全软件注入的DLL(如SbieDll.dll
为沙盒关联文件)。使用http://ip-api.com
接口判断是否为托管服务器(“hosting”字段),避免在云分析环境中暴露。 -
键盘记录隐蔽性:日志中标记键盘事件为
[CTRL]
、[CAPSLOCK]
等,可能通过SetWindowsHookEx
挂钩键盘输入,通过异步线程传输至C2。
原文始发于微信公众号(二进制空间安全):一种对抗企业级EDR深度行为分析的双模式混淆技术
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论