如何在Python中使用 Scapy 创建假接入点?
在本文中,我们将讨论如何在Python中使用scapy模块创建假接入点
这个任务可以在Python包scapy-fakeap的帮助下完成。使用这个库的目的不仅是制作假接入点,而且是测试 802.11 协议及其实现。
Scapy是一个Python模块,用于与网络上的数据包进行交互。它具有多种功能,我们可以通过这些功能轻松伪造和操纵数据包。它是一个功能强大的交互式数据包操作程序。它能够伪造或解码多种协议的数据包,通过网络发送它们,捕获它们,匹配请求和回复等等。 Scapy可以轻松处理大多数经典任务,例如扫描、跟踪路由、探测、单元测试、攻击或网络发现。它可以替代hping、arpspoof、arp-sk、arping、p0f甚至Nmap、tcpdump和tshark的某些部分。
安装 :
要使用这个库,你需要在你的系统中安装以下Python包:
- 阴森森的
- ip
- 空气蒙
- dnsmasq(可选)
这些所有Python包都可以通过运行以下命令以简单的步骤安装:
pip3 install scapy-fakeap
笔记:
- 为了深入了解代码,我们都需要将您的设备或网络保持在监控模式。
- 确保您使用的是基于 Unix 或 Linux 的系统。
为了让我们的系统保持更多监控,我们使用了一些实用程序,即aircrack-ng 。可以使用以下命令安装它:
apt-get install aircrack-ng
进入监听模式的步骤:
- 使用airmon-ng命令启用监控模式
- 首先,使用以下命令终止系统的所有进程:
airmon-ng check kill
- 为此启用您的 WLAN 网络,运行命令ifconfig检查系统中的活动网络,然后运行以下命令:
airmon-ng start (your WLAN name)
这将激活您的 WLAN 连接。
您已准备好进一步构建虚假接入点
现在我们将生成一个随机 MAC 地址并设置我们要创建的接入点的名称,然后我们创建一个 802.11 帧,字段为:
- type=0:这将表明这是一个管理帧。
- subtype :这将表明这个管理帧是一个信标帧。
- addr1 :这将引用目标 mac 地址。
- addr2 :这将指源 MAC 地址或发件人的 MAC 地址。
- addr3 :这将指接入点的 MAC 地址。
现在我们将使用addr2和addr3的相同 MAC 地址,因为发送方是接入点。然后我们将使用ssid 信息创建我们的信标帧,然后堆叠在一起并使用scapy模块的sendp()方法发送它们。下面是实现:
Python3
# Import module
from scapy.all import *
# Make an variable interface and assign
# this name of wlan connection name "my-Wlan"
interface = "my_Wlan"
# This will be sender's MAC address
# This is thre random MAC address generated
sender = RandMAC()
# Assign access point name
access_point_name = "Test"
# Here we will define 802.11 frame
dot11 = Dot11(type=0, subtype=8,
addr1="ff:ff:ff:ff:ff:ff",
addr2=sender, addr3=sender)
beacon = Dot11Beacon()
# Assign ssid in frame
e_SSID = Dot11Elt(ID="SSID", info=access_point_name,
len=len(access_point_name))
# stack all the layers and add a RadioTap
frame = RadioTap()/dot11/beacon/e_SSID
# Send the frame in layer 2 every 100 milliseconds
# using the iface interface
sendp(frame, inter=0.1, iface=interface, loop=1)
输出:
当您到达脚本的最后一行并且loop=0时,您的系统将仅发送 1 个数据包作为接入点。
当您到达最后一行代码时 loop=1下面的输出将生成,因为系统将数据包作为访问点连续发送,这将是假的。
按ctrl+c后,您的系统将停止发送数据包。