gpt4 book ai didi

Scapy ARP 中毒

转载 作者:行者123 更新时间:2023-12-05 00:59:35 26 4
gpt4 key购买 nike

Scapy 文档给出了以下 ARP 缓存中毒的例子:

send(Ether(dst=clientMAC)/ARP(op="who-has", psrc=gateway, pdst=client))

问题一:
我的理解是,这是来自客户端的 ARP 请求的广播。攻击者不应该执行 ARP Poison 来响应:

send(Ether(dst=clientMAC)/ARP(op="is-at", psrc=gateway, pdst=client))

问题 2:在关于 Scapy 的 stackoverflow 帖子中,OP 发布了:

这会向受害者发送一个 ARP 回复数据包,其中本地机器伪装成路由器:

send(ARP(op=ARP.is_at, psrc=router_ip, hwdst=victim_mac, pdst=victim_ip))

这会向路由器发送一个 ARP 回复数据包,其中本地机器伪装成受害者:

send(ARP(op=ARP.is_at, psrc=victim_ip, hwdst=router_mac, pdst=router_ip))

在这两个数据包中,hwsrc 字段默认填充为本地机器的 MAC 地址。

但是 Scapy 文档没有提到 hwdst 是必需的。我想知道为什么。

问题 3:在 Scapy 文档中:

send(Ether(dst=clientMAC)/ARP(op="who-has", psrc=gateway, pdst=client))

但在问题 2 的 OP 帖子中,未提供 Ether(dst-clientMAC)。这是否意味着不需要?

谢谢。

最佳答案

In computer networking, ARP spoofing, ARP cache poisoning, or ARP poison routing, is a technique by which an attacker sends (spoofed) Address Resolution Protocol (ARP) messages onto a local area network. Generally, the aim is to associate the attacker's MAC address with the IP address of another host, such as the default gateway, causing any traffic meant for that IP address to be sent to the attacker instead. Wiki

正如 Scapy 文档中提到的,

ARP cache poisoning attack prevents a client from joining the gateway by poisoning its ARP cache through a VLAN hopping attack.

他们的意思是,可怜的客户端将无法将他的数据包发送到网关(在这种情况下为接入点),并且无法与外部资源通信。但是请注意,同一个客户端仍然能够与 VLAN 内的其他主机通信。即使是攻击者(假设它也连接到同一个 WiFi 网络)。

让我们一步一步来看看这个攻击。

在此之前,我们更进一步,让我们检查一下客户端当前的 ARP 表(在执行攻击之前)。在 Linux 上查看 ARP 表需要运行以下命令:

$ sudo arp -n

Address HWtype HWaddress Flags Mask Iface
192.168.1.1 ether 54:f6:15:f5:51:55 C wlan0

如您所见,ARP 表只有一条记录,其中列出了网关 IP 地址 (192.168.1.1) 和 MAC (54:f6:15:f5:51:55)。

当攻击者在 Scapy 中执行以下命令时:

send(Ether(dst=clientMAC)/ARP(op="who-has", psrc=gateway, pdst=client))

它创建并发送以下数据包:

  1. 在以太层,目的MAC地址dst被设置为指向客户端(受害者)的MAC。同时,Scapy 会自动填写其他 Ether 层字段,最重要的是设置为攻击者 MAC 地址的 src 字段。这意味着在以太层上,数据包似乎来自攻击者。其他以太层字段保持不变并包含默认值。如果你在 Scapy 中运行以下命令,你可以自己看到它:

    a = Ether(dst="clientMAC")
    a.show()

  2. 现在,在 IP 层,攻击者制作了一个 ARP 请求包,他在其中设置 psrc(源 IP)字段指向网关节点的 IP(本例中的 AP案子)。现在,请记住之前,在以太层上,Scapy 为我们填写了 src 字段并将其设置为指向攻击者的 MAC 地址。这意味着,发送给客户端(受害者)的最终数据包看起来像是来自具有攻击者 MAC 和网关 IP 地址的主机。我们稍后再谈。现在,让我们继续。最后,客户端的 IP 地址在 pdst 字段中设置为数据包的目的地。

  3. 数据包被创建并发送给客户端(受害者)。

客户端收到此数据包并检查数据包的内容。它看到 ARP 请求来自网关 IP(假设它是 192.168.1.1)。它检查数据包以太层中的 MAC 地址字段 psrc(假设它是 a9:2b:24:9c:fd:c7)并更新它的 ARP 表,现在看起来如下:

$ sudo arp -n

Address HWtype HWaddress Flags Mask Iface
192.168.1.1 ether a9:2b:24:9c:fd:c7 C wlan0

如您所见,IP 地址保持不变,但 MAC 地址发生了变化。因此,现在,每当客户端向网关节点发送数据包时,它实际上会将它们发送到攻击者的 MAC。如果攻击者的目标是阻止客户端与网关通信,这些数据包将被丢弃并且永远不会传递到所需的目的地。

当攻击者不断向客户端发送精心设计的 ARP 数据包时,客户端将无法与网关通信。一旦攻击者停止,来自网关的真实 IP 和 MAC 地址的真实 ARP 请求最终将到达 eh 客户端,恢复正常通信。这就是为什么,作为攻击者,您可能想要创建一个循环来发送恶意数据包,如下所示:

sendp(Ether(dst=”CLIENT-MAC”)/ARP(op="who-has", psrc=”GATEWAY-IP”, pdst=”CLIENT-IP”), inter=0.2, loop=1)

通过这个永无止境的循环,您可以有效地干扰客户端和网关之间的通信。

关于Scapy ARP 中毒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53055062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com