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的堆栈溢出的文章中,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的文章中,没有提供以太(dst-clientMAC)。这是否意味着它不是必需的?
谢谢。
发布于 2019-03-14 15:08:42
在计算机网络中,ARP欺骗、ARP缓存中毒或ARP毒路由是攻击者向局域网发送(欺骗)地址解析协议(ARP)消息的一种技术。通常,目的是将攻击者的MAC地址与另一个主机的IP地址(例如默认网关)关联起来,从而导致将用于该IP地址的任何通信量发送给攻击者。维基
正如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))它创建并发送以下数据包:
dst被设置为指向客户端(受害者的) MAC。同时,Scapy自动填充其他以太层字段,最重要的是设置为攻击者MAC地址的src字段。这意味着在以太层,数据包似乎来自攻击者。其他以太层字段保持不变,并包含默认值。如果在Scapy中运行以下命令,您可以自己看到它:
a = Ether(dst="clientMAC") a.show()psrc (源IP)字段设置为指向网关节点的IP (在本例中为AP)。现在,请记住,以前,在以太层上,Scapy为我们填写了src字段,并将其设置为指向攻击者的MAC地址。这意味着,发送给客户端(受害者)的最后一个数据包看起来像是来自具有攻击者MAC和Gateway IP地址的主机。我们稍后再谈。现在,让我们继续前进。最后,将客户端的IP地址设置为pdst字段中数据包的目的地。客户端接收此数据包并检查数据包的内容。它看到ARP请求来自Gateway 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地址发生了变化。因此,现在,每当客户端向Gateway节点发送数据包时,它实际上都会将它们发送给攻击者的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)使用这个永无止境的循环,可以有效地阻塞客户端和网关之间的通信。
https://stackoverflow.com/questions/53055062
复制相似问题