弁言
在已往的几年里,强制无线装备毗邻到恶意接入点的“玄妙艺术”已经有了一些令人兴奋的生长。 在 Dominic White 和 Ian de Villiers 对 MANA 的研究以及 George Chatzisofroniou 的 Lure10和已知信标攻击中,我们已经看到了 karma 气概的攻击手段的苏醒,这些攻击可以用来攻击对 karma 免疫的装备[1][2]。
我想更深入地研究这些手艺,领会它们在手艺层面上是若何事情的,而且实验试图亲自实现这些手艺似乎看起来是一个完善的学习机遇。 本文最初的目的是用相对简短的篇幅叙述我若何起劲重现这些手艺,并将其整合到 EAPHammer(见:https://github.com/s0lst1c3/eaphammer) 中。 然而,鉴于威胁追踪社区普遍缺乏对这一主题的关注,以及最近在野外使用流氓 AP 攻击的高调案例(例如:发生在本月早些时候的俄罗斯 GRU 组织将美国和欧洲作为目的的一系列攻击) ,我决议将这篇文章扩展成更长一些的内容[3]。
其效果是我将揭晓一个由四部门组成的系列博客文章,旨在为那些有兴趣在操作和手艺层面领会更多关于现代无线平安的人们提供一个详细的学习 AP 基本原理的路线图。 在本系列文章中,我们将先容险些所有攻击者可以滥用802.11来提议中间人(person-In-the-middle,PITM)攻击的方式。 此外,我们将讨论为什么攻击者会开发这些手艺,追踪流氓 AP 攻击的历史以及从本世纪初到现在的响应缓解措施。 最后,本系列文章将为进攻和防守的实践者提供操作指导。
对前人研究事情的致谢
在进一步讨论之前,我需要澄清一件事:
我并没有发现本指南中所列出的手艺,也不是第一个编写实现这些手艺的工具。 本文所述手艺的创始人是 Dino A. Dai Zovi、 Shane Macaulay、@_sophron (George Chatzisofroniou)、@singe (Dom White)和 Ian de Villers。 这些作者的乐成会在我们的整个系列博文中引用,以是若有转载请注明泉源。
只管这些人完成了令人惊叹的事情,但这可能是我实验过的最具挑战性的事情之一。 实现本指南中所形貌的手艺花费了我整整四个月的时间。 本指南中形貌的大多数攻击都已经在 hostapd 中有了响应的防御补丁(参见: https://w1.fi/cgit/hostap/) ,这是一个用内核级 C 语言编写的重大而庞大的代码库。调试异常具有挑战性,在项目开始时,玄妙的内存损坏错误是相当常见的(只管随着时间的推移,我处置这些错误的能力有所提高)。 不用说,我在处置错误的历程中学到了许多器械,而且讲真,这提升了我的 C 语言熟练水平,然则若是没有前人的研究事情为我的开发提供了学习路线图,这个项目仍然会变得加倍难题。
靠山信息
802.11协议界说了可以存在于无线网络中的两个实体:
·基站: 毗邻到接入点(即笔记本电脑、电话等)的客户端装备。 在本系列文章中有时可能会使用术语“站点”、“基站”、“客户端”和“ 客户端装备”来形貌相同的事情。 [4]
·接入点(ap) : 提供接入分配系统(即网络)的网络硬件。[4]
这两个实体可用于构建802.11中界说的三种基本网络类型:
·扩展服务集(ESS)(又名“基础设施”网络) : 基础设施网络将是本文的主要关注点,以是请注意这一部门。 基础设施网络中的 BSS 由零个或多个毗邻到接入点的站点组成,并通过其基本服务集标识符(BSSID)举行标识。 扩展服务集(ESS)自己由一个或多个 BSS 组成,通过一个公共分发系统(DS)毗邻。 DS 自己可以是毗邻接入点的任何种类的有线或网状网络[4]。
·自力基本服务集(IBSS)(又名“ Ad-Hoc”网络) : IBSS 网络不需要接入点,至少由一个基站组成。 在这篇文章中,我们没有涉及到这种类型的网络[4]。
·网状基本服务集(MBSS)(又名“网状”网络) : EBSS 网络由一个或多个网状站点组成,包罗零个或多个网状门(你也许没太明了这里是什么意思) 。听起来很疑心吗? 不要忧郁这个问题——网状网络可能很有趣,但它与我们在这里讨论的问题无关[4]。
网络选择和周游
虽然802.11协议有异常详细的规则,划定了一个站点会若何加入 ESS,然则它没有指定站点应该若何选择一个 ESS 来毗邻。 此外,该协议允许站点在具有相同 ESSID 的接入点之间自由周游(由于从建筑物的一端走到另一端时,你不希望失去 WiFi 毗邻,等等)。 然而,802.11协议并没有指定若何选择这些接入点。 此外,纵然站点必须向 ESS 认证才能与接入点相关联,802.11协议也不要求接入点到站点的认证[4][5][6]。
这种模糊性是协议内置的,以便在设计客户端装备时给予硬件制造商一定水平的灵活性。 然而,这种模糊性也使得本文中形貌的每一种攻击成为可能[5][6]。 在接下来的章节中,我们将回首当前客户端装备用于网络发现和选择的每个算法,以及周游历程中的接见点选择。 然后我们将形貌可以用来滥用这些算法的网络攻击。
首选网络列表(PNLs)
每当一个站点毗邻到无线网络时,网络的 ESSID 就存储在站点的首选网络列表(PNL)中。 PNL 是站点已往毗邻的每个网络的有序列表,PNL 中的每个条目包罗网络的 ESSID 和确立毗邻所需的任何网络特定设置信息[5][6]。
被动扫描
客户端装备使用的第一种网络选择算法称为被动扫描。 在基础设施网络中,接入点周期性地发送信标帧,以便向四周的站点转达它们的存在和能力。 信标是广播帧,这意味着它们将被四周所有的站点吸收到。 信标包罗 AP 支持的速率、加密能力和其他信息。 对于本文的内容来说,最主要的是,信标帧包罗 AP 的 ESSID (只要不禁用 ESSID 广播)[5][6]。
在被动扫描时代,客户端装备监听来自四周接入点的信标帧。 客户端装备通常在默认情形下设置为自动毗邻到其 PNL 内的网络。 若是是这种情形,而且客户端装备吸收到一个信标帧,其 ESSID 字段与客户端的 PNL 中的 ESSID 相匹配,那么客户端将自动毗邻到发送信标帧的接入点[5][6]。 下面的动画形貌了这个历程:
被动扫描
行使伪基站攻击滥用被动扫描历程
如前所述,802.11协议不需要接见点来对站点举行身份验证。 事实上,在802.11无线通信中使用的所有形式的身份验证都是在焦点802.11协议的基础上举行分层的,而且在客户端装备决议毗邻到接入点之前不会发生。 此外,使用被动扫描的站点完全依赖信标帧的 ESSID 字段来确定接入点属于哪个 ESS [5][6]。
假设我们想要锁定一个当前没有毗邻到任何无线装备的无线装备。 若是我们知道客户端的 PNL 中至少有一个条目,我们可以通过使用该条目的 ESSID 建立我们自己的接见点来强制客户端毗邻到我们的接入点。 这样做的原因是我们的接入点将发送信标帧,这些帧将被客户端装备吸收。 客户端装备将对照信标帧中的 ESSID 字段和它的 PNL,并在找到匹配的ESSID时实验毗邻到我们的 AP [5][6]。
802.11周游
正如前面提到的,802.11协议允许站点在统一 ESS 内的接入点之间自由周游。 然而,该尺度并没有划定当站点的 ESS 中有多个 AP 可用时,站点应该若何选择一个 AP 来毗邻。 客户端装备通常通过选择提供最佳毗邻的接入点来优化以应对这种情形,这通常归结为信号强度、吞吐量和信噪比的组合。 与自动网络选择一样,客户端装备依赖于信标帧 ESSID 字段来确定四周的 AP 是否是其当前 ESS 的一部门[5][6]。
802.11周游
使用伪基站攻击滥用802.11周游
我们可以通过建立一个与我们所希望的目的网络具有相同的 ESSID 的接入点来滥用802.11周游历程。 若是我们能够提供比目的网络接入点更好的信号,那么与目的网络相关的任何客户端装备都将周游到我们的流氓接入点。 我们可以通过以下两种方式之一来做到这一点:
·诱惑: 我们提供比目的接入点更好的信号,诱使客户端装备周游到我们的 AP。
·强制: 我们使用反认证包、滋扰或其他形式的拒绝服务(DoS)攻击来阻止对目的接入点的接见。 这会强制毗邻到 AP 的任何客户端装备周游到我们的流氓接见点。
,,欢迎进入欧博平台网站(www.aLLbetgame.us),www.aLLbetgame.us开放欧博平台网址、欧博注册、欧博APP下载、欧博客户端下载、欧博游戏等业务。
使用 EAPHammer 滥用 802.11周游历程
在接下来的两个部门中,我们将先容若何使用 EAPHammer 滥用802.11的周游历程,以强制客户端装备毗邻到流氓 AP。
行使诱惑强制周游
为了吸引用户周游到一个邪恶的仿冒接入点,只需建立一个与目的网络具有相同的 ESSID 的接入点:
./eaphammer -i wlan0 --essid exampleCorp --captive-portal
攻击历程应该和你在下面的动画中看到的类似:
行使诱惑强制周游
高功率的天线可以辅助解决这种类型的攻击,只管对于企业网络硬件来说可能仍然很难取得一致的效果。
行使强制手段强制周游
为了强制客户端周游到一个邪恶的仿冒接入点,首先建立一个与目的网络具有相同 ESSID 的流氓接入点:
./eaphammer -i wlan0 --essid exampleCorp --captive-portal
接下来,从接见点对目的客户端装备举行身份验证,迫使它们周游到你确立的邪恶接入点:
ifconfig wlan1 down iwconfig wlan1 mode monitor ifconfig wlan1 up iwconfig wlan1 channel 1 aireplay-ng -0 0 -a de:ad:be:ef:13:37
整个攻击历程应该和你在下面的 动画 中看到的相似:
行使强制手段强制周游
请注意,强制毗邻流氓接见点经常具有不确定性。 现实天下的无线部署通常有多个接入点,这些接入点往往更壮大,由于其位置靠近最高限度,具有更好的站点线路局限。 作废认证一个接入点通常会导致目的周游到另一个有用接入点,而不是你的流氓 AP,除非四周所有接入点都作废认证(loud) ,或者你异常小心地放置流氓 AP (这很难题)。
自动探测
802.11中使用的第二种网络选择算法称为自动探测。 使用自动探测的客户端装备不停传输探测请求帧,以确定局限内的 AP 及其功效。 探测请求有两种形式: 直接请求和广播请求。 定向探测请求发送到特定的 ESSID,是客户端检查四周是否有特定网络的方式。
使用定向探测的客户端将在其 PNL 中发送针对每个网络的探测请求。 值得注意的是,定向探测是识别四周隐藏网络存在的唯一方式。 这和广播探测请求的事情方式险些完全相同,然则发送时 SSID 字段设置为 NULL。 这个地址将广播探测器指向四周的所有接入点,允许站点检查四周是否有它喜欢的网络,而不会显示它的 PNL 的内容。
自动探测
当接入点吸收到探测请求帧时,它首先检查帧的 SSID 字段。 若是帧是广播探测或帧的 SSID 字段与接入点的 ESSID相匹配,那么 AP 将通过向客户端发送探测响应帧来举行响应。 探测响应帧包罗与信标帧相似的信息,包罗支持的数据速率、功效和接见点的 ESSID (只针对探测请求)。
当客户端在其 PNL 中收到网络的探测响应时,它向发送探测响应的接入点发送一个身份验证请求(纵然在开放网络中,没有身份验证也会被视为一种身份验证形式)。 假设身份验证乐成(对于开放网络,它险些总是应该乐成) ,那么客户端将向客户端发送一个关联请求,以启动毗邻。
Karma攻击: 关于流动网络发现的假设
假设接入点将802.11尺度视为执法,那么接入点应该只响应广播探测请求,或者直接针对它们的 ESSID 的探测请求。
然而,正如 Dino Dai Zovi 和 Shane Macaulay 在2005年意识到的那样,当你修改一个接见点来响应它吸收到的所有探测请求时,会发生一些有趣的事情。 通过这样做,你可以有用地诱骗客户端装备毗邻到一个流氓 AP,而且事先不知道客户端的 PNL [5]。
这被称为 Karma 攻击,它异常简朴: 接见点只监听定向探测请求,然后以同样的 ESSID 发送回定向探测响应。 然后客户端吸收到 ESSID,以为这个 AP 是接近于 PNL 中的某个网络,于是客户端就可以毗邻到流氓 AP 。
使用 EAPHammer 执行 Karma 攻击
Eaphammer 不再支持经典的 karma 攻击,以是若是你想实验这些攻击,你必须降级到更老的版本。 相反,EAPHammer 支持 MANA 攻击,我会在本系列文章的在第二部门中先容。
总结
本系列文章的第一部门到此结束。 在第二部门中,我们将讨论现代无线装备平安性的改善若何大大降低了原始 Karma 攻击的有用性。 然后,我们将深入探讨两种规避这些缓解措施的手艺,并形貌它们是若何在 EAPHammer 中实现的。
参考资料
[1] https://sensepost.com/blog/2015/improvements-in-rogue-ap-attacks-mana-1%2F2/
[2] https://census-labs.com/news/2018/02/01/known-beacons-attack-34c3/
[3] https://www.justice.gov/opa/pr/us-charges-russian-gru-officers-international-hacking-and-related-influence-and
[4] https://standards.ieee.org/standard/802_11-2016.html
[5] https://ieeexplore.ieee.org/document/1495975?arnumber=1495975
[6] https://www.aon.com/cyber-solutions/aon_cyber_labs/whitepaper-identifying-rogue-access-point-attacks-using-probe-response-patterns-and-signal-strength/