最新Trickbot变种技术分析
字数 2532 2025-08-20 18:17:48
Trickbot最新变种技术分析与防御教学文档
1. Trickbot概述
Trickbot是一款自2016年开始活跃的多模块银行木马恶意软件,主要针对金融机构客户进行凭证窃取。其特点包括:
- 模块化架构:不同模块负责不同恶意活动
- 持续更新:开发者不断添加新技术和模块
- 多功能性:包含浏览器数据窃取、Outlook数据窃取、系统锁定、信息收集等多种功能
2. 最新变种感染向量分析
2.1 初始感染方式
最新变种通过恶意Word文档传播(SHA256: aef2020534f81bbebec6c9b842b3de6fd4f5b55fe5aeb3d9e79e16c0a3ff37ab)
2.2 宏代码触发机制
- 触发条件:用户开启宏并放大或缩小文档时执行
- 绕过沙箱技术:依赖用户交互行为(窗口大小变化)
- 关键函数:
InkPicture1_Resize方法响应缩放操作
2.3 宏代码执行流程
- 经过混淆的宏代码
- 最终执行PowerShell脚本
- PowerShell脚本下载并执行Trickbot主程序
3. Payload技术分析
3.1 基本信息
- SHA256: 1c81272ffc28b29a82d8313bd74d1c6030c2af1ba4b165c44dc8ea6376679d9f
- 调试路径泄露: c:\users\exploitdb\desktop\esetfuck\release\esetfuck.pdb
3.2 反分析技术
-
延迟执行:
- 调用
Sleep(30000)休眠30秒 - 目的是绕过沙箱监测
- 调用
-
虚假API调用:
- 创建看似无用的窗口(
CreateWindowEx) - 发送未定义消息(
SendMessageW使用0x64/0xfa代码) - 调用
GetLastError和InSendMessage但不使用结果
- 创建看似无用的窗口(
-
短时间多次休眠:
- 调用
Sleep(3)共3890次 - 累计约11秒延迟
- 规避沙箱的行为分析
- 调用
3.3 资源解密机制
-
解密函数:位于0x405680
-
解密流程:
- 接收参数:private_key(密钥指针)和key size(16字节)
- 使用
CryptAcquireContextW获取加密服务提供商句柄(PROV_RSA_FULL) - 从嵌入的可执行文件中导入公钥BLOB
- 复制内存中的BLOB头形成完整密钥
- 使用
CryptImportKey导入密钥 - 使用
CryptEncrypt进行实际解密 - 清理密钥(
CryptDestroyKey)
-
解密结果:
- DLL文件(SHA256: 31A4065460CEF51C8B4495EFC9827926A789F602F5AD5C735EA1D88CAFAC135A)
- 输出函数
shellcode_main
4. Process Hollowing技术实现
4.1 技术概述
最新变种使用直接系统调用实现process hollowing,与Flokibot银行木马技术相似,可能存在代码共享。
4.2 详细实现步骤
-
创建暂停进程:
- 使用
CreateProcessW创建自身进程的挂起副本
- 使用
-
获取线程上下文:
- 使用
GetThreadContext保存主线程上下文
- 使用
-
处理ntdll.dll:
- 使用
CreateFileW获取ntdll.dll句柄 - 使用
ReadFile将ntdll.dll读入内存 - 手动映射ntdll.dll到内存
- 使用
-
函数解析:
- 使用CRC32算法计算函数名哈希值
- 常数
0xedb88320用于CRC32计算 - 通过哈希匹配找到目标函数偏移量
-
直接系统调用:
- 提取系统调用号存入EAX
- 通过
sysenter指令进入内核 - 栈中存放适当参数
-
关键系统调用序列:
NtUnmapViewOfSection:删除原进程模块映射NtCreateSection:创建写入恶意代码的sectionNtMapViewOfSection:映射section到hollowed进程NtWriteVirtualMemory:写入当前进程ImageBaseAddressNtResumeThread:恢复挂起线程执行
4.3 与Flokibot的对比
-
相似点:
- 使用直接系统调用
- 使用CRC32算法哈希函数名
- process hollowing基本流程相同
-
差异点:
- Trickbot未对所有hollowing函数使用直接系统调用
- Flokibot中CRC32与2字节XOR结合使用
- 部分函数调用方式不同
5. 持久化与防御规避技术
5.1 文件操作
- 复制自身到
C:\Users\%USERNAME%\AppData\Roaming\msnet - 存放加密模块在同一目录
5.2 防御规避
执行以下命令关闭和删除Windows Defender:
sc stop WinDefend
sc delete WinDefend
powershell Set-MpPreference -DisableRealtimeMonitoring $true
6. 防御与检测建议
6.1 预防措施
-
宏安全:
- 默认禁用Office宏
- 对必须使用宏的文件进行数字签名验证
- 教育用户识别可疑文档
-
PowerShell限制:
- 实施约束语言模式
- 记录和监控PowerShell活动
- 启用脚本块日志记录
6.2 检测技术
-
行为检测:
- 监控频繁的短时间Sleep调用
- 检测异常的窗口消息发送模式
- 识别直接系统调用行为
-
内存分析:
- 检测process hollowing特征
- 查找手动映射的ntdll.dll
- 监控异常的线程上下文修改
-
文件监控:
- 监控AppData\Roaming目录的可疑写入
- 检测Windows Defender服务的异常停止
6.3 响应措施
- 隔离:立即隔离受感染主机
- 取证:
- 收集内存转储进行分析
- 检查进程树和网络连接
- 修复:
- 删除恶意文件和注册表项
- 恢复安全服务配置
- 加固:
- 更新终端防护软件
- 实施应用程序白名单
7. 总结
Trickbot持续演进,最新变种展示了:
- 更隐蔽的感染方式(依赖用户交互)
- 先进的代码注入技术(直接系统调用)
- 增强的反分析和沙箱规避能力
- 与Flokibot的技术趋同现象
防御需要多层防护策略,重点在于预防初始感染、检测异常行为并及时响应。