目录
- 1. netwox 构造 ARP 报文
- 使用 netwox 工具构造 ARP 包。
- 1) 查看 netwox 所在主机默认的 ARP 包的相关信息,执行命令如下:
- 2) 构造 ARP 请求包,请求目标主机 192.168.43.95,执行命令如下:
- 3) 为了验证构造的 ARP 请求包,使用 Wireshark 进行抓包,如图所示。
- 4) 如果请求的目标主机存在,将成功返回 ARP 响应数据包,如图所示。
- 2. netwox构造免费ARP数据包
- 1) 构造免费的 ARP 数据包
- 2) 使用 Wireshark 进行抓包
- 3. netwox周期性发送ARP响应包
- 实验设备
- 1) 在发送ARP响应之前,在主机B上查看主机ARP缓存表信息,执行命令如下:
- 2) 创建虚拟主机 192.168.43.97,并向该主机发送 ARP 响应包,设置 MAC 地址为 00:01:01:21:22:23,执行命令如下:
- 3) 此时再次在主机B上查看主机 ARP 缓存表信息,执行命令如下:
- 4) 为了验证发送的 ARP 响应包,捕获数据包进行查看,如图所示。
- 4. 伪造ARP响应
- 1) 在模拟之前,验证局域网中是否存在主机 192.168.43.97。在主机 B 上使用 arping 命令 ping 该主机。执行命令如下:
- 2) 在主机 A 上伪造 ARP 响应,创建虚拟主机 192.168.43.97,设置其 MAC 地址为 A1:B2:C3:D4:E5:F6。执行命令如下:
- 3) 再次在主机 B 上使用 arping 命令 ping 该主机。执行命令如下:
- 4) 为了验证整个过程,捕获数据包进行查看,如图所示。
- 5) 查看对应的响应包,如图所示。
- 5. linux下删除ARP缓存表
- 总结
欢迎关注 『网络工程专业』 系列,持续更新中
欢迎关注 『网络工程专业』 系列,持续更新中
温馨提示:对虚拟机做任何设置,建议都要先快照备份!
1. netwox 构造 ARP 报文
- ARP 报文默认由操作系统自动发送。用户可以自己构造 ARP 报文,向目标主机发送请求,从而获取目标主机的 MAC 地址。这时,可以使用 netwox 工具提供的编号为 33 的模块。
使用 netwox 工具构造 ARP 包。
1) 查看 netwox 所在主机默认的 ARP 包的相关信息,执行命令如下:
root@kail:~# netwox 33
输出信息如下:
Ethernet________________________________________________________.
| 00:0C:29:FE:F5:87->00:08:09:0A:0B:0C type:0x0806 |
|_______________________________________________________________|
ARP Request_____________________________________________________.
| this address : 00:0C:29:FE:F5:87 0.0.0.0 |
| asks : 00:00:00:00:00:00 0.0.0.0 |
|_______________________________________________________________|
- 上述输出信息中,Ethernet 部分为以太网信息。ARP Request 部分为 ARP 请求。this address 表示源地址信息。其中,00:0C:29:FE:F5:87 为源主机 MAC 地址;asks 为目标地址信息,这里为 ARP 请求包。由于还没有构造请求,因此地址为 0。
2) 构造 ARP 请求包,请求目标主机 192.168.43.95,执行命令如下:
root@kali:~# netwox 33 -i 192.168.43.95
输出信息如下:
Ethernet________________________________________________________.
| 00:0C:29:FE:F5:87->00:08:09:0A:0B:0C type:0x0806 |
|_______________________________________________________________|
ARP Request_____________________________________________________.
| this address : 00:0C:29:FE:F5:87 0.0.0.0 |
| asks : 00:00:00:00:00:00 192.168.43.95 |
|_______________________________________________________________|
-
此时,ARP Request 部分 asks 中的 00:00:00:00:00:00 为目标 MAC 地址,因为正在请求目标主机的 MAC 地址,所以为 00:00:00:00:00:00。
-
192.168.43.95 为目标主机的IP地址,表示向该主机进行 ARP 请求。
3) 为了验证构造的 ARP 请求包,使用 Wireshark 进行抓包,如图所示。
- 其中,第一个数据包为构造的 ARP 请求包。在 Address Resolution Protocol(request) 部分中,Opcode 的值为 request(1),表示该数据包为 ARP 请求包;Target MAC address 的值为 00:00:00_00:00:00(00:00:00:00:00:00),表示此时没有获取目标 MAC 地址;Target IP address 的值192.168.43.95,表示请求主机的 IP 地址。
4) 如果请求的目标主机存在,将成功返回 ARP 响应数据包,如图所示。
- 其中,第 2 个数据包为 ARP 响应数据包。在 Address Resolution Protocol(reply) 部分中,Opcode 的值为 reply(2),表示该数据包为 ARP 响应包;Sender IP address 的值为 192.168.43.96,表示此时源主机为目标主机;Sender MAC address 的值为 00:0c:29:cb:12:93,表示 00:0c:29:fe:f5:87 为目标主机 192.168.43.95 的 MAC 地址。
2. netwox构造免费ARP数据包
1) 构造免费的 ARP 数据包
- 设置源 IP 地址和目标 IP 地址为 192.168.43.96,执行命令如下:
root@kail:~# netwox 33 -g 192.168.43.96 -i 192.168.43.96
输出信息如下:
Ethernet________________________________________________________.
| 00:0C:29:FE:F5:87->00:08:09:0A:0B:0C type:0x0806 |
|_______________________________________________________________|
ARP Request_____________________________________________________.
| this address : 00:0C:29:FE:F5:87 192.168.43.96 |
| asks : 00:00:00:00:00:00 192.168.43.96 |
|_______________________________________________________________|
2) 使用 Wireshark 进行抓包
验证构造的免费 ARP 数据包,如图所示。
-
注意启动了wireshark后这个terminal就锁定了,直到关闭wireshark才能再执行别的命令,所以要新开一个terminal窗口用于下面的命令。如下图所示:
-
得到的抓包结果
-
其中,第一个数据包的 Info 列显示 Gratuitous ARP for 192.168.43.96(Request),表示该数据包为构造的免费 ARP 数据包
在 Address Resolution Protocol(request/gratuitous ARP) 部分中,Sender IP address 和 Target IP address 的值为同一个 IP 地址 192.168.43.96。
3. netwox周期性发送ARP响应包
实验设备
已知 netwox 所在主机为主机 A,主机 B 的 IP 地址为 192.168.43.96。使用 netwox 工具发送 ARP 响应包,以更换 ARP 缓存表中主机的 MAC 地址信息。
1) 在发送ARP响应之前,在主机B上查看主机ARP缓存表信息,执行命令如下:
root@kail:~# arp -a
- 输出信息如下:
_gateway (192.168.43.1) at 52:bc:83:98:1e:cb [ether] on eth0
- 上述输出信息中,主机 192.168.43.96 的 MAC 地址为 52:bc:83:98:1e:cb。
2) 创建虚拟主机 192.168.43.97,并向该主机发送 ARP 响应包,设置 MAC 地址为 00:01:01:21:22:23,执行命令如下:
root@kail:~# netwox 80 -i 192.168.43.97 -e 00:01:01:21:22:23
- 执行命令后没有任何输出信息。
3) 此时再次在主机B上查看主机 ARP 缓存表信息,执行命令如下:
root@kail:~# arp -a
输出信息中,主机 192.168.43.1 的 MAC 地址由原来的 00:0c:29:bc:a4:89 变为了 00:01:01:21:22:23。
4) 为了验证发送的 ARP 响应包,捕获数据包进行查看,如图所示。
其中,第 1-8 个数据包为重复发送的 ARP 响应包。
4. 伪造ARP响应
以主机 A 为基础实施伪造 ARP 响应
伪造模拟主机 192.168.43.97,其 MAC 地址为 A1:B2:C3:D4:E5:F6。已知局域网中另一主机为主机 B,其 IP 地址为 192.168.59.135。具体步骤如下:
1) 在模拟之前,验证局域网中是否存在主机 192.168.43.97。在主机 B 上使用 arping 命令 ping 该主机。执行命令如下:
root@kail:~# arping 192.168.43.97
输出信息如下:
ARPING 192.168.43.97 from 192.168.59.135 eth0
没有任何输出信息,表示主机 192.168.43.97 不存在。
2) 在主机 A 上伪造 ARP 响应,创建虚拟主机 192.168.43.97,设置其 MAC 地址为 A1:B2:C3:D4:E5:F6。执行命令如下:
root@kail:~# netwox 73 -i 192.168.43.97 -e A1:B2:C3:D4:E5:F6
执行命令后没有任何输出信息,但是成功创建模拟的主机 192.168.43.97。
3) 再次在主机 B 上使用 arping 命令 ping 该主机。执行命令如下:
root@kail:~# arping 192.168.43.97
输出信息如下:
ARPING 192.168.43.97 from 192.168.43.96 eth0
Unicast reply from 192.168.43.97 [A1:B2:C3:D4:E5:F6] 11.259ms
Unicast reply from 192.168.43.97 [A1:B2:C3:D4:E5:F6] 19.159ms
Unicast reply from 192.168.43.97 [A1:B2:C3:D4:E5:F6] 23.444ms
Unicast reply from 192.168.43.97 [A1:B2:C3:D4:E5:F6] 30.950ms
Unicast reply from 192.168.43.97 [A1:B2:C3:D4:E5:F6] 36.612ms
- 以上输出信息表示已经成功向主机 192.168.43.97 发出 arping 命令,并得到了对应的 MAC 地址 A1:B2:C3:D4:E5:F6,表示该主机是存在的。
4) 为了验证整个过程,捕获数据包进行查看,如图所示。
- 其中,第 1 个数据包为 ARP 请求包,可以看到源 IP 地址为 192.168.43.96(主机 B),目标 IP 地址为 192.168.43.97(虚拟主机)。这说明的确向虚拟主机发送了 ARP 请求。
5) 查看对应的响应包,如图所示。
- 其中,第 2 个数据包为 ARP 响应包,可以看到源 IP 地址为 192.168.43.97(虚拟主机的),目标主机的 IP 地址为 192.168.43.96(主机 B),源 MAC 地址为 a1:b2:c3:d4:e5:f6(假的),目标 MAC 地址为 00:0c:29:ca:e4:66(主机 B)。这说明虚拟主机成功给主机 B 返回了响应。
5. linux下删除ARP缓存表
这里老师的命令ip neigh flush dev ens33有问题,这句适用于Unix系统中有网卡ens33,然而我们的kail的网卡是eth0,所以我们需要改变命令为
ip neigh flush dev eth0
原来的arp表
删除后的arp表
总结
大家喜欢的话,给个👍,点个关注!继续跟大家分享敲代码过程中遇到的问题!
版权声明:
发现你走远了@mzh原创作品,转载必须标注原文链接
Copyright 2022 mzh
Crated:2022-3-6
欢迎关注 『网络工程专业』 系列,持续更新中
欢迎关注 『网络工程专业』 系列,持续更新中
【网络工程】vmware虚拟机连接本机网络实现上网(保姆级图文)
【更多内容敬请期待】