《Kali渗透基础》13. 无线渗透(三)
kali渗透
- 1:无线通信过程
- 1.1:Open 认证
- 1.2:PSK 认证
- 1.3:关联请求
- 2:加密
- 2.1:Open 无加密网络
- 2.2:WEP 加密系统
- 2.3:WPA 安全系统
- 2.3.1:WPA1
- 2.3.2:WPA2
- 3:安全协议协商
- 3.1:企业 WPA 连接过程
- 3.2:个人 WPA 连接过程
- 4:密钥交换
本系列侧重方法论,各工具只是实现目标的载体。
命令与工具只做简单介绍,其使用另见《安全工具录》。
本文以 kali-linux-2023.2-vmware-amd64 为例。
无线网卡使用 MT7612u 芯片。
无线渗透与其他章节独立,涵盖面广。
无线技术变化快,难度大。
理论是本章最有价值的部分。
1:无线通信过程

- Probe(探测)
- STA 向所有信道发出 Probe 帧,发现 AP
- AP 应答 Response
- Authentication(验证)
- STA 向 AP 发出验证请求
- 发生认证过程(步骤可变)
- AP 响应 STA 的认证结果
- Association(关联)
- STA 发出关联请求
- AP 响应关联请求
- 关联成功,开始通信

WEP 探测过程:
- Beacon 标识使用 WEP 加密
- STA 发送普通 Probe 帧
- AP 响应 Probe Response 帧,声明其采用 WEP 加密
WPA 探测过程:
- 两个 AP 的 Beacon 包内容不同,但都声明采用 WPA 加密
- 不同厂商对 802.11 标准的实现方式不同
- 包头包含 WPA1 字段信息
1.1:Open 认证
WEP Open 认证与 Open 认证通信过程相同。
- 成功认证后通信数据被 WEP 加密
- 如果认证时客户端输入错误密码,认证依然可以通过
- 起始向量被错误的密钥解密,完整性被破坏
- 数据传输将失败
- AP 将丢弃该 STA 的数据包
- 认证响应正确,身份验证成功
1.2:PSK 认证
PSK(Per-Shared Key),预共享密钥。

- STA 发送认证请求
- AP 返回随机 Challenge 消息(Cha)
- STA 使用 PSK 加密 Cha 并发回给 AP
- AP 使用 PSK 解密密文,获得 Cha 并与原始 Cha 比对
- 相同则验证成功,不同则验证失败
大部分无线驱动首先尝试 Open 验证,如失败则尝试 PSK。
1.3:关联请求
- STA 向 AP 发送关联请求。
- AP 向 STA 发送关联成功或失败结果
无论使用什么加密架构,关联过程完全相同。
对于隐藏 AP,STA 关联包中必须包含目标 AP 的 ESSID。
嗅探到此关联包,说明有隐藏 AP 存在。
2:加密
无线安全根源:
- 802.11 基于无线电波发射信息
- 嗅探侦听是主要问题
- 加密机制是必须手段
加密机制:
- Wired Equivalent Privacy(WEP)
- 802.11 标准的一部分
- 发布后不久被发现存在安全漏洞
- Wi-Fi Protected Access(WPA)
- WPA1
- WPA2(802.11i 标准)
2.1:Open 无加密网络
- 无任何加密机制
- 所有数据都可以被嗅探
- STA 和 AP 协商拼配参数即可连入网络
2.2:WEP 加密系统
WEP(Wired Equivalent Privacy)加密系统使用 RC4(Rivest Cipher 4)算法加密流量内容,实现机密性。
WEP 使用 RC4 算法产生伪随机序列流,将其与要传输的明文进行 xor 运算,再利用 CRC 算法生成 ICV 完整性校验值,再将刚刚的 xor 内容和 ICV 组合在一起,完成传输。
- 使用 CRC-32 校验和来检测数据完整性。
- 标准采用使用 24 位 Initialization Vector(IV)
IV 重用问题(IV 冲撞问题),即不同的数据帧加密时使用的 IV 值相同。
- 使用相同的数据帧加密密钥加密是不安全的。
- 数据帧加密密钥是基密钥与 IV 串联而成。
- 实际上用户普遍使用的基密钥是 Key ID 为 0 的 default key,因而不同的数据帧加密使用相同的 IV 是不安全的。
- 而且,IV 是明文传送的,攻击者可以获得使用相同加密密钥的数据帧,由此获得密钥。
- 所以要避免使用相同的 IV。不仅同一个用户站点要避免使用重复的 IV,而且要避免使用别的用户站点使用过的 IV。
2.3:WPA 安全系统
WPA,Wi-Fi Protected Access。
802.11i 组为提高无线安全,开发两个新的链路层加密协议。
-
WPA1:Temporal Key Integrity Protocol(TKIP)
较之 WEP 可动态改变密钥 -
WPA2:Counter Mode with CBC-MAC(CCMP)
WPA 两种安全类型:
-
WPA 个人:使用预设共享密钥(PSK)实现身份验证
即常说的 WiFi 密码。 -
WPA 企业:使用 802.1X 和 Radius 服务器实现验证
使用 Radius 服务器做 802.1X 认证,分发不同的密钥给各个终端用户。
2.3.1:WPA1
802.11i 第三版草案。
与 WEP 比较:
- 都采用逐包进行密钥加密
- 128 位的 key 和 48 位的初向量(IV)
- RC4 流加密数据
- 帧计数器避免重放攻击
- TKIP 使用 Michael 算法进行完整性校验(MIC)
- WEP 使用 CRC-32 进行完整性校验
- 兼容早期版本硬件
2.3.2:WPA2
依据 802.11i 完全重新设计实现。
- 也被称为 Robust Security Network(RSN)
- CCMP 替代 TKIP
- AES 加密算法取代了 RC4
- 不兼容早期版本硬件
3:安全协议协商
协商认证方式:
- PSK
- 802.1X
单播和组播 / 广播流量加密套件:
- TKIP
- CCMP
STA 通过 Probe 获取无线网络信息。
3.1:企业 WPA 连接过程

- 协商安全协议
- 身份认证
- 密钥分发和验证
- 数据加密完整性
WPA 企业身份认证基于 Extensible Authentication Protocol(EAP)实现。
- EAP-TLS,需要客户端和服务器证书
- EAP-TTLS
- PEAP 混合身份验证,只需要服务器证书
认证过程:
- 客户端选择身份认证方式
- AP 发送身份验证信息给 Radius Server
- Radius Server 返回 “ Radius Accept ” 表示认证成功
其中包含 Master Key(MK) - AP 通过 EAP 消息通知 STA 认证成功
3.2:个人 WPA 连接过程

- 协商安全协议
- 密钥分发和验证
- 数据加密完整性
4:密钥交换
无线网络用于一组无线设备通信,关联到同一 AP 的设备共享无线信道。
对于单播、广播、组播,安全特性要求不同:
-
单播通信需要单独密钥加密通信双方流量。
pairwise key:对偶密钥(PTK) -
组播通信需要信任域内所有成员共享的同一密钥。
group key:组密钥(GTK)

PMK(Pairwise Master Key),是在安全上下文中的最高级别密钥,通过对主密钥(Master Key,MK)进行 TLS-PRF 加密而获得。
对于企业服务密钥方式:
- 由上层身份验证方法服务器生成。
- 服务器通过 Radius 传递给 AP。
- AP 通过 EAP 消息将密钥传递给所有 STA。
对于预共享密钥方式:
- 使用 ESSID、PSK 和迭代运算,进行散列计算生成。
- STA 和 AP 分别计算获得各自的 PMK,这一过程不在网络中传递或交换。
- PMK 长度为 256 位,即 32 字节。
四步握手过程生成 PTK(Pairwise Transient Key):
- AP 向 STA 发送 Anonce。
- STA 使用自己的随机数(Snonce)计算出 PTK。
- STA 将 Snonce 与 PTK 的消息完整性码(Message Integrity Code,MIC)发送给 AP。
- AP 使用 Snonce 计算出相同的 PTK。
- AP 计算 MIC,并将其与接收到的 MIC 进行比对。
- 如果 MIC 一致,表明 STA 知晓 PMK。
- AP 向 STA 发送 Group Transient Key(GTK)。
- STA 回复 ACK,并使用密钥加密通信。
沉恨细思,不如桃杏,犹解嫁东风。
——《一丛花令》(宋)张先
相关文章:
《Kali渗透基础》13. 无线渗透(三)
kali渗透 1:无线通信过程1.1:Open 认证1.2:PSK 认证1.3:关联请求 2:加密2.1:Open 无加密网络2.2:WEP 加密系统2.3:WPA 安全系统2.3.1:WPA12.3.2:WPA2 3&#…...
python——案例六:判断字符串的长度
案例六:判断字符串的长度str"Study"print(len(str))#输出结果如下: #5...
PC-windows-安卓-Linux音频系统框架概论
+我V hezkz17进数字音频系统研究开发交流答疑群(课题组) 一 PC 音频系统工作原理 PC音频系统的工作原理可以简要概括为以下几个步骤: 音频输入:音频信号可以通过多种方式输入到计算机,例如麦克风、线路输入、数字音频接口等。这些音频源会将声音转换为电信号。 模数转换…...
Web Worker API
Web Worker API Web Worker 使得在一个独立于 Web 应用程序主执行线程的后台线程中运行脚本操作成为可能。这样做的好处是可以在独立线程中执行费时的处理任务,使主线程(通常是 UI 线程)的运行不会被阻塞/放慢。 Web Worker概念与用法 Wor…...
1.4 MA多头/空头排列是真的吗?
MA策略验证——金叉和死叉 文章目录 MA策略验证——金叉和死叉公共代码论证步骤论证代码论证结果写在最后公共代码 code = 注意,这里改成股票代码 pro = ts.pro_api(tushare的token)df = pro.daily(ts_code=code)[...
基于SpringBoot+Vue的CSGO赛事管理系统设计与实现(源码+LW+部署文档等)
博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…...
Android系统APP之SettingsProvider
前言 SettingsProvider顾名思义是一个提供设置数据共享的Provider,SettingsProvider和Android系统其它Provider有很多不一样的地方,如: SettingsProvider只接受int、float、string等基本类型的数据;SettingsProvider由Android系…...
go入门实践二-tcp服务端
文章目录 前言接口与方法并发-协程项目管理bufio包使用其他代码 前言 上一篇,我们通过go语言的hello-world入门,搭建了go的编程环境,并对go语法有了简单的了解。本文实现一个go的tcp服务端。借用这个示例,展示接口、协程、bufio的…...
SprinMVC获取请求参数
SprinMVC获取请求参数 Spring MVC 提供的获取请求参数的方式 通过 HttpServletRequest 获取请求参数通过控制器方法的形参获取请求参数使用 RequestParam 注解获取请求参数通过实体类对象获取请求参数(推荐) 通过ServlstAPI获取 将HttpServletRequest…...
orangepi 4lts ubuntu安装RabbitMQ
4lts的emmc 系统安装选文件系统格式 ext4 需先安装erlang: sudo apt install erlang 安装RabbitMQ: sudo apt install rabbitmq-server - 添加用户以便远程访问: - 账号密码都是admin: sudo rabbitmqctl add_user admin admin -sudo rabbitmqct…...
SolidWorks 3D Interconnect介绍
目前市面上有的三维设计软件有很多,如UG、Pro/E、CATIA等,而且每个三维设计软件都会生成自己文件格式。由于产品设计的原因,我们避免不了的会需要去使用不同三维设计软件的文件,这对于工程师来说其实是一件比较麻烦的事。 为什么…...
MBG中update语句的区别
int updateByPrimaryKey(User record) thorws SQLException 按主键更新 int updateByPrimaryKeySelective(User record) thorws SQLException 按主键更新值不为null的字段 使用以上的方式更新数据时必须提供主键,MyBatis根据主键进行数据记录的更新。 int updateBy…...
论文阅读 - Few-shot Network Anomaly Detection via Cross-network Meta-learning
论文链接:https://arxiv.org/pdf/2102.11165.pdf 目录 摘要: 引言 问题定义 方法 Graph Deviation Networks Cross-network Meta-learning 摘要: 网络异常检测旨在找到与绝大多数行为显着不同的网络元素(例如节点、边、子图…...
秋招算法备战第37天 | 738.单调递增的数字、968.监控二叉树、贪心算法总结
738. 单调递增的数字 - 力扣(LeetCode) 这个问题是关于找到一个小于或等于给定数字n的最大单调递增数字。 我们可以将数字n转换为字符数组,然后从左到右扫描,寻找第一个违反单调递增条件的位置。一旦找到这样的位置,…...
Windows server上用nginx部署vue3项目
Windows server上用nginx部署vue3项目 一、Node中node_modules文件夹及package.json文件的作用说明二、VUE3项目打包三、Windows Server上的Nginx部署 一、Node中node_modules文件夹及package.json文件的作用说明 node_modules是安装node后用来存放用包管理工具下载安装的包的…...
计算机视觉与图形学-神经渲染专题-pi-GAN and CIPS-3D
《pi-GAN: Periodic Implicit Generative Adversarial Networks for 3D-Aware Image Synthesis》 摘要 我们见证了3D感知图像合成的快速进展,利用了生成视觉模型和神经渲染的最新进展。然而,现有的方法在两方面存在不足:首先,它们…...
【FAQ】EasyGBS平台通道显示在线,视频无法播放并报错400的排查
EasyGBS是基于国标GB28181协议的视频云服务平台,它可以支持国标协议的设备接入,在视频能力上能实现直播、录像存储、检索与回放、云台控制、告警上报、语音对讲、平台级联等功能,既能作为业务平台使用,也能作为能力层平台调用。 我…...
G1和CMS
G1垃圾回收器要点: 1.什么是G1垃圾回收器: G1是一款专门针对于拥有多核处理器和大内存的机器的收集器,在满足了GC响应时间的延迟可控的情况下,也会尽可能提高的程序的吞吐量 2.G1垃圾回收器的优点: ①与CMS收集器一…...
详解Linux中的socket函数
2023年8月3日,周四下午 目录 函数原型参数domain参数type参数protocol举例说明参数type和参数protocol之间的关系 函数原型 #include <sys/socket.h>int socket(int domain, int type, int protocol);参数domain domain是“域”的意思,其值为AF…...
React Antd 实现表格合计功能
思路:首先拿到 表格数组对象,然后写一个工具类,然后向数组对象最后插入一条数据,这条数据的字段时根据表格数组里合计算出来的。 代码如下,需根据各自业务稍作改动: <Table dataSource{tableData}column…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
