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

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

李白 技术 2020-02-05 10:00:00
622711
收藏

导语:2019年初,我和另一位安全研究员 Steve Darracott (@thedarracott)开始回答这个问题——“机会无线加密(OWE)容易被滥用和攻击吗? 如果是,又该如何进行攻击呢? ”

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

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 阶段1:网络发现

那么为什么我们要花那么多时间讨论类型长度值(Type-Length-ValueTLV)编码和信息元素(Information ElementsIE) . 它们对于理解 OWE 如何在数据包级别工作非常重要。 为了了解如何做到这一点,让我们来看看 OWE  Wireshark 的认证过程。

首先使用实验室环境提供的 enable-hwsim 脚本启用模拟的 WiFi 接口:

./enable-hwsim

接下来,告诉网络管理器放弃对 hwsim0 wlan0 wlan1 1接口的控制,让你的 hwsim0 wlan0 wlan1 1接口联机:

nmcli device set wlan0 managed off
nmcli device set wlan1 managed off
nmcli device set hwsim0 managed off
ifconfig wlan0 up
ifconfig wlan1 up
ifconfig hwsim0 up

image.png

使用 nmcli  wlan0 hwsim0设置为非托管模式

接下来,从你的实验室目录中打开 Wireshark,让它监听你的 hwsim0  接口,如下面的截图所示:

 image.png

 Wireshark 中选择 hwsim0接口

接下来,使用 hostapd 实例化 OWE 访问点。 我们将为 hostapd 提供以下配置文件,这些文件可以在实验室的 conf-files 目录中找到:

# use interface wlan0
interface=wlan0
# set ssid to "owe"
ssid=owe
# manually set BSSID
bssid=a6:44:ce:d8:61:6f
# set channel to 1
channel=1 
# require Protected Management Frames (PMF)
ieee80211w=2
# enable full IEEE 802.11i/RSN
wpa=2
# set key management element to OWE
wpa_key_mgmt=OWE 
# set RSN pairwise cipher to CCMP
rsn_pairwise=CCMP

要启动访问点,只需传递 hostapd 相关的配置文件,如下面的命令所示:

./hostapd conf-files/hostapd-owe.conf

image.png

启动 hostapd

回到 Wireshark 窗口,使用以下过滤器对接入点的信标帧进行过滤:

wlan.fc.subtype == 0x8 && wlan.bssid == a6:44:ce:d8:61:6f

一旦你应用了过滤器,选择其中一个数据包,展开标记参数菜单,如下图所示:

image.png

  Wireshark 中扩展“ Tagged parameters”菜单

接下来,展开“ RSN 信息标签,如下面的屏幕截图所示:

 image.png

 Wireshark 中展开的“ RSN 信息标签

接下来,展开“ Auth Key Management List Auth Key Management Suite (AKM) Suite”标签,如下面的屏幕截图所示:

image.png

 Wireshark 检查 AKM 套件选择器

下面是重要的部分注意“ Auth Key Management (AKM) type”元素的值。 支持 OWE 的访问点(AP)使用身份验证和密钥管理(AKM)套件选择器(Suite Selector)公开其对协议的支持,该选择器添加到所有信标的 RSN 元素中,并探测 AP 发出的响应帧。 支持 OWE 的基站可以识别这个元素的存在,并利用它来识别附近支持 OWE 的接入点。

现在让我们检查一下当我们将一个基站连接到 AP 时会发生什么。 要做到这一点,我们将使用我们实验室的  wpa_supplicant  二进制文件和以下配置文件:

# OWE network
network={
 ssid="owe" # connect to SSID "owe"
 frequency=2412 # connect to channel 1 (center freq 2412)
 key_mgmt=OWE # use OWE
 proto=RSN # use RSN
 ieee80211w=2 # use Protected Management Frames (PMF)
 pairwise=CCMP # set pairwise cipher suite to CCMP
}

要连接到 OWE 接入点,需要传递 wpa_supplicant 相关的配置文件,如下面的命令所示:

./wpa_supplicant -i wlan1 -c conf-files/wpa_supplicant-owe.conf

image.png

基站将识别 AP  OWE 兼容的,并使用它启动开放系统身份验证(开放系统身份验证只是实际上没有发生身份验证的一种花哨说法) 你可以使用以下过滤器查看在 Wireshark 进行的认证过程:

wlan.fc.type_subtype == 0xb

image.png

 Wireshark 中过滤认证帧

OWE 阶段2: 联合

一旦客户机设备使用访问点(AP)执行了开放系统身份验证,客户机和 AP 就会转换到802.11关联过程。 正是在关联过程中发生了 OWE  Diffie-Hellman (DH)密钥交换和4次握手。

记住,OWE 是一种公开密钥加密的形式---- 客户端和 AP 都需要能够相互交换 DH 密钥以保证安全通信。 与网络发现阶段一样,使用附加在关联请求和响应框架之后的信息元素(Information Elementsie)促进这种密钥交换。 当基站向访问点发送关联请求时,DH 参数元素被追加到探测请求帧。 这个 DH 参数元素包含基站的公钥。 然后访问点用一个关联响应帧来回复,它的公钥被追加到它自己的 DH 参数元素中。

image.png

OWE 关联过程

让我们通过使用以下过滤器(用于关联请求和响应帧的过滤器)隔离关联过程来检查这个过程:

wlan.fc.type_subtype == 0x0 || wlan.fc.type_subtype == 0x1

image.png

Wireshark 中过滤 Wireshark 的关联请求及响应

如果我们选择显示的第一个数据包(这是一个关联请求,我们会注意到它包含一个名为“ OWE Diffie-Hellman Parameter Parameter”的扩展标记,如下面的屏幕截图所示:

 image.png

注意这个截图底部的 OWE DH 参数标签

展开“ OWE Diffie-Hellman Paramater”标签可以显示基站的公钥:

image.png 

同样,选择相应的关联响应帧也会显示一个名为“ OWE Diffie-Hellman Paramater”的扩展标记,其中包含 AP 的公钥。

 image.png

以这种方式交换公钥的过程称为 Diffie-Hellman (DH)密钥交换。

第三阶段关联后期

一旦客户端和 AP 完成了关联过程以及 DH 密钥交换过程,就创建了一对主密钥(Pairwise Master KeyPMK)  PMK 被分配到一个被称为成对主密钥识别器的唯一标识符。 然后,AP 与客户端进行4次握手,其中 PMK 用于创建加密密钥。

你可以通过隔离使用以下过滤器的 EAPOL 数据包看到这种握手在 Wireshark 中发生:

EAPOL

 image.png

注意在这个屏幕截图中有两个四方握手发生

OWE 阶段4: 数据传输

此时,客户机和 AP 已经建立了相互之间的加密连接,这将用于保护所有后续的数据传输。

请注意,在整个过程中,有一样东西可怕地缺席了证书。 花点时间思考一下这个问题的含义,因为它将与我们在本系列后面描述的攻击相关。

OWE 转换模式

OWE 转换模式的设计目的是为新的、具有 OWE 功能的设备以及不支持 OWE 的遗留设备提供开放的网络访问。

以下是它的工作原理。 配置为使用 OWE 转换模式的访问点实际上同时服务于两个基础服务集(BSSs) 第一个 BSS 是一个具有可见 ESSID 的开放热点。 第二个 BSS 配置为使用 OWE,并给出一个与开放热点的 ESSID 不同的随机生成的 ESSID 第二个 OWE 也是隐藏的,这意味着只能使用定向探测请求来发现它。

要创建此配置之后的访问点,我们使用类似于下面所示的配置文件。 注意,这个配置文件设置了两个相同的 BSS 无线接口,一个是开放式的,一个是带有 OWE 支持的。 owe_transition_ssidowe_transition_bssid配置参数用于将两个BSS 绑定在一起。 如果这个配置文件看起来令人困惑,也不用害怕请继续前进。  Wireshark 中研究了 AP 的所作所为之后,这个问题就更有意义了。

# general ---
interface=wlan0 
ssid=owe-hidden 
bssid=a6:44:ce:d8:61:6f 
channel=1
ignore_broadcast_ssid=1 
ieee80211w=1 
# owe_transition ---
wpa=2 
wpa_key_mgmt=OWE 
rsn_pairwise=CCMP 
owe_transition_ssid="transition"
owe_transition_bssid=fe:e1:de:ce:a5:ed
# populate_owe_transition_open_bss ---
bss=wlan0_0
ssid=transition
bssid=fe:e1:de:ce:a5:ed
owe_transition_ssid="owe-hidden"
owe_transition_bssid=a6:44:ce:d8:61:6f
wpa=2 
wpa_key_mgmt=OWE 
rsn_pairwise=CCMP

让我们看看这个配置文件实际上是做什么的,它使用这个配置文件创建一个 OWE 转换模式 AP,然后我们在 Wireshark 中进行分析。 从如下命令所示的 hostapd  分析配置文件开始:

./hostapd conf-files/hostapd-owe-transition.conf

image.png

接下来,使用以下过滤器对 Wireshark 的信标帧进行过滤:

wlan.fc.type_subtype == 0x8

你应该看到由两个不同的访问点传输的一系列信标帧,如下面的屏幕截图所示:

 image.png

注意:这个截图中两个截然不同的接入点

请注意,大约一半的信标帧来自一个设置了 SSID“转换 BSS,而其余的来自一个 SSID 被隐藏的 BSS 让我们通过过滤它的 BSSID 来关注可见网络:

wlan.ssid == transition

image.png

如果我们选择一个信标帧并展开它的标记参数,如下面的屏幕截图所示,我们看到一个特定于供应商的元素类型“ OWE 转换模式

 image.png

注意:这个截图底部的供应商特定标签

这一部分非常重要扩展这个特定于供应商的元素可以揭示接入点的 BSSID 及其 SSID (“ owe-hidden”)

 image.png

特定于供应商的“ OWE 转换模式元素包含隐藏 OWE 接入点的 BSSID  SSID

这个供应商特有的元素是 OWE 转换模式功能的关键之一——连接到转换模式 AP,基站首先向 AP 的开放式 ESSID 发出探测请求。 支持 OWE 的基站将检查在 AP 的探测响应中是否存在 OWE 转换模式元素,以及 AP 传输的任何后续信标帧。 如果元素存在,站点将发出探测请求,要求被隐藏的 BSS  ESSID 启动与它的连接。 不支持 OWE 的客户端设备将忽略 OWE 转换模式元素,只连接到打开的 BSS

让我们从站点的角度来考察这个过程。 首先,我们告诉 wpa_supplicant 将我们的转换模式访问点视为一个开放的 ESS,并传递以下配置文件:

# OWE network
network={
 ssid="transition"
 frequency=2412
 key_mgmt=NONE
}

使用以下命令初始化 wpa_supplicant,并观察它连接到转换模式 AP 时的情况:

./wpa_supplicant -i wlan1 -c conf-files/wpa_supplicant-transition-open.conf

 image.png

我们还可以从 AP 的角度看到连接 AP 的站点:

 image.png

作为开放网络连接到转换模式 AP  wpa_supplicant

我们可以使用下面的过滤器来隔离 Wireshark 的连接进程(02:00:00:00:01:00代替站点的硬件地址)

wlan.addr == 02:00:00:00:01:00 && wlan.addr == fe:e1:de:ce:a5:ed && wlan.fc.type == 0x0

 image.png

 Wireshark 对探针响应、认证和关联帧的过滤

从上面的截图中可以看出,这个过程和开放网络的情况是一样的。

现在让我们执行同样的分析,这次传递给 wpa_supplicant 一个配置文件,告诉它把我们的转换模式 AP 当作一个OWE ESS:

# OWE network
network={
 ssid="transition"
 frequency=2412
 key_mgmt=OWE
 proto=RSN
 ieee80211w=2
 pairwise=CCMP
}

你可以在下面的屏幕截图中看到这个过程的实际情况(从客户机的角度,其中显示了 wpa_supplicant 在连接到 OWE 转换模式热点时生成的调试输出。

./wpa_supplicant -i wlan1 -c conf-files/wpa_supplicant-transition-open.conf

 image.png

wpa_supplicant 发现了隐藏的 OWE AP 并连接到它

在上面显示的屏幕截图中, wpa_supplicant 首先尝试连接到开放热点。 然后,它了解到开放热点实际上是一个 OWE 转换模式网络,并解析其隐藏的 OWE BSS  ESSID 是来自供应商特定的标记。 最后, wpa_supplicant 漫游到隐藏的 OWE BSS

总结

本系列的下一篇也是最后一篇文章将集中讨论 OWE 的局限性,即它与当前威胁模型的相关性,以及攻击者可能滥用的具体弱点。 它还将关注 OWE 的正确之处——即引入强制保护管理框架(PMF)

参考资料

[1] https://tools.ietf.org/html/rfc8110

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

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

扫码支持

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

发表评论

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