场景:某大型企业内网,SOC工程师在凌晨巡检时发现内网一台服务器频繁解析一个似随机生成的域名,该域名从未出现在白名单中,触发高可疑告警。
攻击 / 事件时间线
初始入侵
攻击者通过Apache Log4j远程代码执行漏洞(CVE-2021-44228)利用该服务器上的Weblogc应用获取初始权限,上传基于Cobalt Strike的beacon木马。该木马采用内存加载技术,绕过传统AV引擎,未留下磁盘文件。初始植入后,beacon通过HTTP回连到攻击者控制的云服务器,但因出口防火墙策略限制首次回连失败,随即切换到备用通信方式。
Log4j漏洞利用Cobalt Strike
建立C2通信
攻击者启用DNS隧道作为隐蔽通道。Beacon每60秒向恶意域名发起TXT查询,将命令和数据编码为子域名部分,如“.malicious.top”。利用递归DNS服务器转发特性,使流量看似正常DNS解析。蓝队后续分析发现,查询频率稳定且响应TXT记录长度异常(超过255字节),与正常DNS行为显著不同。
Cobalt Strike DNS beacon自定义DNS隧道
内网横向移动
攻击者通过C2下发Mimikatz抓取本地管理员凭据,成功窃取到域用户hash。利用PsExec尝试横向移动到域控,但因域环境启用LAPS(本地管理员密码解决方案)和AppLocker策略,PsExec执行被阻止。转而使用CME工具横向到两台域内文件服务器,并植入后门保持持续访问。
MimikatzPsExecCrackMapExec
数据窃取尝试
攻击者试图通过FRP反向代理将文件服务器中的敏感数据(含客户合同、财务数据)以HTTPS加密方式外传。由于出口网络强制所有流量通过公司白名单代理,且禁止设备直接建立出站连接,该代理行为被检测并告警。蓝队即阻断连出会话,并提取相关流量特征。
FRP反向代理
蓝队溯源
蓝队通过SIEM(Splunk)关联DNS日志,发现该服务器三天内累计向同一恶意域名发起超过2000次异常查询。使用被动DNS历史查询确认域名注册为72小时前,且Nexus分析确定C2 IP归属已知APT团伙VPS。进一步通过Velociraptor对主机进行内存取证,提取并逆向beacon配置,确认完整攻击链条。最终清除恶意进程,全域重置凭证,并基于YARA规则排查其他受感染主机。
SplunkVelociraptorYARA规则
蓝队视角 · 发现与处置
SOC工程师在流量分析平台(Zeek)中发现该服务器产生大量从未见过的DNS查询,响应长度异常。立即启动威胁狩猎流程,使用Suricata规则匹配到Cobalt Strike DNS特征(N字节响应、TXT记录长度超限)。随后隔离该服务器,通过EDR提取进程内存,逆向分析beacon配置,定位到C2域名。同时基于DNS解析历史,追溯最早通信时间为三天前,确认入侵窗口。最后通过威胁情报关联,确认该IP属于已知APT组织关联的VPS。最终处置:清除恶意进程,重置所有账号密码,并全网扫描相同特征。
涉及关键技术 / 工具
DNS隧道行为检测(基于响应长度和查询频率)Cobalt Strike DNS beacon逆向分析Sysmon Event ID 22与网络日志关联分析
防护经验总结
- 建立完善的DNS查询白名单,对非授权域名(尤其TXT、MX、CNAME查询)实时监控告警,并设置查询频率基线。
- 强制出口流量通过公司代理,禁止服务器直接出站;启用TLS解密(MITM)或TLS指纹检测,识别隧道式C2通信。
- 部署EDR与威胁狩猎平台,关联Sysmon DNS事件与Zeek网络日志,建立基于机器学习的行为基线模型,提升对未知隧道的发现能力。
#C2检测#DNS隧道#威胁狩猎#Cobalt Strike