战争从未改变: 攻击 WPA3的增强开放性——第二部分: 理解 OWE(上) - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

战争从未改变: 攻击 WPA3的增强开放性——第二部分: 理解 OWE(上)

李白 资讯 2020-02-03 09:46:42
603808
收藏

导语:在本系列的第一部分中,我们提供了历史背景和背景信息,这些信息有助于将本研究应用到当前的无线威胁模型中。

2019年初,我和另一位安全研究员 Steve Darracott (@thedarracott)开始回答这个问题——“机会无线加密(OWE)容易被滥用和攻击吗? 如果是,又该如何进行攻击呢? ”最终,我们成功地实现了多种可工作的概念攻击证明,去年夏天我们在 DEF CON 进行了演示。 本系列博客文章记录了我们的研究成果和结论,并讨论了 OWE 如何适应当前的无线威胁模型。

在本系列的第一部分中,我们提供了历史背景和背景信息,这些信息有助于将本研究应用到当前的无线威胁模型中。 如果你还没有读过这篇文章,你可以在这里找到:

· https://posts.specterops.io/war-never-changes-attacks-against-wpa3s-enhanced-open-part-1-how-we-got-here-71f5a80e3be7

在本系列的第二部分中,我们将提供 OWE 如何工作的概述。 已经有一些不错的文章在一个较高的水平提供了这方面的信息,所以本文将是一个更多的动手探索技术内幕的文章。

什么是OWE?

简而言之: OWE 是一种为开放网络添加加密的方法,这是802.11标准在过去20年中一直缺失的东西。 OWE 的目的是让用户无法从开放的 WiFi 角度区分开来,用户只需连接到 OWE 受保护的网络,在简短的密钥交换和握手之后,所有随后的通信都会被加密[1]

乍一看,这听起来很棒——直到你发现 OWE 只能防御被动攻击。 你可能还记得本系列的前一篇文章,被动攻击从本世纪初开始就不起作用了。 这是对的—— WiFi 联盟对20年来严重滥用802.11协议的回应,是引入一种缓解措施,来应对近20年前就不再是实际威胁的事情。

image.png

是的,这对我来说也没有任何意义,我们将在本系列的第三部分进一步讨论这个问题。 现在,让我们确保了解 OWE 如何在技术层面工作。

OWE 遵循五个阶段的过程,从网络发现开始,最终在客户端和访问点之间进行加密数据传输。 在接下来的章节中,我们将重温这些阶段中的每一个阶段,以及一些必备的背景信息。

实验室环境

如果你希望跟随本文中的示例,我提供了一套用于创建随时可用的实验室环境的设置脚本。

免责声明: 请注意,这些设置脚本是针对 Kali 5.3.7,我不打算维护他们或提供任何其他操作系统的支持。 软件不是静态的——如果你在2025年读到这篇文章或类似的东西,而且设置脚本不能工作,那么... ... 你只能靠自己了。

要创建实验室环境,首先使用 git clone 命令从 Github 获取脚本:

git clone 
https://github.com/s0lst1c3/owe-la
b

接下来,运行实验室设置脚本初始化实验室:

cd owe-lab
./lab-setup

如果 lab-setup 脚本成功完成执行,那么应该有一个owe-lab 的文件夹,如下图所示:

 image.png

正如你可以从上面的截图中看到的,安装脚本将使用以下每个组件创建一个实验室环境:

· 虚拟 AP 和基站

· Wireshark 开发分支

· EAPHammer

· AP 和工作站配置文件

· 硬件模拟器控制脚本

在下面的章节中,我将简要描述每一个组件。

虚拟 AP 和基站

这些只是 wpa_supplicant hostapd 的最新版本,它们解析并编译了依赖关系,并支持 OWE 和同时认证等于(SAE)

Wireshark 开发分支

我们将使用 Wireshark 进行分析和验证,以确认实验室里的一切都是正常工作的。 对于 OWE SAE 支持,我们需要最新版本的 Wireshark,它只能从源代码中编译。 幸运的是,这个脚本很好地解决了这个问题,简化了原本非常特殊的构建过程。

image.png 

一个 Wireshark 开发团队的高级成员

EAPHammer

无线攻击套件与 OWE 支持的概念证明攻击(这个一个安全研究的副产品)

AP 和工作站配置文件

实验室环境包括一个 conf-files 目录,其中包含一组用于开放网络、 OWE OWE Transition 模式的 wpa_supplicant hostapd 配置文件。 在我们研究的时候,hostapd OWE 实现还处于开发阶段。 因此,创建或连接到 OWE 访问点所需的配置参数都没有记录在案。 由于没有公开可用的文档,我们最终采用了对 hostap 的单元测试套件(超过100,00行代码) 白盒代码审计来构建这个相对简单的工作配置文件集。

硬件模拟器控制脚本

mac80211 WiFi (处理 WiFi 的内核子系统)配备了一个名为 mac80211_hwsim 的内核模块,可以用来模拟任意数量的虚拟无线接口,并在它们之间传输虚拟 WiFi 流量。 本文几乎完全使用 mac80211_hwsim 明确地说,你当然可以使用物理硬件执行本指南中列出的大部分步骤。 但是考虑到 OWE 兼容硬件还没有广泛使用,而且现有的硬件往往很昂贵,使用硬件模拟器对大多数人来说是一个很好的选择。 此外,从研发的角度来看,使用虚拟硬件可以避免向环境中引入不受控制的变量,这对安全研究是有益的。

要启用 mac80211_hwsim 内核模块,请使用如下示例所示的 modprobe radios  用于指定创建的虚拟接口的数量。

modprobe mac80211_hwsim radios=3

或者,你可以运行实验室环境中包含的 enable-hwsim 脚本:

./enable-hwsim

1.gif

加载 mac80211_hwsim 模块

一旦启用了 mac80211_hwsim,就可以查看使用 iwconfig 命令创建的接口。 Kali(以及其他任何基于 debian 的发行版) ,新创建的接口将遵循 wlanX 的惯例,其中 x 是一个非负整数。 你还会注意到一个名为 hwsim0的新创建的接口。 这实际上是一个窃听接口,可用于捕获在 wlanX 接口之间发送的流量。

要关闭虚拟环境,使用 rmmod 命令,如下面的示例所示:

rmmod mac80211_hwsim

或者,你可以使用实验室环境中包含的 disable-hwsim  脚本:

./disable-hwsim

2.gif

删除 mac80211_hwsim 模块

背景信息

在我们进一步讨论之前,我们需要了解一些背景信息。 如果你不熟悉802.11是如何工作的,我建议你浏览一下下面的博客文章,因为它包含了大部分你需要了解的信息:

· https://posts.specterops.io/modern-wireless-attacks-pt-i-basic-rogue-ap-theory-evil-twin-and-karma-attacks-35a8571550ee (你可以直接读这篇文章,而不是整个系列)

除了上面提到的博客文章中的信息之外,我们还需要简要介绍以下概念:

· 类型长度值(TLV)编码

· 信息元素

· 鲁棒安全网络(RSN)元素

· 身份验证密钥管理(AKM)套件选择器

元素和类型长度值(TLV)编码

Type-length-value (TLV)是一种编码方案,用于在通信协议中将信息附加到单个消息(在本例中为数据包) TLV 依赖于称为元素的数据结构。

 image.png

TLV 元素剖析

元素(如上图所示)是可变长度的字节字符串,分为三个部分。 这些部分中的每一部分代表以下按顺序列出的一个字段:

· Type: 此固定长度字段包含指示元素数据类型的二进制代码

· Length: 这个固定长度字段包含元素的大小(以字节为单位)

· Value: 这个可变长度字段包含元素的数据(或有效载荷)

元素中的前两个字段(类型和长度)描述了如何解释和处理元素中的第三个字段。

信息元素 (IEs)

信息元素(Information ElementsIE)是用于向管理帧(Management FramesMF)添加元数据的元素。 信标帧、探测请求、探测响应和关联帧都是通过将 IE 相互附加而构造的。

让我们把注意力集中在信标帧的上一分钟。 你可能还记得,信标帧由接入点(AP)定期广播,以向附近的基站告知它们的存在和能力。 工业工程师是使这成为可能的数据结构。 为了说明这一点,让我们在 Wireshark 打开一个信标帧,看看它是如何建造的。 对于这个例子,我使用了 Wireshark wiki 中的以下示例捕获(请随意跟随或者只是查看截图) :

· https://wiki.wireshark.org/SampleCaptures?action=AttachFile&do=get&target=Network_Join_Nokia_Mobile.pcap

捕获的第一个数据包是信标帧。 Wireshark 选择这个帧会显示三个下拉菜单(根据 Wireshark 的配置,它们可能已经被扩展) :

 image.png

Wireshark 例子

在上面的截图中展开最底部的菜单显示了两个新的菜单:

 image.png

标记和固定参数

我们对标记为标记参数的下拉列表感兴趣。 扩展标记参数菜单显示了一个 IE 列表,在 Wireshark 中被称为标记” :

 image.png

信息元素要查看802.11使用 TLV 编码的情况,请单击“ SSID 参数设置” IE 将其展开,如下图所示:

 image.png

Wireshark 中扩展「 SSID 参数集」标签

IE (标记的号码)的第一个字段表示它的数据类型,在这种情况下是“ SSID 参数集 IE 的下一个字段是 Value 字段的长度,在本例中是9 IE 的最后一个字段是 Value,结合 IE Type Length 字段来看,我们知道它是一个9字节的 SSID

大多数信标帧的元数据存储在遵循 Type-Length-Value 格式的 IE 中。 其他管理帧是使用类似的系统构建的。

本文翻译自:https://posts.specterops.io/war-never-changes-attacks-against-wpa3s-enhanced-open-part-2-understanding-owe-90fdc29126a1如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务