ARP协议包类型的几种应用

时间:2023-02-08 16:57:24

     以本机IP: 192.168.1.220 MAC : 00-1F-D0-9C-C6-01   为例

1.ARP请求包,当我们知道网中存在其他主机地址192.168.1.12,而不知道其MAC地址时发送的标准ARP请求包

        EthernetPacket

        目的地址: FF-FF-FF-FF-FF-FF

        源地址    : 00-1F-D0-9C-C6-01 

        包类型    : 0x0806 ARP协议

        ARPPacket

        操作类型: ARP请求 Request

        源物理地址: 00-1F-D0-9C-C6-01

        源IP地址    : 192.168.1.220

        目的物理地址: FF-FF-FF-FF-FF-FF

        目的IP地址    : 192.168.1.12

 2.ARP应答包,比如我是192.168.1.12,当收到上面的请求包时,需要给出一个应答包,我的MAC地址是XX-XX-XX-XX-XX-XX

        EthernetPacket

        目的地址: 00-1F-D0-9C-C6-01

        源地址    : XX-XX-XX-XX-XX-XX

        包类型    : 0x0806 ARP协议

        ARPPacket

        操作类型: ARP请求 Response

        源物理地址: XX-XX-XX-XX-XX-XX

        源IP地址    : 192.168.1.12

        目的物理地址: 00-1F-D0-9C-C6-01

        目的IP地址    : 192.168.1.220

3. 检查IP是否有冲突,当我们发送这样一个包的时候,如果网内检测到有和我IP相同的,会发出一个应答包,这样我们就知道IP地址有冲突了

        EthernetPacket

        目的地址: FF-FF-FF-FF-FF-FF

        源地址    : 00-1F-D0-9C-C6-01

        包类型    : 0x0806 ARP协议

        ARPPacket

        操作类型: ARP请求 Request

        源物理地址: 00-1F-D0-9C-C6-01

        源IP地址    : 192.168.1.220

        目的物理地址: 00-00-00-00-00-00

        目的IP地址    : 192.168.1.220

4.让对方产生IP冲突的应答包 假设本地IP也为192.168.1.220 MAC: XX-XX-XX-XX-XX-XX

        EthernetPacket

        目的地址: 00-1F-D0-9C-C6-01

        源地址    : XX-XX-XX-XX-XX-XX

        包类型    : 0x0806 ARP协议

        ARPPacket

        操作类型: ARP请求 Request

        源物理地址: XX-XX-XX-XX-XX-XX

        源IP地址    : 192.168.1.220

        目的物理地址: 00-1F-D0-9C-C6-01

        目的IP地址    : 192.168.1.220


5.广播正确的网关地址  一般由网关发出,假设网关地址 192.168.1.1   MAC XX-XX-XX-XX-XX-XX

        EthernetPacket

        目的地址: FF-FF-FF-FF-FF-FF

        源地址    : XX-XX-XX-XX-XX-XX

        包类型    : 0x0806 ARP协议

        ARPPacket

        操作类型: ARP请求 Response

        源物理地址: XX-XX-XX-XX-XX-XX

        源IP地址    : 192.168.1.1

        目的物理地址: 01-01-01-01-01-01

        目的IP地址    : 1.1.1.1

6.这是一个欺骗包,假设被欺骗的机器为 192.168.1.220  - 00-1F-D0-9C-C6-01 , 要欺骗的地址192.168.1.XXX  - XX-XX-XX-XX-XX-XX

        EthernetPacket

        目的地址: 00-1F-D0-9C-C6-01

        源地址    : XX-XX-XX-XX-XX-XX

        包类型    : 0x0806 ARP协议

        ARPPacket

        操作类型: ARP请求 Response

        源物理地址: XX-XX-XX-XX-XX-XX

        源IP地址    : 192.168.1.XXX

        目的物理地址: 00-1F-D0-9C-C6-01

        目的IP地址    : 192.168.1.220


但通过实际应用发现,如果本机对外进行网关欺骗,本机也会被欺骗,我是指只对目标主机进行欺骗。而且发送一旦停止,目标主机马上也会恢复连接。不知道我对其他某一个主机欺骗的时候,另外一些主机是否也被欺骗。我敢肯定封包肯定正确,这个现象我是无法理解到底是什么环节出错了。

然后我使用SharpPcap对ARP包嗅探的时候发现,路由会不停的发送问询包裹,应该路由是通过这种方式判断网内主机是否存活。所以我想网关欺骗是不是这样的:

 对目标主机发送虚假的网关MAC地址的同时,应该也向路由发送目标的虚假MAC地址,而且都要不断的发送,因为一旦停止,路由可能还是会发送关于目标主机的问询包。

明天继续试!!