场景:2026年9月,某跨境电商企业SOC值班员发现内网DNS流量异常,部分终端对陌生域名发起周期性TXT查询,触发威胁狩猎流程。
攻击 / 事件时间线
初始访问:供应链投毒与DNS心跳
攻击者通过篡改SCRM客户端更新包,在安装流程中植入轻量级下载器。该下载器不执行任何持久化操作,仅通过nslookup -type=TXT向*.analytics-cdn[.]com发起周期性DNS查询,获取Base64编码的C2指令。由于DNS流量未被代理拦截,且查询频率伪装为正常CDN解析,传统NGFW未产生告警。
PowerShellnslookupDNS TXT查询
命令执行:DNS隧道与内存加载
下载器从TXT记录中提取加密载荷,利用Invoke-Expression在内存中加载Cobalt Strike beacon。beacon配置为DNS模式,通过dns.beacon子域上传主机信息,并接收后续指令。攻击者随后下发Mimikatz模块,尝试抓取本地凭据,但被EDR的LSASS保护机制阻断。
Cobalt Strike DNS BeaconMimikatzInvoke-Expression
横向移动:凭据复用与SMB探测
攻击者转向Kerberoasting,利用Rubeus请求服务票据并离线破解,获取到一台文件服务器的服务账户密码。随后通过net use建立SMB连接,横向移动至财务共享目录,使用7z打包敏感报表并暂存至C:\Windows\Temp。
Rubeusnet use7z
数据外传:DNS隧道慢速渗出
为避免流量检测,攻击者将压缩包分片,每片Base64编码后作为子域名前缀,通过DNS查询逐片外传至C2。单次查询仅携带约200字节数据,持续72小时完成约500MB数据渗出。外传期间,DNS查询均指向同一权威DNS服务器,且TTL值异常统一。
DNS隧道脚本Base64编码自定义C2
蓝队视角 · 发现与处置
SOC值班员在DNS日志中发现某终端对analytics-cdn[.]com的TXT查询频率异常(每5分钟一次,且无对应A记录),立即联动EDR排查该终端进程链,发现powershell.exe加载了无文件载荷。蓝队随即隔离该主机,提取内存镜像进行YARA扫描,确认Cobalt Strike beacon特征。同时,通过DNS日志回溯发现另有3台主机存在相同查询模式,遂对全网DNS出口实施临时管控,阻断该域名解析,并重置相关服务账户密码。
涉及关键技术 / 工具
DNS TXT记录隐蔽信道:利用TXT查询下发指令,绕过HTTP代理检测无文件内存加载:通过PowerShell Invoke-Expression在内存中执行beacon,规避文件扫描Kerberoasting:请求服务票据离线破解,获取横向移动凭据
防护经验总结
- 在DNS出口部署查询频率与TXT记录长度基线告警,对周期性TXT查询且无对应A记录的域名自动标记
- 启用Windows Defender Credential Guard与LSASS保护,阻断Mimikatz等凭据抓取工具
- 对服务账户实施强密码策略(25位以上)并定期轮换,降低Kerberoasting破解成功率
#DNS隧道#C2狩猎#供应链攻击#威胁狩猎