开始研究:
标准:
IEEE 802.11是现今无线局域网通用的标准,它是由电气和电子工程师协会(IEEE)所定义的无线网络通信的标准。
IEEE 802.11b
其载波的频率为2.4GHz,可提供1、2、5.5及11Mbit/s的多重传送速度。它有时也被错误地被标为Wi-Fi。实际上Wi-Fi是一个商标,在2.4-GHz的ISM频段共有11个频宽为22MHz的频道可供使用,它是11个相互重叠的频段。IEEE 802.11b的后继标准是IEEE 802.11g
IEEE 802.11g
在2003年7月被通过。其载波的频率为2.4GHz(跟802.11b相同),共14个频段,802.11g的设备向下与802.11b兼容。
其后有些无线路由器厂商,将理论传输速度提升至108Mbit/s或125Mbit/s。
安全性
IEEE 802.11i是IEEE为了弥补802.11脆弱的安全加密功能(WEP,Wired Equivalent Privacy)而制定的修正案,其中定义了基于AES的全新加密协议CCMP(CTR with CBC-MAC Protocol)。Wi-Fi厂商采用802.11i的草案3为蓝图设计了一系列通信设备,随后称之为支持WPA(Wi-Fi Protected Access)的,这个协议包含了向前兼容RC4的加密协议TKIP(Temporal Key Integrity Protocol),它沿用了WEP所使用的硬件并修正了一些缺失,之后称将支持802.11i最终版协议的通信设备称为支持WPA2(Wi-Fi Protected Access 2)的。
802.11网络的基本元素
WLAN的组成
STA (Stations):任何的无线终端设备(手机/PC/平板等)
AP (Access Point):一种特殊的STA,无线接入点,负责信号收发与有线网络桥接
等
标识符
SSID(Service Set ID 服务集识别码)可以简单的理解为无线局域网络的名称
BSSID(Basic Service Set Identifier)用来识别一个特定的无线网络,常与无线接入点(AP)的MAC地址相同
等等更大的集群或者其他细节不多赘述
SSID的作用
网络标识:区分同一区域内不同的无线网络
连接入口:用户通过选择SSID接入目标网络
管理依据:路由器通过SSID控制设备接入权限
SSID的技术特性
格式要求:
最大长度:32字节(支持ASCII字符,包括中文等Unicode字符)
区分大小写(例如“MyWiFi”与“mywifi”视为不同网络)
广播机制:
路由器通过信标帧(Beacon Frame) 周期性广播SSID(默认1秒/次)
隐藏SSID时,信标帧中SSID字段为空,但仍可通过探测请求/响应(Probe Request/Response) 捕获
SSID的网络安全意义
常见风险:
暴露信息:SSID命名可能泄露位置、用途等信息(如“440宿舍”)
钓鱼攻击:伪造同名SSID诱导用户连接(Evil Twin攻击)
隐藏SSID的局限性:通过airodump-ng工具仍可探测到隐藏SSID
802.11中的主动扫描与被动扫描
当客户端将其 IEEE 802.11 无线电更改为正在扫描的信道,广播探测请求,然后等待从该信道上的 AP(具有匹配的 SSID)听到任何探测响应(或周期性信标)时,会发生主动扫描 。IEEE 802.11 标准没有规定客户端应该等待多长时间,但 10 ms 是一个代表性的时间段。主动扫描中使用的探测请求帧有两种类型:
1.定向探测-客户端发送具有特定目的 SSID 的探测请求;只有具有匹配 SSID 的 AP 才会回复探测响应
2.广播探测-客户端在探测请求中发送一个广播 SSID(实际上是一个空 SSID);所有接收到探测请求的 AP 都将响应,并为它们支持的每个 SSID 发送一个探测响应。
被动扫描是通过简单地将客户端 IEEE 802.11 无线电更改为正在扫描的信道并等待该信道上任何 AP 的周期性信标来执行的。默认情况下,AP 每 100 ms 发送一次信标。由于可能需要 100 ms 才能听到周期性信标广播,因此大多数客户端更喜欢主动扫描。
在信道扫描期间,客户端无法发送或接收客户端数据流量 。客户端可以采用多种方法来最大限度地减少对客户端数据流量的影响:
1.后台扫描-客户端可以在需要漫游之前扫描可用信道。这使他们能够积累有关 RF 环境和可用 AP 的知识,以便在必要时可以更快地漫游。通过仅在客户端未主动传输数据时进行扫描,或每次仅定期扫描单个备用信道(扫描单个信道会导致最小的数据丢失),可以最大限度地减少对客户端流量的影响
2.漫游扫描-与后台扫描不同,漫游扫描在确定需要漫游后进行。每个供应商/设备可以实现其自己的算法以最小化漫游延迟和对数据业务的影响。例如,某些客户端可能仅扫描非重叠信道。
典型扫描行为
漫游时扫描-确保客户端在漫游时拥有最新信息。
主动扫描-主动扫描优于被动扫描,因为漫游时延迟较低。
有一些信息属性可用于动态更改漫游算法:
客户端数据类型-例如,正在进行的语音呼叫
背景扫描信息-在常规定期背景扫描期间获得
属性可用于更改扫描算法的方式包括:
扫描信道子集-例如,来自后台扫描的信息可用于确定附近的 AP 正在使用哪些信道。
提前终止扫描-例如,如果正在进行语音呼叫,则可以使用第一个可接受的 AP,而不是等待发现所有信道上的所有 AP。
更改扫描计时器-例如,如果正在进行语音呼叫,则在活动扫描期间等待探测响应所花费的时间可能会缩短。
来源:Active Scanning VS. Passive Scanning 802.11中的主动扫描与被动扫描
设计实验
根据选题和实验开始之前的研究,我将设计如下实验
- 通过Airmon-ng工具对宿舍无线信号进行搜索探测和分析
- 对隐藏了SSID的AP进行探测和分析
SSID探测实践(基于Kali Linux)
正好此前自学了,Kali 中的 Aircrack-ng 这一套工具,买了一个USB网卡(可惜我买的这款网卡不支持5G频段),通过抓包,假装“黑客”破解了自己手机的热点。
所以对运行相关程序比较熟悉,这也是我选此课题的原因之一。
实验环境
准备硬件:支持监听模式的免驱动USB网卡、一台不卡的电脑和用于测试的AP(手机开热点) 软件准备:vmware、kali系统镜像、Aircrack-ng套件 研究要配合实践,首先启动vmware,打开之前下的Kali Linux
Aircrack-ng是一个与802.11标准的无线网络分析有关的安全软件,主要功能有:网络侦测,数据包嗅探,WEP和WPA/WPA2-PSK破解。Aircrack-ng可以工作在任何支持监听模式的无线网卡上(设备列表请参阅其官方网站)并嗅探802.11a,802.11b,802.11g的数据。
安装Airmon-ng
我下载的精简kali没默认安装此工具,所以需要手动安装一下。 在开始安装 Airmon-ng 之前,确保网络没有问题是最为重要的一环。
-
对于网络问题: 要点:一个是保证VMware的ip和vm的虚拟网卡ip网段一致,还有就是共享主机网络,如果代理用虚拟网卡就共享代理的虚拟网卡,这样可以很好解决访问外网的问题 还有校园网有ip限制所以不能用桥接模式 很详细的教程:解决VMware虚拟机NAT上网方式-CSDN
- 要确保Ubuntu 系统软件包是最新的。打开终端,执行以下命令:
sudo apt update
sudo apt upgrade
- 安装Airmon-ng依赖项
Airmon-ng 需要一些依赖项才能正常运行。以下命令将安装所有必要的依赖项:
sudo apt install git build-essential libnl-dev libpcap-dev
- 克隆Airmon-ng源代码
Airmon-ng 通常以源代码的形式提供。以下是克隆 Airmon-ng 源代码的命令:
git clone https://github.com/angryviper666/airodump-ng.git
cd airodump-ng
- 编译并安装Airmon-ng
在克隆源代码后,你需要编译并安装 Airmon-ng。以下命令将完成这一步骤:
sudo make
sudo make install
- 验证安装
安装完成后,你可以通过运行以下命令来验证 Airmon-ng 是否已正确安装:
airmon-ng version
如果一切正常,终端将显示 Airmon-ng 的版本信息。
Aircrack-ng套件的安装就不多赘述,其实在Linux环境下只要解决了网络问题安装软件甚至比Windows环境方便。
USB网卡支持热插拔这点非常好 插入网卡后再VMware中选择链接到虚拟机,在菜单栏-虚拟机-可移动设备-网卡点上勾√ 等待设备自动加载好之后就可以开始探测实验了
实验一
对宿舍环境WiFi环境的探测
首先需要将网卡的监听模式开启
在kali Linux下使用命令查看网卡信息。 ifconfig
启动监听模式
1
airmon-ng start wlan0
启动之前记得检查进程占用:
1
airmon-ng check kill
如果再次使用ifconfig可以发现,我们的网卡已经被重命名为wlan0mon
开始扫描
1
airodump-ng wlan0mon
其中wlan0mon是已经激活监听状态的网卡。
被动监听: 通过捕获信标帧直接获取可见SSID:
1
airodump-ng wlan0mon --essid "Redmi Note 11T Pro+"
主动探测: 向隐藏SSID发送探测请求,触发AP响应:
1
aireplay-ng --deauth 10 -a 02:C1:1A:33:26:B8 wlan0mon # 解除认证攻击迫使设备重连
发动前更改信道至目标AP信道 iwconfig wlan0mon channel 13
实验二
对隐藏了SSID的AP进行探测
从安全的角度来看。隐藏 SSID 会使接入点不可见,但有经验的黑客知道如何找出,而方法有多种。
隐藏 SSID 需要禁用 AP 的 SSID 广播功能。
进行AP设置,转到无线网络设置并选中“隐藏 SSID”。
使用 airodump-ng 确定隐藏网络的 SSID
airodump-ng wlan0mon
现在,使用 airodump 扫描网络时,会看到如下内容:
如图,SSID 不可见。
使用它的 BSSID(mac 地址)运行网络扫描。
airodump-ng -c 13 --bssid 02:C1:1A:33:26:B8 wlan0mon
这里- c是网络运行的通道 6。
等待某个客户端连接。连接客户端后,可以找到 SSID
扩展
使用 mdk3 查找隐藏的网络 SSID
其主要目标是显示 Wi-Fi 网络的弱点。我们将使用 mdk3 对目标接入点进行暴力破解。
先安装:
apt install mdk3 现在运行命令: mdk3 wlan0mon p -b l -c 6 -t 02:C1:1A:33:26:B8
参数: p–暴力模式(ESSID 探测)。 -b — 全枚举模式。 l是一组字符(小写字母)。其他名称: 大写字母 (u)。 位数(n)。 小写和大写 (c)。 小写和大写加数字 (m)。
- c — 广播频道。
- t是目标接入点的 MAC 或 BSSID。
下一个老方法是使用Wireshark检测隐藏的 SSID 。当客户端连接到接入点时,隐藏的 SSID 与身份验证数据包一起发送。所以,我们将 Wireshark 切换到普通模式,选择 WLAN 接口,等待客户端自动连接到目标 WiFi 网络。
客户端已经连接,可以找到隐藏网络的SSID。 为了节省时间,如果客户端没有连接到网络,可以强制它取消身份验证并等待它重新连接。
为了加快速度,您可以使用 deauthentication 方法:
aireplay-ng -0 6 -a 02:C1:1A:33:26:B8 –ignore-negative wlan0mon 现在客户端已取消身份验证,我们可以使用过滤器在 Wireshark 中查找重新身份验证请求:
wlan.bssid == 02:C1:1A:33:26:B8 && !(wlan.fc.type_subtype == 0x08) 无线局域网。bssid - 目标接入点的 MAC。
无线局域网。f.c._ _ type_subtype是用于显示包的过滤器。
0x08 - 接入点广播数据包(信标帧)。
从接入点包中提取 SSID。
参考文献
协议标准:IEEE 802.11-2020 第9章(管理帧结构)
Joshua Wright, Wireless Network Security: A Penetration Tester’s Perspective(第4章 SSID探测技术)
[1] IEEE 802.11-2020. Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications
linux高级学习之路_aircrack-ng 使用
如何找出隐藏的 Wi-Fi 热点的 SSID