路由器的 DNS 很难劫持,因为路由器的 DNS 请求是从他的 WAN 口发送出去的,如果你在 LAN 端,两个口根本就是隔离的,属于两个 VLAN,并不能做到。当然,如果你能黑进路由器的管理端就又是另一回事。
所以这里分成几种情况,一种是你在 LAN 端,没有路由器管理权限。一种是你在 LAN 端,有路由器管理权限。一种是你在 WAN 端,可以看到路由器的 DNS 请求包。
第一种来说,除非你能黑进路由器,否则能做的攻击很少。基本你能黑的是在同一个 LAN 里面的其他客户端,二不是路由器本身。Kaminsky Vulnerability是最常见而且成功率最高的一种。好处就是一黑能黑掉一整个域名,包括子域名。其他的就是笨办法,暴力破解。别人发出一个 DNS 请求,你就马上回复一个 DNS 响应。比的就是你在本地回复和外部 DNS服务器回复那几毫秒的速度优势。
第二种就没啥好说的,没啥技术含量。登陆路由器,直接改 DNS 设置就行了。你想玩高级点的,可以用 iptables 直接劫持端口53. 所有端口53的包全部转发到你的服务器。好处就是不管别人在自己电脑上怎么设 DNS 都没用,还是会被劫持。这招以前大学时玩过,室友上百度的时候我强制给他们一个谷歌的 ip。
第三种也挺好办的,由于在 WAN 口,最简单就是直接给路由器推送一个包就好了。PPPOE 的稍难一些,但是 DHCP 的话,你直接给路由器推送一个 DHCP 的包,路由器的 DNS 就会更新成你的了。
劫持路由器玩法比较多,不仅限于 DNS,以前玩过把某个人的所有网页显示的图片全部倒转,基本就是做一个中间人攻击。少年你还是得思路广一些才行。