| name | hunting-for-dns-based-persistence |
| description | 使用被动 DNS 数据库、SecurityTrails API 和 DNS 审计日志分析,狩猎 DNS 劫持、悬空 CNAME 记录、通配符 DNS 滥用和未授权区域修改等 DNS 持久化机制。 |
| domain | cybersecurity |
| subdomain | threat-hunting |
| tags | ["dns","persistence","threat-hunting","passive-dns","dns-hijacking","subdomain-takeover","securitytrails"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
狩猎基于 DNS 的持久化
概述
攻击者通过劫持 DNS 记录、创建未授权子域名、滥用通配符 DNS 条目或修改 NS 委派,将流量重定向至攻击者控制的基础设施,从而建立基于 DNS 的持久化。由于 DNS 变更独立于已失陷主机而存在,这些技术在凭据轮换、终端重新镜像和传统修复操作后仍然有效。检测需要被动 DNS 历史分析、区域文件审计和未授权记录修改监控。本技能涵盖使用 SecurityTrails 被动 DNS API、Route53/Azure DNS/Cloudflare 的 DNS 审计日志以及区域传输分析的狩猎方法。
前置条件
- SecurityTrails API 密钥(免费版每月提供 50 次查询)
- 访问 DNS 提供商审计日志(Route53、Azure DNS、Cloudflare 或本地 DNS)
- Python 3.9+ 及 requests 库
- 内部区域的 DNS 区域文件访问权限或 AXFR 能力
- 用于比较的 DNS 历史基线
步骤
步骤 1:建立 DNS 记录基线
导出当前 DNS 区域记录,并为所有已授权的 A、AAAA、CNAME、MX、NS 和 TXT 记录建立基线。
步骤 2:查询被动 DNS 历史
使用 SecurityTrails API 获取 DNS 历史记录,识别未授权变更、新子域名以及指向已停用服务的 CNAME 记录(悬空 CNAME)。
步骤 3:检测异常
将当前记录与基线进行比对,识别未授权修改、解析所有子域名的通配符记录、NS 委派变更和 MX 记录劫持。
步骤 4:调查发现
将 DNS 异常与威胁情报 feeds 进行关联,针对已知恶意基础设施核查解析目标,并验证记录所有权。
预期输出
JSON 报告,列出 DNS 异常及其记录类型、历史变更、风险严重性,以及每个发现的修复建议。