【网络安全】WIFI WPA/WPA2协议:深入解析与实践
WIFI WPA/WPA2协议:深入解析与实践
1. WPA/WPA2 协议
1.1 监听 Wi-Fi 流量
解析 WPA/WPA2 的第一步是监听 Wi-Fi 流量,捕获设备与接入点之间的 4 次握手数据。然而,设备通常不会频繁连接或重新连接,为了加速过程,攻击者会发送断开认证包 (Deauthentication Packet),强制客户端重新连接,从而捕获新的握手数据。
1.2 四次握手详解
四次握手是设备与路由器确认密码正确性的重要过程。其基本步骤如下:
-
路由器发送挑战信息: 路由器向客户端发送一个挑战信息,要求其证明拥有正确的网络密码 (PSK)。
-
客户端加密响应: 客户端使用 PSK 加密挑战信息,并将加密结果发送回路由器。
-
路由器验证并确认: 路由器验证客户端的加密响应,确认其拥有正确的 PSK,然后发送自己的确认信息。
-
最终验证并建立连接: 客户端验证路由器的确认信息,双方完成握手,建立加密连接。
尽管四次握手过程中并不会直接暴露 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,并且从此输出中可以获取两个对我们有用的重要细节:
addr是我们设备的MAC/BSSID。BSSID代表基本服务集标识符,它是无线设备或接入点物理地址的唯一标识符。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 网络安全性。
通过理解其工作原理和漏洞,我们可以更好地保护自己的网络安全。
相关文章:
【网络安全】WIFI WPA/WPA2协议:深入解析与实践
WIFI WPA/WPA2协议:深入解析与实践 1. WPA/WPA2 协议 1.1 监听 Wi-Fi 流量 解析 WPA/WPA2 的第一步是监听 Wi-Fi 流量,捕获设备与接入点之间的 4 次握手数据。然而,设备通常不会频繁连接或重新连接,为了加速过程,攻…...
前端使用xlsx-js-style导出Excel,带样式,并处理合并单元格边框显示不全和动态插入表头解决
一、在学习之前,先给出一些学习/下载地址: xlsx-js-style下载地址 https://github.com/gitbrent/xlsx-js-style 或者 https://www.npmjs.com/package/xlsx-js-style SheetJS中文教程: https://xlsx.nodejs.cn/docs/csf/cell 二、先看样…...
自动化工具ansible部署和实践
1 介绍和部署 1.1 介绍 ansible的功能 我爱你在当今的IT自动化领域,Ansible无疑是一个无法被忽视的重要角色。其便利性和高效性受到了广大开发者和系统管理员的一致好评,成为了配置管理和应用部署的首选工具。然而,对于一些初学者来说&#…...
无人机推流直播平台EasyDSS视频技术如何助力冬季森林防火
冬季天干物燥,大风天气频繁,是森林火灾的高发期。相比传统的人力巡查,无人机具有更高的灵敏度和准确性,尤其在夜间或浓雾天气中,依然能有效地监测潜在火源。 无人机可以提供高空视角和实时图像传输,帮助巡…...
React Fiber
React Fiber 是 React 16 引入的全新重写的协调(Reconciliation)算法的实现,旨在改善 React 的更新机制和性能,尤其是在复杂应用和大量更新的场景下。它使得 React 更加灵活、可调度,能够实现优先级控制和中断更新等特…...
【前端】JavaScript 中的 map() 方法:高级解析与应用
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 💯前言💯map() 方法的定义与核心特性1.1 方法定义1.2 主要特性 💯map() 方法的语法与高级用法2.1 基本语法2.2 简化写法与箭头函数2.3 结合链式操作 💯ma…...
《智能体开发实战(高阶)》四、系统化的日志周报智能体开发计划
智能体扩展与完善规划 为了将前几个章节的智能体逐步扩展为支持整个公司团队使用的高效工具,以下是分阶段的完善与扩写规划。每个阶段旨在提升功能覆盖范围、处理能力和用户体验,并为企业提供实际价值。 阶段一:基础功能完善 目标:巩固现有功能,提升健壮性和适用性。 支…...
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球最受欢迎的Web服务器软件,支持约30.2%的所有活跃网站。凭借其可靠性、灵活性和强大的功能,Apache数十年来一直是互联网的中坚力量。 一、Apache Web服务器的工作原理 Apache Web服务器的工作原理如下: 接收HTTP请求࿱…...
Mybatis——(2)
2.2 Mybatis 工具类(了解) 为了简化MyBatis的开发,可将MyBatis进一步封装。 import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apa…...
景联文科技入选中国信通院发布的“人工智能数据标注产业图谱”
近日,由中国信息通信研究院、中国人工智能产业发展联盟牵头,联合中国电信集团、沈阳市数据局、保定高新区等70多家单位编制完成并发布《人工智能数据标注产业图谱》。景联文科技作为人工智能产业关键环节的代表企业,入选图谱中技术服务板块。…...
修改浏览器地址栏参数
Vue 修改当前页面地址栏参数 function updateUrlParameter(param: string, value: string) {const url new URL(window.location.href); // 获取当前页面的 URL// 解析哈希部分const hash url.hash ? url.hash.slice(1) : "";const [path, queryString] hash.sp…...
Spring Boot教程之二十五: 使用 Tomcat 部署项目
Spring Boot – 使用 Tomcat 部署项目 Spring Boot 是一个基于微服务的框架,在其中创建可用于生产的应用程序只需很少的时间。Spring Boot 建立在 Spring 之上,包含 Spring 的所有功能。如今,它正成为开发人员的最爱,因为它是一个…...
解决 Git 默认不区分文件名大小写的问题
不得不说 Git 默认不区分文件名大小写真是一个大坑,由于之前的项目目录比较乱,项目下的文件夹命名都不规范,这两天一直在整理,然后今天从服务器将项目重新 clone 下来后发现,之前将所有文件名首字母改成大写的改动全部…...
python学opencv|读取图像(十二)BGR图像转HSV图像
【1】引言 前述已经学习了opencv中图像BGR相关知识,文章链接包括且不限于下述: python学opencv|读取图像(六)读取图像像素RGB值_opencv读取灰度图-CSDN博客 python学opencv|读取图像(七)抓取像素数据顺利…...
信息安全工程师-选择题考点总结
密码理论知识 基础理论 一个密码系统至少由明文、密文、加密算法、解密算法和密钥五个部分组成,而其安全性是由密钥决定的。 按照密钥特征的不同,密码体制分为:对称密码体制和非对称密码体制。 按照对明文加密方式的不同,密码体制分为:流密码和分组密码。 非对称密码体…...
重学SpringBoot3-WebClient配置与使用详解
更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-WebClient配置与使用详解 1. 简介2. 环境准备2.1 依赖配置 3. WebClient配置3.1 基础配置3.2 高级配置3.3 retrieve()和exchange()区别 4. 使用示例4.1 …...
springBoot中的日志级别在哪里配置
在Spring Boot中,日志级别的配置可以通过多种方式来实现,主要包括在配置文件中设置、使用自定义的logback配置文件,以及在代码中动态配置等。以下是一些具体的配置方法: 一、在配置文件中设置日志级别 Spring Boot默认使用appli…...
统一身份安全管理体系的业务协同能力
随着集团企业数字化组织转型深化,各组织机构间业务协同程度提升。研发业务协同、数据驱动生产决策等数字化生产协作工作体系得以展开,企业内数据流转加快。企业对统一身份安全管理体系的业务协同管理和支撑能力要求提升: 统一身份管理流程需…...
JAVA课堂笔记23(IO流 (java.io包中))
第五章:IO流 (java.io包中) 三、字符流 1. 字符流的父类(抽象类): Reader:字符输入流 对应的操作为读操作 功能方法:read方法 Writer:字符输出流 对应的操作为写操作 功能方法:write方法 …...
C# DLT645 97/07数据采集工具
电表模拟器 97协议测试 07协议测试 private void btnSend_Click(object sender, EventArgs e) {string addr txtAddr.Text.Trim();string data txtDataFlg.Text.Trim();byte control 0x01;switch (cmbControl.SelectedIndex){case 0: control (byte)0x01; break;// 97协议c…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
