攻击者是如何利用Delphi加壳器来实现免杀的
字数 1793 2025-08-20 18:18:04
Delphi加壳器免杀技术分析与防御指南
一、Delphi加壳器概述
Delphi加壳器是一种被恶意软件广泛使用的保护工具,其主要功能是通过加密和混淆技术绕过安全产品的检测。根据FireEye的研究,这种加壳器被多个威胁组织用于多种恶意软件家族的免杀处理。
Delphi语言在恶意软件中的优势
- 简单易用的Windows API调用能力
- 默认库可以转移分析人员注意力
- 使程序在动态分析中"看起来正常"
- 地下论坛广泛讨论相关免杀技术
二、攻击流程分析
1. 载荷投递方式
攻击者主要通过垃圾邮件分发加壳后的恶意软件:
- 电汇主题邮件:携带含恶意宏的文档附件(哈希:71cd5df89e3936bb39790010d6d52a2d)
- 报价主题邮件:携带利用公式编辑器漏洞的文档(哈希:0543e266012d9a3e33a9688a95fce358)
- 文档会从远程服务器下载最终载荷(如http://5.152.203.115/win32.exe)
2. 用户行为检测技术
加壳器采用多种技术检测真实用户环境:
变体1:
- 使用
GetForegroundWindowAPI - 检测窗口切换次数(需至少3次)
- 未检测到变化则进入无限睡眠
变体2:
- 使用
GetCursorPos和SleepAPI - 检查鼠标和光标移动情况
变体3:
- 使用
GetLastInputInfo和GetTickCountAPI - 检查系统空闲状态
这些简单的技术能有效检测沙箱环境,因为沙箱通常不会模拟真实的用户交互模式。
三、载荷提取技术
1. 资源存储结构
- 实际载荷被拆分多个二进制段
- 存储在PE文件的资源目录中
- 使用位图等资源类型作为伪装(如图6所示)
2. 解密过程
-
从硬编码资源ID读取内容
-
前16字节生成XOR密钥
-
使用滚动XOR方法解密剩余字节
-
解密后得到内部数据结构(如图7所示),包含:
- 资源ID引用
- 加密缓冲区信息
- 其他配置参数
-
从
dwStartResourceId到dwStartResourceId+dwNumberOfResources读取加密值 -
按
dwChunkSize块大小组装数据 -
使用新密钥和滚动XOR算法解密最终缓冲区
-
生成可执行的有效载荷
注:可使用专用脚本静态提取最终有效载荷
四、关联恶意软件家族
使用该加壳器的主要恶意软件家族及分布:
- Lokibot(主要载荷)
- Pony
- IRStealer
- Nanocore
- Netwire
- Remcos
- nJRAT
- 各类挖矿恶意软件
多种家族的采用表明:
- 该加壳器可能是商业化服务/工具
- 多个威胁组织购买使用
- 开发者可能直接向恶意软件作者销售
五、防御建议
1. 检测方面
- 监控可疑的Delphi签名程序
- 分析资源段中的异常内容
- 检测滚动XOR解密行为
- 关注用户行为模拟的API调用模式
2. 防护方面
- 禁用Office宏(除非绝对必要)
- 及时修补公式编辑器等漏洞
- 使用高级沙箱(能模拟真实用户交互)
- 部署行为分析解决方案
3. 企业防护策略
- 邮件网关过滤可疑附件
- 终端防护软件启用动态分析
- 网络层拦截已知恶意IP
- 定期更新IOC数据库
六、技术发展趋势
- 商业化免杀服务:威胁组织可外包免杀工作,提高效率
- 沙箱绕过技术:简单的用户行为模拟已能绕过传统沙箱
- 多态技术:同一加壳器支持多种恶意软件家族
- 持续进化:开发者不断更新对抗安全分析技术
七、IOC(威胁指标)
样本哈希:
- 853bed3ad5cc4b1471e959bfd0ea7c7ce3c421d404c08809dd8ee3365552e305
- 14e5326c5da90cd6619b7fe1bc4a97e1dc999a1a2c5e796e450c0a6a61950e3
- f3ad781934e67a8b84739866b0b55544bb4f5e691b264103b9c4fb04fa3429f1e
恶意URL:
- http://5.152.203.115/win32.exe
八、总结
Delphi加壳器代表了当前恶意软件免杀技术的典型实现,其特点包括:
- 利用合法编程语言特性
- 简单的沙箱检测技术
- 有效的资源加密方案
- 商业化分发模式
安全团队需要采用多层防御策略,结合静态分析、动态行为检测和威胁情报,才能有效应对这类威胁。