使用netwox 的实例进行ARP地址解析协议分析【网络工程】(保姆级图文)

本文介绍了如何使用netwox工具构造ARP请求包、免费ARP数据包,以及周期性发送ARP响应包。通过Wireshark抓包验证这些操作,并展示了如何在Linux下伪造ARP响应以及删除ARP缓存表的过程。
摘要由CSDN通过智能技术生成

目录


欢迎关注 『网络工程专业』 系列,持续更新中
欢迎关注 『网络工程专业』 系列,持续更新中

温馨提示:对虚拟机做任何设置,建议都要先快照备份!

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虚拟机连接本机网络实现上网(保姆级图文)
【更多内容敬请期待】


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发现你走远了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值