Scapy ARP中毒

问题描述 投票:0回答:1

Scapy文档提供了以下ARP缓存中毒示例:

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

问题1: 我的理解是这是来自客户端的ARP请求的广播。 ARP毒药不应该被攻击者执行:

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))

在这两个数据包中,默认情况下会使用本地计算机的MAC地址填充hwsrc字段。

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

问题3:在Scapy文档中:

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

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

谢谢。

scapy arp
1个回答
0
投票

在计算机网络中,ARP欺骗,ARP缓存中毒或ARP毒性路由是攻击者将(欺骗性)地址解析协议(ARP)消息发送到局域网的一种技术。通常,目标是将攻击者的MAC地址与另一个主机(例如默认网关)的IP地址相关联,从而导致将该IP地址的任何流量发送给攻击者。 Wiki

正如Scapy文档中提到的那样,

ARP缓存中毒攻击通过VLAN跳跃攻击中毒其ARP缓存,防止客户端加入网关。

他们的意思是穷人客户端无法将他的数据包发送到网关(在这种情况下是接入点),并且无法与外部资源通信。但请注意,同一客户端仍然可以与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自动填充其他以太层图层字段,最重要的是,src字段设置为攻击者的MAC地址。这意味着在Ether层上,数据包似乎来自攻击者。其他以太层图层字段保持不变并包含默认值。如果在Scapy中运行以下命令,您可以自己查看: a = Ether(dst="clientMAC") a.show()
  2. 现在,在IP层上,攻击者制作了一个ARP请求数据包,在该数据包中,他将psrc(源IP)字段设置为指向网关节点的IP(在本例中为AP)。现在,请记住,之前,在Ether层上,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)

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

© www.soinside.com 2019 - 2024. All rights reserved.