【网络安全】WIFI WPA/WPA2协议:深入解析与实践

WIFI WPA/WPA2协议:深入解析与实践

1. WPA/WPA2 协议

1.1 监听 Wi-Fi 流量

解析 WPA/WPA2 的第一步是监听 Wi-Fi 流量,捕获设备与接入点之间的 4 次握手数据。然而,设备通常不会频繁连接或重新连接,为了加速过程,攻击者会发送断开认证包 (Deauthentication Packet),强制客户端重新连接,从而捕获新的握手数据。

1.2 四次握手详解

四次握手是设备与路由器确认密码正确性的重要过程。其基本步骤如下:

  1. 路由器发送挑战信息: 路由器向客户端发送一个挑战信息,要求其证明拥有正确的网络密码 (PSK)。

  2. 客户端加密响应: 客户端使用 PSK 加密挑战信息,并将加密结果发送回路由器。

  3. 路由器验证并确认: 路由器验证客户端的加密响应,确认其拥有正确的 PSK,然后发送自己的确认信息。

  4. 最终验证并建立连接: 客户端验证路由器的确认信息,双方完成握手,建立加密连接。

尽管四次握手过程中并不会直接暴露 PSK,但握手数据中包含的信息足以用于离线暴力破解或字典攻击。

1.3 准备工作

在攻击设备上执行以下命令,确定可用的无线网络设备:

sudo iw dev

输出示例:

glitch@wifi:~$ iw dev
phy#2Interface wlan2ifindex 5wdev 0x200000001addr 02:00:00:00:02:00type managedtxpower 20.00 dBm    

我们可以使用设备/接口wlan2,并且从此输出中可以获取两个对我们有用的重要细节:

  1. addr是我们设备的MAC/BSSID。BSSID代表基本服务集标识符,它是无线设备或接入点物理地址的唯一标识符。
  2. type显示为managed 。这是大多数 Wi-Fi 设备(如笔记本电脑、手机等)连接 Wi-Fi 网络时使用的标准模式。在 managed 模式下,设备充当客户端,连接到接入点以加入网络。还有另一种模式称为监控模式monitor mode,我们将很快讨论。

1.4 扫描 Wi-Fi 网络

现在,我们想使用我们的设备扫描附近的 Wi-Fi 网络wlan2。我们可以使用

sudo iw dev wlan2 scan

dev wlan2指定您要使用的无线设备,并scan告诉iw扫描该区域以查找可用的 Wi-Fi 网络。

输出示例:

glitch@wifi:~$ sudo iw dev wlan2 scan
BSS 02:00:00:00:00:00(on wlan2)last seen: 520.388s [boottime]TSF: 1730575383370084 usec (20029d, 19:23:03)freq: 2437beacon interval: 100 TUscapability: ESS Privacy ShortSlotTime (0x0411)signal: -30.00 dBmlast seen: 0 ms agoInformation elements from Probe Response frame:SSID: MalwareM_APSupported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0 DS Parameter set: channel 6ERP: Barker_Preamble_ModeExtended supported rates: 24.0 36.0 48.0 54.0 RSN:	 * Version: 1* Group cipher: CCMP* Pairwise ciphers: CCMP* Authentication suites: PSK* Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)Supported operating classes:* current operating class: 81Extended capabilities:* Extended Channel Switching* Operating Mode Notification         

这里有很多信息需要剖析,但以下是表明该设备是接入点的最重要的细节:

  • 设备的BSSID和SSID分别为和。由于显示了SSID,这意味着设备正在通告网络名称,接入点会这样做以允许客户端发现并连接到网络。02:00:00:00:00:00 MalwareM_AP
  • RSN(Robust Security Network)的存在表明网络正在使用 WPA2,因为 RSN 是 WPA2 标准的一部分。WPA2 网络通常使用 RSN 来定义加密和身份验证设置。
  • Group and Pairwise ciphers 是 CCMP 。带有密码块链接消息认证码协议 (CCMP) 的计数器模式是 WPA2 使用的加密方法。
  • RSN 里面的值Authentication suites是PSK,表示这是一个 WPA2-Personal 网络,使用共享密码进行身份验证。
  • 另一个重要细节是DS Parameter set显示通道 6 的值。就 Wi-Fi 而言,通道是指更宽泛的 Wi-Fi 频谱内允许无线设备相互通信的特定频率范围。Wi-Fi 有多种通道,它们都有助于在不同的频段分配网络流量,从而减少干扰。最常见的两种 Wi-Fi 通道是 2.4 GHz 和 5GHz。在 2.4GHz 频段,通常使用通道 1、6 和 11,因为它们不重叠,可最大限度地减少干扰。在 5 GHz频段,有更多可用通道,允许更多网络共存而不会受到干扰。

现在是时候讨论我们可以在某些无线设备上使用的另一种模式:监控模式。这是一种主要用于网络分析和安全审计的特殊模式。在此模式下,Wi-Fi 接口会监听特定信道上的所有无线流量,无论它是否定向到设备。它会被动捕获范围内的所有网络流量以进行分析,而无需加入网络。我们想检查我们的wlan2接口是否可以使用监控模式。为此,我们将运行命令sudo ip link set dev wlan2 down关闭我们的设备。然后我们将使用 切换模式以sudo iw dev wlan2 set type monitor将 wlan2 更改为监控模式。然后使用 重新打开我们的设备sudo ip link set dev wlan2 up

glitch@wifi:~$ sudo ip link set dev wlan2 down
glitch@wifi:~$ sudo iw dev wlan2 set type monitor
glitch@wifi:~$ sudo ip link set dev wlan2 up

我们可以使用命令确认我们的接口处于监控模式sudo iw dev wlan2 info

输出示例:

glitch@wifi:~$ sudo iw dev wlan2 info
Interface wlan2ifindex 5wdev 0x200000001addr 02:00:00:00:02:00type monitorwiphy 2channel 1 (2412 MHz), width: 20 MHz (no HT), center1: 2412 MHztxpower 20.00 dBm

2. 结论

WPA/WPA2 虽然安全性较高,但仍存在被破解的可能性。

增强防护: 使用强密码、启用 WPA3、禁用 WPS 以及定期更新固件均可显著提高 Wi-Fi 网络安全性。

通过理解其工作原理和漏洞,我们可以更好地保护自己的网络安全。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/64344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ubuntu18.04】ubuntu18.04挂在硬盘出现 Wrong diagnostic page; asked for 1 got 8解决方案

错误日志 [ 8754.700227] usb 2-3: new full-speed USB device number 3 using xhci_hcd [ 8754.867389] usb 2-3: New USB device found, idVendor0e0f, idProduct0002, bcdDevice 1.00 [ 8754.867421] usb 2-3: New USB device strings: Mfr1, Product2, SerialNumber0 [ 87…

金碟中间件-AAS-V10.0安装

金蝶中间件AAS-V10.0 AAS-V10.0安装 1.解压AAS-v10.0安装包 unzip AAS-V10.zip2.更新license.xml cd /root/ApusicAS/aas# 这里要将license复制到该路径 [rootvdb1 aas]# ls bin docs jmods lib modules templates config domains …

Reactor 响应式编程(第四篇:Spring Security Reactive)

系列文章目录 Reactor 响应式编程(第一篇:Reactor核心) Reactor 响应式编程(第二篇:Spring Webflux) Reactor 响应式编程(第三篇:R2DBC) Reactor 响应式编程&#xff08…

【Qt】信号、槽

目录 一、信号和槽的基本概念 二、connect函数:关联信号和槽 例子: 三、自定义信号和槽 1.自定义槽函数 2.自定义信号函数 例子: 四、带参的信号和槽 例子: 五、Q_OBJECT宏 六、断开信号和槽的连接 例子: …

数据库密码加密

数据库密码加密 简单来说: 我们会经常看到重置密码,小时候就会有疑惑,为什么不直接告诉我们密码,原来服务器自己也不知道。 我们都知道密码在数据库中不能明文,不然风险很高,有数据库权限的人还可能恶意利…

PCIE概述

PCIE概述 文章目录 PCIE概述前言一、应用场景二、PCIE理论2.1 硬件2.2 拓扑结构:处理器和设备之间的关系2.3 速率2.4 层次接口2.5 四种请求类型2.5.1 bar空间2.5.2 memory2.5.3 IO2.5.4 configuration2.5.5 message 前言 参考链接: pcie总线知识点解析 …

Android Studio创建新项目并引入第三方so外部aar库驱动NFC读写器读写IC卡

本示例使用设备:https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1bbW3AUC&ftt&id615391857885 一、打开Android Studio,点击 File> New>New project 菜单,选择 要创建的项目模版,点击 Next 二、输入项目名称…

NX系列-使用 `nmcli` 命令创建 Wi-Fi 热点并设置固定 IP 地址

使用 nmcli 命令创建 Wi-Fi 热点并设置固定 IP 地址 一、前言 在一些场景下,我们需要将计算机或嵌入式设备(例如 NVIDIA Orin NX)转换为 Wi-Fi 热点,以便其他设备(如手机、笔记本等)能够连接并使用该设备…

AngularJS 与 SQL 的集成应用

AngularJS 与 SQL 的集成应用 引言 在当今的Web开发领域,AngularJS 和 SQL 是两种非常重要的技术。AngularJS,作为一个强大的前端框架,能够帮助开发者构建复杂且高性能的客户端应用。而SQL(Structured Query Language),作为一种广泛使用的数据库查询语言,是管理关系型…

用docker快速安装电子白板Excalidraw绘制流程图

注:本文操作以debian12.8 最小化安装环境为host系统。 一、彻底卸载原有的残留 apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras 二、设置docker的安装源 # Add Dockers official G…

C++趟坑学习-new,delete,虚析构函数

#include <iostream> using namespace std;class Resource { public:Resource() { cout << "Resource constructed" << endl; }~Resource() { cout << "Resource destructed" << endl; } };int main() {// 动态分配一个包含…

Spring Mvc面试题(常见)

1 Spring MVC的执行流程 用户发起请求,请求先被Servlet拦截以后,转发给SpringMVC框架SpringMVC 里面的DispatcherServlet(核心控制器) 接收到请求,并转发给HandlerMappingHandlerMapping负责解析请求,根据请求信息和配置信息找到匹配的Controller类(当这里有配置拦截器,会…

mac 如何开启指定端口供外部访问?

前言 需要 mac 上开放指定端口&#xff0c;指定 ip 访问 解决 在 macOS 上开放一个端口&#xff0c;并指定只能特定的 IP 访问&#xff0c;可以使用 macOS 内置的 pfctl(Packet Filter)工具来实现。 1、 编辑 pf 配置文件&#xff1a; 打开 /etc/pf.conf 文件进行编辑。 可以使…

如何设置Jsoup解析京东商品详情?

在数字化时代&#xff0c;数据的价值日益凸显&#xff0c;尤其是在电商领域。通过爬虫技术&#xff0c;我们可以从网站中提取有价值的信息&#xff0c;用于市场分析、价格监控等。Java作为一种成熟且功能强大的编程语言&#xff0c;拥有丰富的库支持&#xff0c;使其成为编写爬…

STM32读写flash注意事项

STM32读写Flash时,需要注意以下事项以确保操作的正确性和可靠性: 一、写入操作注意事项 擦除操作: STM32内置Flash的写入操作必须遵循“先擦除,后写入”的原则。擦除操作以页(或扇区)为单位进行,这意味着在写入新数据之前,需要擦除整个页(或扇区)。写入单位: 写入操…

练习题:一维数组

练习题 第一题 键盘录入一组数列&#xff0c;利用冒泡排序将数据由大到小排序 代码 #include <stdio.h>int arr_home01() {int arr[10];int i,j,temp;printf("请输入10个测试整数&#xff1a;\n");int len sizeof(arr) / sizeof(arr[0]);for(i 0;i < …

手眼标定工具操作文档

1.手眼标定原理介绍 术语介绍 手眼标定&#xff1a;为了获取相机与机器人坐标系之间得位姿转换关系&#xff0c;需要对相机和机器人坐标系进行标定&#xff0c;该标定过程成为手眼标定&#xff0c;用于存储这一组转换关系的文件称为手眼标定文件。 ETH&#xff1a;即Eye To …

PyTorch中apex的安装方式

apex是NVIDIA开发的基于PyTorch的混合精度训练加速神器&#xff0c;能够增加运算速度&#xff0c;并且减少显存的占用。 Github地址&#xff1a;https://github.com/NVIDIA/apex官方教程&#xff1a;https://nvidia.github.io/apex/ 安装方式 需要注意的是apex的安装不能通过…

【YashanDB知识库】YCP单机部署离线升级-rpc升级方式详细步骤

前提&#xff1a;每个被纳管的主机必须开放9072端口 1、先执行备份操作 #ycm安装路径为默认/opt/ycmcd /opt/ycm/ycm/scripts[yashanecs-ba94-0001 scripts]$ sudo ./backup.sh -n ycm -i /opt/ycm/ycm -c yashandb -y /home/yashan/yasdb_home/yashandb/22.2.11.105 --cata-…

MyBatis一二级缓存的区别?

大家好&#xff0c;我是锋哥。今天分享关于【MyBatis一二级缓存的区别&#xff1f;】面试题。希望对大家有帮助&#xff1b; MyBatis一二级缓存的区别&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MyBatis 的缓存机制分为 一级缓存 和 二级缓存&…