场景:2026年7月,某省政务云安全团队在周末值守时,SOC大屏弹出一条可疑外联告警,经溯源发现竟是一条潜伏两年之久的图片隐写攻击链。
攻击 / 事件时间线
初始入侵
2024年3月,攻击者以《年度个税专项附加扣除填报指南.docx》为诱饵,向政务云运维人员邮箱投递鱼叉邮件。附件实际为RTF格式,利用CVE-2017-11882漏洞触发OLE对象执行PowerShell命令,从攻击者控制的图片服务器拉取一张风景图lake.jpg并保存至本地。该图片使用Steghide隐写了恶意脚本,通过cmd /c start /b powershell -ep bypass -enc ...加载执行,在内存中运行Cobalt Strike Beacon,实现第一阶段的秘密驻留。
CVE-2017-11882SteghidePowerShell
持久化与提权
Beacon上线后,攻击者利用Mimikatz抓取运维管理员明文口令,发现域管账号存在密码复用——同一口令同时用于本地Administrator和域内高权限账号。随后通过计划任务schtasks /create /tn "OneDriveSync" /sc onlogon /tr ...实现自启动持久化,并清除Security事件日志中的4624/4625记录,同时修改Beacon通信间隔为55秒,伪装成正常HTTPS流量,绕过传统流量检测。
MimikatzschtasksEvent Log Tampering
横向移动
攻击者使用mimikatz导出的票据结合PsExec向三台核心数据库服务器横向移动,在每台服务器上部署svchost.dll侧加载后门。利用SMB共享传播两个工具:一是基于开源的SharpHound采集域内权限路径,二是一个自研的DCSync变体工具,绕过LSA Protection直接调用DRSUAPI接口,持续同步域管哈希。整个横向过程仅用了27分钟,期间未触发任何基于签名的AV告警。
PsExecSharpHoundDCSync
数据窃取
攻击者从备份服务器中找到2022年以来的全量用户表,包含身份证号、手机号、住址等超1.6万条敏感信息。数据经压缩后分割为多个1MB片段,每段拼接在看似正常的PNG图片末尾(利用PNG的IEND区块后附加数据),通过图片分享站分批外传。外传域名注册于2023年,解析到海外CDN节点,流量特征为低频大包,日均仅3-5MB,完美避开流量阈值告警。
PNG隐性写入CDN中转Split & Merge
蓝队视角 · 发现与处置
防守方最终通过一条异常TLS证书指纹线索切入:某台Web服务器(从未配置HTTPS)突然产生了带特定JA3指纹的加密会话。SOC研判后立即调用Sysmon事件日志,发现该会话源自svchost.exe进程,且命令行中无任何可疑参数。随后利用YARA规则扫描内存,匹配到Cobalt Strike的Beacon配置段。蓝队封锁C2域名、隔离三台数据库,并启用域内Credential Guard强制重置密码。通过流量回溯,还原了完整图片隐写外传链路,最终在攻防演练结束前4小时切断所有外联通道。
涉及关键技术 / 工具
JA3指纹检测Sysmon事件日志溯源YARA内存扫描
防护经验总结
- 对运维机启用应用白名单,禁止powershell.exe、cmd.exe在非必要路径运行,同时对所有Office宏和OLE对象默认禁用
- 在域控上部署Honeytoken账号,并对DCSync行为配置审计告警,一旦出现调用DRSUAPI的非备份服务器立即隔离
- 建立图片文件深度检测机制:将PNG/JPEG重新解码并重新编码以清除附加数据,同时监控外联流量的TLS指纹和JA3突变
#隐写攻击#Cobalt Strike#API安全