《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,并使用密钥加密通信。

沉恨细思,不如桃杏,犹解嫁东风。

——《一丛花令》(宋)张先

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

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

相关文章

Springboot 多数据源 dynamic-datasource动态添加移除数据源

0.前言 上一篇文章我们讲了如何通过多数据源组件,在Spring boot Druid 连接池项目中配置多数据源,并且通过DS注解的方式切换数据源,《Spring Boot 配置多数据源【最简单的方式】》。但是在多租户的业务场景中,我们通常需要手动的…

RunnerGo条件控制器使用方法

在做性能测试时我们需要根据业务需求、业务场景来配置测试脚本,举个例子:在登录注册场景中,可能会有账号密码全部正确、账号格式错误、密码错误等多种情况,这里的“登录/注册”事件可以视为一个场景。一个真实业务中的场景&#x…

课程作业-基于Python实现的迷宫搜索游戏附源码

简单介绍一下 该项目不过是一个平平无奇的小作业,基于python3.8开发,目前提供两种迷宫生成算法与三种迷宫求解算法,希望对大家的学习有所帮助。 项目如果有后续的跟进将会声明,目前就这样吧~ 效果图如下所示: 环境…

设备管理系统与物联网的融合:实现智能化设备监控和维护

在数字化时代,设备管理系统和物联网技术的融合为工业企业带来了巨大的变革和创新。本文将探讨设备管理系统与物联网的融合,重点介绍设备健康管理平台在实现智能化设备监控和维护方面的关键作用和优势。 一、设备管理系统与物联网的融合 随着物联网技术的…

BPMNJS插件使用及汉化(Activiti绘制流程图插件)

BPMNJS插件运行最重要的就是需要安装nodejs插件,这不一定要安装和测试好。 主要是使用npm命令 1、配置BPMNJS插件绘制activiti7工作流 1.1、安装和配置nodejs 插件 1.1.1、下载nodejs 下载地址:https://nodejs.org/en 1.1.2、安装nodejs,傻瓜式安装 安装之后在安装…

Mac提示文件:已损坏,无法打开。你应该把它移到废纸篓

文章目录 一、电脑信息二、打开任何来源设置三、更改应用程序拓展属性 一、电脑信息 我的是新版的Venture 13的系统。UI改的比较多。与之前的配置还是有很大的区别的。 打开下载的软件,显示已经损坏,打不开。抛开软件本身的问题外,一般是Ma…

vue3过滤输入框首尾空格

vue3过滤输入框首尾空格 在 directive文件夹下 新建 trim.ts 文件 // trim.ts 文件 import { App } from "vue"function getInput(el: { tagName: string; querySelector: (arg0: string) > any }) {let inputEleif (el.tagName ! INPUT) {inputEle el.queryS…

微信云开发-数据库操作

文章目录 前提初始化数据库插入数据查询数据获取一条数据获取多条数据查询指令 更新数据更新指令 删除数据总结 前提 首先有1个集合(名称:todos). 其中集合中的数据为: {// 计划描述"description": "learn mini-program cloud service",// 截止日期"…

LeetCode 626. 换座位

题目链接:LeetCode 626. 换座位 题目描述 表名:Seat 编写SQL查询来交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换。 按 id 升序 返回结果表。 查询结果格式如下所示。 示例1: 题目分析 如…

医疗知识图谱问答 ——Neo4j 基本操作

前言 说到问答机器人,就不得不说一下 ChatGPT 啦。一个预训练的大预言模型,只要是人类范畴内的知识,似乎他回答得都井井有条,从写文章到写代码,再到解决零散琐碎的问题,不光震撼到我们普通人,就…

微信消息撤回时间延长到2小时了?

““微信发出2小时后也可撤回,上班族的福音. ” 近日,有传言称 微信撤回消息的时间将延长至2小时 引起舆论关注 微信作为国内最大的网络社交平台,目前用户已超过11亿。 虽然微信已经做的很不错了,但微信消息撤回这一功能,还是…

【第一阶段】kotlin语言的String模板

1.在Java中拼接字符串使用的是“” 2.在kotlin中使用"${}" 3.kotlin语言中if是表达式,更灵活 fun main() {val city"西安"val time24//java中写法println("我在"city"玩了"time"小时")//kotlin中写法&#xff0…

jenkins通过sshPut传输文件的时候,报错Permission denied的SftpException

一、背景 使用jenkins的ssh插件传输文件至远程机器的指定目录,php程序打包后,经过zip压缩为oms.zip zip -rq oms.zip ./ -x .git/* -x .env然后我们求md5值 md5sum oms.zip最后执行传输。 09:03:02 Executing command on ssh[116.61.10.149]: mkdir…

使用docker安装wordpress详细教程及出现数据库无法连接问题解决方法

1.获取wordpress镜像 docker pull wordpress 2.创建wordpress 的容器 a.创建wordpress的文件镜像卷文件夹 mkdir wordpress b.创建wordpress镜像 docker run --name wp -p8080:80 -v /home/wordpress/:/var/www/html -d wordpress c.查看容器运行情况 3.在本地或者其他服务器创…

Astro + Vercel 快速搭建自己的博客网站

Astro 和 Vercel 彼此相得益彰,前者提供出色的开发者体验,用于构建现代静态站点,而后者负责部署和托管代码。 两者结合我们就可以轻轻松松零成本搭建自己的博客网站。查看示例。 步骤 1,创建评论仓库 在部署博客之前&#xff…

[用go实现解释器]笔记1-词法分析

本文是《用go实现解释器》的读书笔记 ​ https://malred-blog​malred.github.io/2023/06/03/ji-suan-ji-li-lun-ji-shu-ji/shi-ti/go-compile/yong-go-yu-yan-shi-xian-jie-shi-qi/go-compiler-1/#toc-heading-6http://个人博客该笔记地址 ​github.com/malred/malanghttp:/…

SAS-数据集SQL垂直(纵向)合并

一、SQL垂直合并的基本语法 一个selectt对应一个表,select之间用set-operator连接,set-operator包括:except(期望)、intersect(相交)、union(合并),outer un…

WAF绕过-AWVS+Xray+Goby+sqlmap-绕过宝塔防火墙

WAF绕过主要集中在信息收集,漏洞发现,漏洞利用,权限控制四个阶段。 1、什么是WAF? Web Application Firewall(web应用防火墙),一种公认的说法是“web应用防火墙通过执行一系列针对HTTP/HTTPS的安…

【2023】XXL-Job 具体通过docker 配置安装容器,再通过springboot执行注册实现完整流程

【2023】XXL-Job 具体通过docker 配置安装容器,再通过springboot执行注册实现 一、概述二、安装1、拉取镜像2、创建数据库3、创建容器并运行3、查看容器和日志4、打开网页 127.0.0.1:9051/xxl-job-admin/ 三、实现注册测试1、创建一个SpringBoot项目、添加依赖。2、…

【uniapp】样式合集

1、修改uni-data-checkbox多选框的样式为单选框的样式 我原先是用的单选&#xff0c;但是单选并不支持选中后&#xff0c;再次点击取消选中&#xff1b;所以我改成了多选&#xff0c;然后改变多选样式&#xff0c;让他看起来像单选 在所在使用的页面上修改样式即可 <uni-d…