DNS欺骗攻击经全面排查仍失败,寻求后续故障排查方向
兄弟,看你已经把常规排查项都拉满了还没搞定,确实挺闹心的。结合我之前做这类测试踩过的各种坑,给你几个没提到的排查方向试试:
盯紧DNS响应的时序问题:如果真实DNS服务器的响应比你的欺骗包先跑到目标设备,系统会直接采信真实记录,你的欺骗包就成了无效的“迟到包”。可以试试把攻击主机挪得离目标设备更近(比如同一AP下尽量凑一块),或者临时把目标设备的DNS服务器改成一个不可达的地址(反正你已经MITM了,流量走你这),彻底切断真实DNS的干扰。另外,也可以用工具调高欺骗包的发送优先级,比如在ettercap里调整发包速率。
检查欺骗包的记录类型与合规性:很多人只记得spoof IPv4的A记录,但忘了目标设备可能同时请求了IPv6的AAAA记录——如果你的攻击没覆盖AAAA记录,目标会走真实的IPv6地址访问,自然就加载超时了。另外,也要确认你的欺骗包是不是符合DNS协议规范,比如有没有正确设置响应码、TTL、EDNS0扩展?有些系统会校验DNS响应的完整性,不合规的包会直接被丢弃。
排查攻击主机的本地拦截规则:虽然你开了IP转发,但会不会防火墙(比如iptables、ufw)把DNS欺骗包给拦了?或者本地有没有跑着其他DNS服务(比如systemd-resolved)占用了53端口,导致你的欺骗包发不出去?可以用
iptables -L -n(Linux)或者netsh advfirewall show allprofiles(Windows攻击机)查看规则,也可以用tcpdump -i <你的无线网卡名> udp port 53抓包,确认欺骗包确实发出去了,甚至可以在目标设备上也抓包,看它有没有收到你的欺骗包。确认目标的ARP缓存稳定性:你虽然成功拿到了MITM,但有些网关开启了ARP防护(比如静态ARP绑定、ARP欺骗检测),或者目标系统的ARP缓存会自动刷新,导致过一会儿网关的MAC地址又变回真实的,流量就绕开你了。可以每隔几分钟在目标设备上用
arp -a(Windows)或者ip neigh(Linux)查一下,看网关的MAC是不是你的攻击主机的MAC。校验恶意服务器的回程路由:你的服务器虽然能访问,但有没有考虑回程流量的问题?比如目标设备的请求通过你转发到服务器后,服务器的响应是不是直接发回给目标,而不是经过你的攻击主机?如果是这样,目标设备会收到一个来自陌生IP的响应,直接丢弃,导致连接超时。可以在攻击主机上开启SNAT(比如
iptables -t nat -A POSTROUTING -d <你的服务器IP> -j MASQUERADE),让服务器的响应都走你这回去。检查攻击工具的配置细节:比如用ettercap的话,有没有在
dns_spoof.hosts文件里把域名和重定向IP的映射写对?是不是误把目标IP设成了网关?或者用dnsspoof的时候,有没有指定正确的网卡和过滤规则?比如有没有漏掉了目标设备的IP段?
备注:内容来源于stack exchange,提问作者security_paranoid

