钓鱼载荷
宏文档这类入口为什么还在用、为什么越来越不好用,以及终端上能看见什么。
为什么还在用
钓鱼之所以长期有效,不是技术强,是它绕开了所有技术防线——它攻击的是人。
一封「发票已生成,请查收」的邮件,附件是个启用宏的 Word 文档。点开,启用宏,剩下的交给脚本。整个过程没有任何漏洞,全是正常功能被滥用。
这类手法的技术门槛极低,所以防护的重点从来不是「拦住所有载荷」,而是「假设有人点了,能不能发现」。
现在的处境
宏文档这条路,这几年窄了很多:
- Office 默认禁用来自互联网的宏,且提示越来越明显。
- Mark-of-the-Web(MOTW)让下载的文件带上来源标记,宏直接被拦。
- 邮件网关普遍会剥离或拦截带宏的附件。
- EDR 对
winword.exe派生cmd.exe、powershell.exe这类父子关系非常敏感。
所以真实场景里,攻击者更多转向:ISO/IMG 镜像(绕过 MOTW)、LNK 文件、HTML 走私(把文件藏在 HTML 里由浏览器还原)、以及直接投递钓鱼页面而不是附件。
终端上能看见什么
这是这一篇真正的重点。假设宏被执行了,终端上会留下什么?
进程链。WINWORD.EXE 派生 cmd.exe 或 powershell.exe,这是最典型的信号。正常办公场景里,Word 不应该启动命令行。
Sysmon Event ID 1(进程创建)能完整记录这条链,包括命令行原文:
ParentImage: C:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE
Image: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
CommandLine: powershell -nop -w hidden -enc <base64>
-nop(不加载配置文件)、-w hidden(隐藏窗口)、-enc(base64 编码命令)——这三个参数同时出现,基本可以定性。
网络行为。宏执行后通常要回连。回连的域名往往很新、很随机,或者是一个正常服务被滥用(比如把 C2 流量藏在某个合法 API 里)。
文件落地。临时目录、启动目录、用户目录下的可疑文件。Sysmon Event ID 11(文件创建)能看到。
检测规则怎么写
不用一上来就写复杂规则。先写三条,能覆盖大部分:
- Office 进程派生 shell。
ParentImage匹配 Office 系列,Image匹配cmd/powershell/wscript/cscript/mshta。 - PowerShell 带
-enc且命令行长度异常。正常运维很少用 base64 编码命令。 - 浏览器/邮件客户端进程派生 Office 进程。这是「点开附件」的典型路径。
这三条规则误报率不高,覆盖的场景不少。先把它们跑起来,再谈复杂的关联分析。
一处提醒
这一段写的是检测,不是投递。真要测「员工会不会点」,那属于社会工程测试,需要单独授权,且通常在授权书里明确列为禁止项。
技术上能做,不代表这次项目里能做。
参考
- 《Kali 渗透测试:使用 Word 宏病毒进行渗透攻击》,CSDN 存档
- 检测点参考:Sysmon 主机遥测