0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

新思科技使用智能模糊测试工具Defensics检测到D-Link的行为漏洞

西西 作者:厂商供稿 2018-11-30 18:10 次阅读

作者: 新思科技首席安全专家Tuomo Untinen

新思科技在早前发现D-Link DIR-850存在漏洞。此漏洞允许未经过身份验证的用户加入路由器提供的无线网络。一旦加入该网络,用户就可以访问该网络上任何其他用户可用的所有服务、计算机和设备。未经授权访问网络通常是更广泛攻击的第一步。

作为Defensics SafeGuard开发的一部分,我们发现了D-Link DIR-850L无线AC路由器(硬件修订版本A)中的漏洞。该漏洞使攻击者无需提供凭据即可完全访问无线网络。我们的方法在接入点连接期间跳过关键步骤,完全绕过加密。

在确定此漏洞后,新思科技继续与芬兰国家网络安全中心(NCSC-FI)协调披露事宜,编号为CVE-2018-18907。我们与D-Link合作重现了这个漏洞问题。在2018年11月6日,D-Link已经为受影响的设备提供了修复方案。

WPA2是用于客户端和接入点(AP)之间的WLAN网络通信的加密技术。为了相互连接,AP和客户端都需要知道预共享密钥(PSK),它们在WPA握手过程中交换,随后在它们之间打开加密通道。

通常,破坏WPA2加密需要在AP和客户端(也称为请求者)上执行无线捕获,其中握手过程完全可见,或者仅从AP获取对偶主密钥标识符(PMKID)。完成此操作后,您将获得强制WPA2 PSK所需的所有信息。获取PSK所需的时间取决于硬件和PSK长度。但有时候通过WPA2加密需要一点运气,这往往不到一秒钟。

办公室日常工作

2018年8月初,我正在为新思科技的Defensics解决方案完成新版本的测试套件,该解决方案为各种协议提供模糊测试。模糊测试是一种测试方法,测试工具发送格式错误的输入以发现软件中潜在的安全漏洞。这种包含意外或无效数据的格式错误的输入称为异常测试用例。

我最后添加到测试套件中的信息包括一些新的异常测试用例和SafeGuard结果。 SafeGuard是一项专利功能,允许Defensics识别违反规范或最佳实践的情况 —— 例如,当被测系统(SUT)选择弱加密方案时,或者以明文形式发送身份验证凭据时。

SafeGuard与模糊测试有何不同?

新版本的Defensics 802.11测试套件包含两项重要改进。

第一,WPA2握手后数据帧的WPA2加密。之前的版本仅计算会话的临时密钥,而且可以将此信息写入文件。这允许测试人员验证Defensics和SUT都具有相同的临时密钥。但是发送加密数据帧会自动测试正确的密钥,因为两端的加密和解密需要知道密钥。

第二个改进是在IPv4上简单的动态主机设置协议(DHCP)发现报文序列。此DHCP序列验证SUT是否接收数据帧并检查响应。由于DHCP本身非常复杂,我首先在没有加密的情况下实现它,并且在DHCP序列工作之后,在测试中添加了WPA2 AES CCMP加密。

测试发现

我当时正在为WPA1添加一个弱加密SafeGuard,因为已知WPA1有弱点而且不应该使用。 WEP加密也是如此:它不应该再被使用了。 Defensics 802.11测试套件那时具有弱加密检测功能,我运行了几个案例来测试它,正巧我桌面上有AP,即D-Link DIR-850L。我以为会检测到弱加密,因为我已经将SUT AP配置为拥有WPA1而没有其它任何设置。

正如我所预测的一样,Defensics正确地检测到弱加密。但是AP接受了没有WPA加密的DHCP发现序列。此特定测试用例本应经过协商以使用WPA1加密,但它不包含实际加密:DHCP发现序列以明文形式发送给AP。我对此测试结果感到惊讶,因为路由器应该需要WPA1加密。然后我使用Wireshark,一种捕获无线数据帧的工具,重新运行测试用例并检查结果。

在结果中,我看到了AP给Defensics提供的IP地址、路由器IP地址、租用时间等。发现序列再次以明文发送。然后我将加密从WPA1更改为WPA2,看看是否会对SUT行为产生影响。同样,发现序列仍以明文形式发送,因此这出现了问题。 AP还支持WPA Enterprise,并且在该模式下的测试没有改变行为 - 序列仍以明文形式发送。

分析

当然,下一个问题是发生了什么,为什么呢?连接到AP分两个阶段完成。首先,客户端和AP就连接参数和要使用的加密达成一致;其次,执行所谓的WPA握手或四次握手,交换加密参数并确保它们都具有PSK。在此之后,他们打开加密数据连接。但是,我运行的测试用例跳过了WPA握手,因此必须在握手之前发生什么,AP和客户端就连接参数和使用的加密达成一致。

第一阶段包括探测请求和响应、身份验证请求和响应,最后是关联请求和响应。探测请求的主要目的只是发现AP。然后,探测响应包含有关AP的所有信息,包括支持哪种加密。

下一个请求 - 响应对是身份验证,其目的是确保向后兼容性。接下来是关联请求和响应。在关联请求中,客户端告诉AP哪个是它想要的加密以及使用哪些参数。关联请求还会打开AP和客户端之间的数据连接。

我运行的测试用例有一个正常的探测请求和身份验证请求。然后,关联请求需要客户端支持WPA1加密。此时,WPA握手应该发生,但由于我的测试用例跳过了握手,AP和客户端开始发送没有任何加密的数据帧。

漏洞利用

从没有凭据的受保护网络获取IP地址已经是件坏事,但是还会更糟糕吗?我决定为此漏洞创建漏洞利用程序。我的想法是创建一个自定义版本的wpa_supplicant(Linux操作系统中的默认WLAN客户端)。

首先,我尝试修改wpa_supplicant,以便它只是忽略WPA握手,但事实证明这非常困难。检查太多,无法确保WPA状态机处于正确状态。这证实我试图做的事情并不常见。我尝试的下一件事是在没有加密的情况下建立连接,但修改包含加密参数的关联消息。这与Defensics测试套件在测试用例中所做的一样。我只需要删除一些未经协商的加密参数检查,就可以建立连接。

对新思科技的Defensics智能模糊测试有疑问?我们给您答案

我有一个wpa_supplicant的修改版本,它提供了网络接口上的完整Linux IP堆栈。首先,我尝试连接到AP管理面板。虽然连接了,但是我注意到在路由器接到流氓客户端之前,路由器接受了普通数据帧时,有三到六秒的窗口。然而,wpa_supplicant自动重新连接,我的开发继续进行。实际上,重新连接速度非常快,即使传输控制协议(TCP)连接仍保持打开状态。

此外,我还连接了另外两台设备,一台是有线的,一台是通过WLAN连接的。从流氓客户端,我可以毫无费劲地连接两个设备。从路由器管理面板,我看到恶意客户端被识别为连接到路由器的任何其它客户端。因此,利用此漏洞,我可以在不知道预共享密钥的情况下完全访问网络。我不需要做任何耗时的暴力破解 - 我只是连接到网络。

总结

Defensics 802.11测试套件现在可以识别绕过整个WPA加密机制的情况。测试套件现在包含一个单独的SafeGuard功能来测试此漏洞,如果它检测到WPA加密被绕过,则测试将显示失败。因此,针对其AP运行Defensics模糊测试的供应商将意识到此漏洞。测试的D-Link设备是随机选择的,D-Link已经发布了该设备的补丁。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • WLAN
    +关注

    关注

    2

    文章

    643

    浏览量

    72578
  • 新思科技
    +关注

    关注

    5

    文章

    716

    浏览量

    50065
  • D-Link
    +关注

    关注

    0

    文章

    11

    浏览量

    18266
收藏 人收藏

    评论

    相关推荐

    嵌入软件单元测试工具的作用

    嵌入软件单元测试工具是现代软件开发过程中不可或缺的一环。它的作用在于帮助开发人员对软件中的各个单元进行测试,以确保其功能的正确性和稳定性。单元测试是软件开发过程中的一种测试方法,通过对
    的头像 发表于 04-23 15:31 77次阅读
    嵌入软件单元<b class='flag-5'>测试工具</b>的作用

    DEKRA被CSA指定为Zigbee统一测试工具开发和优化新功能和测试用例

    DEKRA德凯被CSA联盟(Connectivity Standards Alliance,CSA)指定负责为Zigbee统一测试工具(Zigbee Unified Test Harness,ZUTH)开发和优化新功能和测试用例。
    的头像 发表于 04-09 14:10 164次阅读

    如何在CY8CPROTO-062S2-43439中配置AIROC蓝牙测试和调试工具CYW43439?

    如何在 CY8CPROTO-062S2-43439 中配置 AIROC 蓝牙测试和调试工具CYW43439? 该设备在我的电脑中被检测到 KitProg3 USB-UART,并且还显示在 AIROC
    发表于 02-29 08:14

    keil5中debug检测不到st link

    Keil是一款常用的嵌入式开发环境,而ST-Link是STMicroelectronics提供的一款常见的调试工具。然而,有时候在使用Keil5进行调试时,会出现无法检测到ST-Link
    的头像 发表于 01-05 14:43 3960次阅读

    网络安全测试工具有哪些类型

    网络安全测试工具是指用于评估和检测系统、网络和应用程序的安全性的一类软件工具。这些工具可以帮助组织和企业发现潜在的安全漏洞和威胁,以便及时采
    的头像 发表于 12-25 15:00 554次阅读

    redis集群性能测试工具有哪些

    Redis是一种高性能的内存键值存储系统,它被广泛应用于各种互联网应用和大规模的数据存储中。为了评估Redis在不同场景下的性能,我们需要使用一些性能测试工具来对Redis集群进行基准测试和负载测试
    的头像 发表于 12-04 11:36 291次阅读

    如何使用芯片测试工具测试芯片静态功耗?

    为什么需要芯片静态功耗测试?如何使用芯片测试工具测试芯片静态功耗? 芯片静态功耗测试是评估芯片功耗性能和优化芯片设计的重要步骤。在集成电路设计中,静态功耗通常是指芯片在不进行任何操作时
    的头像 发表于 11-10 15:36 1348次阅读

    笔记本转轴扭力测试仪是实用的测试工具

    笔记本转轴扭力测试仪是实用的测试工具吗?|深圳磐石测控
    的头像 发表于 11-06 09:10 230次阅读
    笔记本转轴扭力<b class='flag-5'>测试</b>仪是实用的<b class='flag-5'>测试工具</b>吗

    Linux下的stress-ng压力测试工具介绍

    今天浩道跟大家分享Linux下一款强大的压力测试工具------stress-ng,这款测试工具对于运维工程师或者测试工程师,还是比较受欢迎的。本文带你安装部署,并且列举出它常用的测试
    的头像 发表于 11-03 09:31 3152次阅读
    Linux下的stress-ng压力<b class='flag-5'>测试工具</b>介绍

    T900串口测试工具的使用教程

    T900原厂提供了“串口测试工具”,以便更好地评估T900的相关性能。下面就简单谈下该工具如何使用。
    的头像 发表于 09-13 11:04 1194次阅读
    T900串口<b class='flag-5'>测试工具</b>的使用教程

    测试工具的主要目的

    1、引言 测试工具千千万,有专为硬件服务的万用表、示波器之类,也有各种串口调试工具,于是萌生了想要DIY一个用于各种接口测试用的工具,说实话对于单片机的这些串口、IIC接口、SPI接口
    的头像 发表于 06-29 16:54 687次阅读
    <b class='flag-5'>测试工具</b>的主要目的

    常见的漏洞扫描工具

    漏洞扫描工具是现代企业开展渗透测试服务中必不可少的工具之一,可以帮助渗透测试工程师快速发现被测应用程序、操作系统、计算设备和网络系统中存在的
    的头像 发表于 06-28 09:42 1100次阅读
    常见的<b class='flag-5'>漏洞</b>扫描<b class='flag-5'>工具</b>

    Nu-Link系列的调试工具支持8051系列IC吗?

    新唐的Nu-Link系列的调试工具有Nu-Link-Me (ICE), Nu-Link-Pro (ICE), Nu-Link (ICE),支
    发表于 06-20 07:36

    Nu-Link系列的调试工具支持8051系列IC吗?

    新唐的Nu-Link系列的调试工具有Nu-Link-Me (ICE), Nu-Link-Pro (ICE), Nu-Link (ICE),支
    发表于 06-14 06:07

    基于安卓的渗透测试工具

    介绍 H4渗透盒子是由@H4CKBU7EER开发,基于安卓的渗透测试工具集!使网安爱好者在手机上不必使用拗口的英文软件和看群蚁白字的手机终端的便携工具。 调用工具 在V1版本中,没有在软件里集成
    的头像 发表于 06-02 15:33 813次阅读
    基于安卓的渗透<b class='flag-5'>测试工具</b>集