浅析MS Excel武器化
字数 1446 2025-08-27 12:33:54

MS Excel武器化技术详解

概述

本文详细解析如何利用Microsoft Excel文件作为攻击载体,实现反向shell和规避杀毒软件(AV)检测的技术。这些技术主要针对红队成员和渗透测试人员,展示了多种将Excel文件武器化的方法。

基础技术

1. Meterpreter与SMB分发

原理

  • 使用Metasploit的SMB delivery模块分发恶意.dll文件
  • 受害者执行特定命令后即被控制

配置步骤

  1. 选择相应模块并配置参数
  2. 允许自定义dll文件名、文件夹和路径
  3. 使用meterpreter_reverse_tcp payload
  4. 生成攻击命令让受害者执行

优点

  • 简单高效
  • 历史上是绕过AV的有效方法

Excel武器化技术

1. VBS宏脚本嵌入明文代码

实施步骤

  1. 在Excel中创建VBS宏脚本
  2. 直接嵌入未加密的攻击代码
  3. 将文件另存为.xlsm格式

检测结果

  • 原始检测率较低
  • 保存为.xlsm后检测引擎增加但总数减少

2. 注释属性嵌入代码

实施步骤

  1. 将攻击代码嵌入Excel的"注释"属性中
  2. 使用宏执行注释中的代码
  3. 使用Workbook_Open()函数实现自动执行
  4. 文件需降级为Office 98-2003兼容格式(.xls)

检测结果

  • 比直接嵌入VBS宏更容易被检测

3. 自定义公式执行代码

实施步骤

  1. 创建包含攻击代码的自定义Excel公式
  2. 公式触发代码执行

检测结果

  • 检测率极低(2/59)
  • 杀毒软件对公式的关注度较低

4. VBS宏中嵌入PowerShell

实施步骤

  1. 在VBS宏中直接嵌入PowerShell命令
  2. 或对PowerShell命令进行Base64编码

检测结果

  • 直接嵌入PowerShell会被大多数AV立即检测
  • Base64编码效果与明文相同,无明显优势

5. 自定义公式执行PowerShell

实施步骤

  1. 在自定义公式中插入Base64编码的PowerShell命令

检测结果

  • 比普通代码检测率高10余次
  • PowerShell命令受到AV高度关注

技术对比与最佳实践

技术 检测率 复杂度 备注
VBS宏明文代码 中等 基础方法
注释属性代码 较高 需要兼容格式
自定义公式代码 最低 推荐方法
VBS宏PowerShell 最高 不推荐
公式PowerShell 效果一般

最佳实践建议

  1. 优先使用自定义公式嵌入普通代码(检测率最低)
  2. 避免直接使用PowerShell命令
  3. 对于需要自动执行的场景,使用Workbook_Open()但要注意兼容性问题
  4. 简单的旧技术有时效果更好

结论

  1. 自定义公式技术是目前规避检测的最佳方法
  2. AV厂商对宏和PowerShell关注度高,但对公式关注度低
  3. 不应过度依赖编码/加密,简单的技术可能更有效
  4. 这些技术基于老旧方法,但仍具有现实参考价值

防御建议

对于防御方:

  1. 禁用不必要的宏执行
  2. 监控可疑的公式行为
  3. 保持Office和系统补丁更新
  4. 对PowerShell执行进行严格监控

对于攻击方(红队):

  1. 结合多种技术提高成功率
  2. 根据目标环境选择合适的技术
  3. 持续测试不同AV的检测能力
  4. 考虑将Excel武器化作为攻击链的一部分而非全部
MS Excel武器化技术详解 概述 本文详细解析如何利用Microsoft Excel文件作为攻击载体,实现反向shell和规避杀毒软件(AV)检测的技术。这些技术主要针对红队成员和渗透测试人员,展示了多种将Excel文件武器化的方法。 基础技术 1. Meterpreter与SMB分发 原理 : 使用Metasploit的SMB delivery模块分发恶意.dll文件 受害者执行特定命令后即被控制 配置步骤 : 选择相应模块并配置参数 允许自定义dll文件名、文件夹和路径 使用 meterpreter_reverse_tcp payload 生成攻击命令让受害者执行 优点 : 简单高效 历史上是绕过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武器化作为攻击链的一部分而非全部