一、基本概念
白加黑木马是一种利用合法程序(白文件)加载恶意DLL(黑文件)的高级攻击技术,通过"合法外壳+恶意核心"的组合规避安全检测。其名称源自攻击中同时使用白色可信程序和黑色恶意代码的特性。
二、技术原理
1. 攻击流程
正常程序.exe(白文件,带数字签名)
│
├── 加载 → 恶意.dll(黑文件,无签名) # 利用DLL搜索顺序劫持
│
└── 执行恶意代码(如窃密、远控、勒索)
2. 核心漏洞利用
- DLL劫持:通过程序默认的DLL加载路径优先级(如当前目录优先于系统目录)
- 白名单信任:杀毒软件对签名程序的低敏感度检测
- 合法数字签名:攻击者盗用或伪造企业证书对白文件签名
三、典型攻击场景
阶段 | 操作实例 |
---|---|
诱饵投放 | 伪装成PDF阅读器、办公软件安装包 |
白文件选择 | 使用旧版Notepad++、WinRAR等常见软件 |
黑DLL功能 | 注入进程、键盘记录、C2通信 |
持久化 | 注册表启动项、计划任务、服务创建 |
四、技术特点
-
高隐蔽性:
- 白文件哈希值在杀软白名单中
- 静态扫描无法识别合法程序中的异常行为
- 示例:某APT组织使用签名的财务软件加载恶意DLL
-
动态行为规避:
// 典型DLL恶意代码结构 BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved) { if (reason == DLL_PROCESS_ATTACH) { CreateThread(NULL, 0, MaliciousCode, NULL, 0, NULL); // 创建恶意线程 } return TRUE; }
-
跨平台演变:
- Windows:DLL劫持(.dll)
- macOS:DYLD_INSERT_LIBRARIES注入(.dylib)
- Linux:LD_PRELOAD劫持(.so)
五、检测与防御
1. 企业防护方案
- 应用控制:部署AppLocker或Windows Defender Application Control
- DLL监控:使用Sysmon记录非系统目录DLL加载事件
<!-- Sysmon配置示例 --> <RuleGroup> <DllLoad onmatch="include"> <ImageLoaded condition="contains">Temp\</ImageLoaded> </DllLoad> </RuleGroup>
- 证书管理:吊销异常证书(通过CRL/OCSP)
2. 个人防护建议
- 安装软件时验证数字签名(右键属性→数字签名)
- 警惕非常用目录下的exe+dll组合文件
- 使用火绒、卡巴斯基等具备行为沙箱的杀毒软件
六、典型案例
-
海莲花(OceanLotus)APT组织:
- 使用越南语版Firefox加载恶意davclnt.dll
- 通过白加黑组合绕过60%的终端防护系统
-
勒索软件TrickBot:
- 伪装成Adobe更新程序(AdobeUpdater.exe)
- 加载恶意msvcp140.dll实施加密
七、演进趋势
- 云服务滥用:使用Azure/AWS签名的云管理工具作为白文件载体
- 供应链污染:攻击软件开发商的构建环境植入恶意DLL
- 内存加载技术:黑DLL不落地直接注入进程内存
如果本教程帮助您解决了问题,请点赞❤️收藏⭐支持!欢迎在评论区留言交流技术细节!欲了解密码学知识,请订阅《密码学实战》专栏 → 密码学实战