浅析MS Excel武器化
字数 1446 2025-08-27 12:33:54
MS Excel武器化技术详解
概述
本文详细解析如何利用Microsoft Excel文件作为攻击载体,实现反向shell和规避杀毒软件(AV)检测的技术。这些技术主要针对红队成员和渗透测试人员,展示了多种将Excel文件武器化的方法。
基础技术
1. Meterpreter与SMB分发
原理:
- 使用Metasploit的SMB delivery模块分发恶意.dll文件
- 受害者执行特定命令后即被控制
配置步骤:
- 选择相应模块并配置参数
- 允许自定义dll文件名、文件夹和路径
- 使用
meterpreter_reverse_tcppayload - 生成攻击命令让受害者执行
优点:
- 简单高效
- 历史上是绕过AV的有效方法
Excel武器化技术
1. VBS宏脚本嵌入明文代码
实施步骤:
- 在Excel中创建VBS宏脚本
- 直接嵌入未加密的攻击代码
- 将文件另存为
.xlsm格式
检测结果:
- 原始检测率较低
- 保存为.xlsm后检测引擎增加但总数减少
2. 注释属性嵌入代码
实施步骤:
- 将攻击代码嵌入Excel的"注释"属性中
- 使用宏执行注释中的代码
- 使用
Workbook_Open()函数实现自动执行 - 文件需降级为Office 98-2003兼容格式(.xls)
检测结果:
- 比直接嵌入VBS宏更容易被检测
3. 自定义公式执行代码
实施步骤:
- 创建包含攻击代码的自定义Excel公式
- 公式触发代码执行
检测结果:
- 检测率极低(2/59)
- 杀毒软件对公式的关注度较低
4. VBS宏中嵌入PowerShell
实施步骤:
- 在VBS宏中直接嵌入PowerShell命令
- 或对PowerShell命令进行Base64编码
检测结果:
- 直接嵌入PowerShell会被大多数AV立即检测
- Base64编码效果与明文相同,无明显优势
5. 自定义公式执行PowerShell
实施步骤:
- 在自定义公式中插入Base64编码的PowerShell命令
检测结果:
- 比普通代码检测率高10余次
- PowerShell命令受到AV高度关注
技术对比与最佳实践
| 技术 | 检测率 | 复杂度 | 备注 |
|---|---|---|---|
| VBS宏明文代码 | 中等 | 低 | 基础方法 |
| 注释属性代码 | 较高 | 中 | 需要兼容格式 |
| 自定义公式代码 | 最低 | 中 | 推荐方法 |
| VBS宏PowerShell | 最高 | 低 | 不推荐 |
| 公式PowerShell | 高 | 中 | 效果一般 |
最佳实践建议:
- 优先使用自定义公式嵌入普通代码(检测率最低)
- 避免直接使用PowerShell命令
- 对于需要自动执行的场景,使用
Workbook_Open()但要注意兼容性问题 - 简单的旧技术有时效果更好
结论
- 自定义公式技术是目前规避检测的最佳方法
- AV厂商对宏和PowerShell关注度高,但对公式关注度低
- 不应过度依赖编码/加密,简单的技术可能更有效
- 这些技术基于老旧方法,但仍具有现实参考价值
防御建议
对于防御方:
- 禁用不必要的宏执行
- 监控可疑的公式行为
- 保持Office和系统补丁更新
- 对PowerShell执行进行严格监控
对于攻击方(红队):
- 结合多种技术提高成功率
- 根据目标环境选择合适的技术
- 持续测试不同AV的检测能力
- 考虑将Excel武器化作为攻击链的一部分而非全部