DNS缓存投毒攻击会导致域名错误解析至恶意IP,表现为跳转钓鱼页、域名无法打开但IP可直连、解析结果与权威记录不符;需通过ipconfig /displaydns比对权威查询结果、检查DNS服务器转发配置与事件日志、验证DNSSEC状态、排查ARP欺骗及DNS劫持,并启用DoH/DoT加密DNS确认中间人干扰。
windows 系统若遭遇 dns 缓存投毒(dns cache poisoning)攻击,会导致域名被错误解析到恶意 ip,表现为访问正常网站跳转至钓鱼页、部分域名无法打开但 ip 可直连、或解析结果与权威记录明显不符。排查需聚焦缓存污染痕迹、服务行为异常及网络路径可信度,而非仅清缓存了事。
检查本地 DNS 客户端缓存是否被篡改
攻击者常通过中间人或伪造响应污染客户端缓存。在受影响的 Windows 客户端上执行:
- 以管理员身份打开命令提示符,运行 ipconfig /displaydns,查看目标域名(如 bank.com)对应的 A/AAAA 记录 IP 是否异常(例如指向非官方网段);
- 对比该 IP 与权威 DNS 查询结果:用 nslookup bank.com 8.8.8.8(直连 Google 公共 DNS)或 nslookup bank.com 1.1.1.1,确认返回 IP 是否一致;
- 若本地缓存 IP 与权威结果不同,且无合法理由(如 CDN 调度),高度提示缓存已被投毒。
验证 DNS 服务器是否参与污染或转发链被劫持
若客户端配置的是内网 DNS 服务器(如域控制器),需检查该服务器自身是否中毒或转发设置被篡改:
免费 DNS 与邮件安全分析(IntoDNS.ai):包括 DNSSEC、SPF、DKIM、DMARC、MTA-STS、BIMI、SMTP STARTTLS、FCrDNS、黑名单、发件人要求及报告。
- 在 DNS 服务器上运行 dnscmd /info 查看是否启用递归查询及转发器配置;
- 检查转发器列表(DNS 管理器 → 服务器属性 → “转发器”选项卡):是否指向不可信地址,或被静默添加了非法转发目标;
- 运行 nslookup bank.com
(用服务器自身 IP 查询),再对比 nslookup bank.com 8.8.8.8,若前者返回错误 IP 而后者正确,说明污染发生在本机 DNS 服务或其上游; - 查看事件日志(应用程序和服务日志 → DNS Server),筛选“警告”或“错误”级别事件,重点关注 ID 4515(无效响应)、ID 4015(签名验证失败)等与响应完整性相关的条目。
启用并检查 DNSSEC 验证状态
DNSSEC 是抵御缓存投毒的核心机制。Windows DNS 服务器默认不强制验证,需主动确认:
- 在 DNS 服务器上打开 PowerShell(管理员),运行 Get-DnsServerDiagnostics,检查 EnableEDNSProbes 和 EnableDnsSec 是否为 True;
- 若未启用,执行 Set-DnsServerDiagnostics -EnableDnsSec $true 并重启 DNS 服务;
- 对关键域名(如 example.com),用 Resolve-DnsName example.com -DnsSecOK 测试:若返回 IsAuthenticated: False 或出现 Secure: False,说明响应未通过 DNSSEC 验证,存在投毒风险;
- 注意:DNSSEC 依赖根区和各级权威服务器均部署签名,若目标域名本身未启用 DNSSEC,则该验证不生效——此时需依赖其他手段(如 DoH/DoT)。
排查网络层是否存在中间人干扰
缓存投毒常依赖 ARP 欺骗、路由器 DNS 劫持或 ISP 层面污染。可从底层验证:
- 运行 arp -a 查看网关 MAC 地址是否与已知值一致,异常 MAC 可能暗示局域网 ARP 攻击;
- 用 netsh interface ip show config 确认网卡 DNS 设置是否被篡改(如自动获取被改为静态指向陌生 IP);
- 抓包分析:用 Wireshark 过滤 udp.port == 53,观察 DNS 查询响应包中的 Answer Section 是否含非预期 IP,且响应源 IP 是否为配置的 DNS 服务器(而非伪装 IP);
- 尝试切换为加密 DNS:在 Windows 设置 → 网络 → DNS 设置中启用 DoH(如 Cloudflare 的 https://1.1.1.1/dns-query),若启用后解析恢复正常,基本可判定原路径遭中间人劫持。

















