在本系列文章的第一部分中,我们介绍了802.11的一些基本原理,并描述了如何利用协议的漫游和网络选择特性来执行无线中间人(PITM)攻击。 我们还讨论了如何在 EAPHammer 中执行基本的仿冒接入点攻击(参见: https://github.com/s0lst1c3/eaphammer)。 如果你还没有读过本系列文章的第一部分,你可以在这里找到:

· https://posts.specterops.io/modern-wireless-attacks-pt-i-basic-rogue-ap-theory-evil-twin-and-karma-attacks-35a8571550ee

在本系列的下一篇文章中,我们将描述客户端设备安全性的改进是如何使 Karma 攻击的效果大大降低的。 然后,我们将讨论 Dominic White (@singe)、 Ian de Villiers 和 George Chatzisofroniou (@sophron)开发的三种攻击技巧,奇热这些技巧可以用来规避这些改进 [1][2] :

· MANA 攻击: Dom White 和 Ian de Villiers 开发的一种 Karma 风格的攻击,其中伪基站(AP)重建附近设备的首选网络列表(PNL)。

· Loud  MANA攻击: 由 Dom White 和 Ian de Villers 开发的MANA攻击的一个变种,在这种攻击中,伪基站发送信标和探测响应帧给附近设备的所有 PNL 中的每个 ESSID (我用集合论来描述这一点,见下面的详细解释)。

· 已知信标攻击: 由 George Chatzisofroniou 开发的一种伪基站攻击,攻击者试图暴力猜解邻近设备的 PNL 以实现强制连接。

在讨论了这些技术在算法和技术层面上的工作方式之后,我们将介绍这些技术是如何在 EAPHammer 中实现的。

主动探测的限制

在本系列文章的第一部分中,我们讨论了定向探测是如何成为一个相当明显的设计缺陷,对无线客户端设备具有严重的安全性影响。 因此,现代设备通常避免依赖定向探测请求,这严重限制了原始 Karma 攻击的成功率。

正如 White 和 de Villiers 在 DEF CON 22会议上发表的题为”天赐之物”的演讲中指出的那样,现代客户端设备通常具有以下两个特征之一:

· 该设备忽略来自非首次响应广播探测的 AP 的探测响应[1]。

· 该设备完全忽略使用主动探测,而完全依赖于被动扫描[1]。

接下来的章节我将重温White、de Villiers 和George Chatzisofroniou 为处理客户端设备设计中的这些改进而开发的技术[1][2]。

MANA 攻击使用有限的主动探测攻击目标设备

MANA 攻击是由 Dom White 和 Ian de Villiers 在2015年开发的,是对 Dino Dai Zovi 和 Shane Macaulay 提出的原始 Karma 攻击的改进,Karma 攻击我们在本系列文章的第一部分中提到过。 在最初的 Karma 攻击中,伪基站没有保存它收到探测请求的 ESSID 历史记录。 相反,伪基站用匹配到的探测响应盲目地响应它接收到的每个定向探测请求。 从安全的角度来看,这是有问题的,因为许多现代设备会忽略来自未首先响应广播探测的 AP 的探测请求。 MANA 是一种绕过这个限制的技术。

在 MANA 攻击中,伪基站使用哈希表记录每个客户端设备的 MAC 地址,从这些设备接收探测请求。 这个主哈希表中的每个 MAC 地址映射到设备已探测的另一个 ESSID 哈希表。 通过这样做,伪基站能够有效地重建和跟踪附近使用定向探测的客户端设备的 PNL。

MANA 的客户端 PNL 表

MANA 算法的工作原理如下: 每次访问点接收到探测请求时,它首先确定它是广播探测还是定向探测。 如果是定向探测,则将发送方的 MAC 地址添加到哈希表(如果哈希表尚未存在的话) ,并将 ESSID 添加到该设备的 PNL。 AP 随后以定向探测响应进行响应。 如果它是一个广播探测,接入点将响应该设备的 PNL 中的每个网络的探测响应。 伪基站能够保持附近设备的 PNL 状态,这使得它能够对定向探测和广播探测做出精确响应。

使用 EAPHammer 执行 MANA 攻击

在1.4.0版本中,EAPHammer 的基本 karma 实现已经被 White 和 de Villers 的算法实现所取代,这大大提高了它对现代无线设备攻击的有效性。 从开发人员的角度来看,这是我写过的最具挑战性的代码之一,我甚至无法想象 White 和 de Villiers 在没有已有的学习路线图的情况下完成这个任务会是什么样子(特别是考虑到整个攻击必须在 C 语言中使用内核和驱动程序级别的库函数来实现)。

要使用 EAPHammer 的 MANA 攻击新功能,可以使用—-mana 标志,如下面的例子所示:

./eaphammer -i wlan0 -e theClientAcceptsTheRisk --cloaking full --captive-portal --mana --mac-whitelist whitelist.txt

或者,你可以像以前一样继续使用—-karma 标志,这个标志现在是 —-mana  标志的别名:

./eaphammer -i wlan0 -e seemsLegit --cloaking full --captive-portal --karma --mac-whitelist whitelist.txt

已知的信标和 Loud Mode 攻击使用无定向探测攻击目标设备

White 和de Villers 的 MANA 攻击允许我们锁定那些忽略探测响应的设备,这些探测响应来自不能准确响应广播探测的 AP。 然而,标准的 MANA攻击仍然不允许我们攻击不使用定向探测的设备[1]。

要攻击这些设备,我们可以使用仿冒的伪基站进行攻击,如果我们已经拥了目标的 PNL 信息。 但是如果我们事先没有这些信息呢? 有两种技术可以用来克服这个问题: Chatzisofroniou 提出的已知信标攻击和 White 与 de Villers 提出的 Loud Mode 攻击。 我们将在接下来的章节中逐一介绍这些攻击技术。

Loud Mode 攻击

Loud Mode是 MANA 攻击的一种变体,它依赖于在物理上接近的多个客户端设备之间可能至少有一些在它们的 PNL 中相同的条目。

让我们考虑一下这个想法包含的安全含义。 我经常发现,把事情分解成(伪)数学逻辑,可以更容易地推理出我们正在考虑的情景:

 A  B 是物理上彼此非常接近的无线客户端设备。 假设 A 使用定向探测进行网络发现。 

假设 B 没有使用定向探测进行网络发现,而是完全依赖于被动扫描。

假设 A  B  PNL 相交。

因为 A 使用的是定向探测,所以我们知道它的整个 PNL。因此我们也知道 B  PNL 中至少有一个条目与 A 相同,因为 A  B  PNL 相交。

因此,我们可以同时使用伪基站攻击 A  B

设备 A 使用主动探测(易受 MANA 攻击)。 设备 B 使用被动扫描(不易受到 MANA 的攻击)。 交叉的 PNL 意味着两者都容易受到 Loud Mode 的攻击

Loud Mode 攻击类似于基本的 MANA 攻击,但有一个关键的区别。 这个伪基站没有在一个特定设备的 PNL 中用每个 ESSID 响应探测请求,而是在它以前见过的所有设备中,为每个 PNL 中的每个 ESSID 发送探测响应。 根据集合理论,我们可以说 AP 为附近设备的所有 PNL 的联合中的每个 ESSID 发送探测响应。 通过这种方式,Loud Mode 攻击允许攻击者利用第二个设备的不良探测行为来攻击一个相对安全的设备。

Loud Mode攻击演示动画

 EAPHammer 中执行Loud Mode 攻击

在 EAPHammer 中,Loud Mode 攻击的算法与最初在 hostapd-mana 中实现的非常相似,尽管它们的实现方式有所不同。 正因为如此,对这两种工具的谍报技术的考虑是相同的。

要在 EAPHammer 中执行一个Loud Mode 的攻击,可以使用 —loud 标志 和 —karma  或  —mana 标志(记住它们是彼此的别名) :

./eaphammer -i wlan0 -e replicantWifi --cloaking full --mana --loud

另外,–singe  标志可以用作 –loud 标志的别名(我已经把它包含在攻击的创建者中) :

./eaphammer -i wlan0 -e tyrellCorp --cloaking full --mana --singe

已知信标攻击

虽然 Loud Mode 攻击非常有效,特别是在人口密集的地区,但这种攻击仍然在一些情况下不会成功。

已知信标攻击是 George Chatzisofroniou  在2018年初首次开发和实现的,它试图解决 Loud Mode 攻击在某些情况下不能成功的问题。 这种攻击的天才之处在于它的简单。 攻击者首先从字典文件构造一组“已知的 ESSID”。 接下来,攻击者创建一个伪基站,这个伪基站被设置为接受任意的 ESSID 的关联请求(类似于基本的 karma 攻击)。 最后,攻击者开始为已知的 ESSID 列表中的所有 ESSID 发送信标帧。 再次以集合论的方式来说就是: 如果字典中的所有 ESSID 集合与目标设备的 PNL 中的所有 ESSID 集合相交,则目标设备将连接到攻击者的伪基站。

已知信标攻击

理想情况下,Chatzisofroniou 提出的 Known Beacon 攻击应该使用一个相对常见的 ESSID 的字典来执行。

 EAPHammer 中执行已知信标攻击

EAPHammer 中实现的已知信标攻击与 Chatzisofroniou 创建的原始攻击有很大的不同。 在 Chatzisofroniou 的实现中,字典文件被加载到与伪基站并发运行的 Python 脚本中。 当伪基站运行时,Python 脚本使用 Scapy (参见: https://scapy.net/) 为字典中的每个条目伪造和传输信标数据包。 在 EAPHammer 中,字典被加载到相同的哈希表中,这些哈希表用于实现本文前面描述的 MANA 和 Loud Mode 攻击。 这使得 EAPHammer 能够直接从伪基站本身发送信标帧,而不依赖与 AP 一起运行的独立代码。

在语法方面,有几种不同的方法可以使用 EAPHammer 来执行已知信标攻击。 这两种方法都依赖于 –known-beacons 标志的使用。 –known-ssids 标志可以直接通过 EAPHammer 的命令行界面接口(CLI)提供简短的 ESSID 字典,如下面的例子所示:

# transmit beacons for the following ESSIDs: apples, oranges, grapes, pears, bananas
./eaphammer -i wlan0 \--mana \-e apples \--known-beacons \--captive-portal \--known-ssids oranges grapes pears bananas

或者,你可以使用 –known-ssids-file 标志来指定包含一列 ESSID 字典文件的路径,如下面的示例所示:

# transmit beacons for the following ESSIDs: apples + all ESSIDs in wordlist.txt
./eaphammer -i wlan0 \--mana \-e apples —-known-beacons \--captive-portal \--known-ssids-file wordlist.txt

字典文件的格式应该如下面所示,每行只有一个 ESSID:

oranges
grapes
pears
bananas
dragon
lychee

需要注意的是,EAPHammer 将允许你在字典文件中的每一行的开始和结束处放置空白,并将此空白解释为 ESSID 的一部分。 在使用字典文件之前,一定要对它们进行相应的校对。

为了提高攻击效率, –known-beacons 标志可以与  –loud 标志别名组合使用,如下面的命令所示:

./eaphammer -i wlan0 --mana --loud -e apples --known-beacons --captive-portal --known-ssids-file wordlist.txt

已知信标攻击演示动画

提高已知信标攻击的效率

已知信标攻击的噪声往往有点大。 EAPHammer 以“forge-beacons”脚本(使用Python 编写)的形式提供了一种隐形选择,该脚本可以与伪基站并行运行,并可以在短时间内传输大量伪造信标数据包。 你所要做的就是把它指向一个字典文件,然后给它指定一个 AP 的 BSSID,如下面的例子所示(注意 –mana 标志需要在 AP 上启用才能起作用) :

# transmit a burst of 5 forged beacon packets for each entry in list
./forge-beacons -i wlan1 \--bssid de:ad:be:ef:13:37 \--known-ESSIDs-file known-s.txt \--dst-addr 11:22:33:11:22:33 \--burst-count 5

当与使用 MANAgement Frame ACL 的伪基站配对时,这个脚本是最有效的,我们将在本系列文章的第三部分中讨论这个问题。

总结

本系列文章的第二部分到此结束。 在第三部分中,我们将介绍如何使用MANAgement Frame ACL (MFACL)来约束针对特定目标的 MANA 攻击和已知信标攻击,使这些攻击在专业环境中具有操作可行性。 我们还将详细描述 MFACL 在技术层面上的工作方式,并讨论它们对 hostapd 运行时效率的影响。

参考资料

[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://github.com/sensepost/hostapd-mana/blob/master/src/ap/beacon.c
[4] https://github.com/sensepost/hostapd-mana/blob/master/src/ap/ap_config.h

现代无线侦察技术(二):MANA 和已知信标攻击相关推荐

  1. 【SLAM建图和导航仿真实例】(二)- 根据已知地图进行定位和导航

    引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建 (二)根据已知地图进行定位和导航 (三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传 ...

  2. kasp技术原理_KASP-基于已知SNP的高通量基因分型

    一.什么是SNP? SNP,即单核苷酸多态性,是指在基因组水平上由单个核苷酸的变异而引起的一种DNA序列多态性. SNP研究具有广泛意义,在农业领域中,可以进行性状基因的精细定位.分子辅助育种.种子资 ...

  3. 已知bug列表——Solidity中文文档(12)

    写在前面:HiBlock区块链社区成立了翻译小组,翻译区块链相关的技术文档及资料,本文为Solidity文档翻译的第十二部分<已知bug列表>,特发布出来邀请solidity爱好者.开发者 ...

  4. 【C#】已知圆心上的三点求圆心

    已知圆心上的三点:,, ,求圆心: 把三点坐标圆的方程: 得: 把  展开整理得: 令 ; ; , , ,  求 求 把  移项整理得: 把  移项整理得: 还原代入式子: 整理结果 简化: 其中: ...

  5. 无线电技术 | 关于无线定位技术TDOA的综合论述(二)

    在之前的文章里,我们讲述了无线定位技术是什么,并介绍了目前常用的几种无线定位算法.对其中的TDOA算法进行了一个综合论述,了解了它是什么以及它是如何实现的. 之前说过,TDOA技术需要进行时间同步,否 ...

  6. 区块链革命 - 推荐序二 区块链已成为金融科技的底层技术

    推荐序二 区块链已成为金融科技的底层技术 金融 = 制度 + 技术 + 信息 一.区块链技术的内涵与实质 区块链是一个由不同节点共同参与的分布式数据库系统,是开放的账簿系统.市场经济活动中存在很多信用 ...

  7. 无线定位技术实验二 TDOA最小二乘定位法

    前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看.(点击跳转人工智能学习资料) 微信公众号:创享日记 发送:tdoa最小二乘 获取完整报告(含源码+结 ...

  8. 华为mate30连接电脑linux,华为mate30引入25W无线充电技术,效率已超越小米

    (文章来源:科学技术宅) 过去几年三星一直在自家的旗舰手机上采用无线充电技术,并且三星也是最早将无线充电功率提升到10W的厂商之一:不过近两年的三星旗舰手机,在无线充电的速度上并没有太大的提升. 国产 ...

  9. ATTCK框架简介 已知攻击技术汇总

    一.ATT&CK框架背景介绍 MITRE是美国政府资助的一家研究机构,该公司于1958年从MIT分离出来,并参与了许多商业和最高机密项目.其中包括开发FAA空中交通管制系统和AWACS机载雷达 ...

最新文章

  1. 斐波那契数列性质【记住】
  2. Sql PATINDEX 函数
  3. sklearn.feature_extraction.text.CountVectorizer 学习
  4. 数字语音信号处理学习笔记——语音信号的短时时域分析(3)
  5. 工作58:element三级列表的问题
  6. 配置java编译环境
  7. JeecgBoot Minio版本6.0.13升级到8.0.3修改方法
  8. es java match_java操作elasticsearch实现条件查询(match、multiMatch、term、terms、reange)...
  9. Linux Mint---开启桌面三维特效
  10. Spring Cloud Data Flow简介
  11. 花式讲解校园网绕过认证原理
  12. 您有一张H5新年贺卡未领取
  13. 雷达原理之 多普勒效应原理及应用(一)
  14. 2020年如何运营抖音、快手、视频号3个短视频平台
  15. 小米4c怎么添加语言怎么设置在哪个文件夹,小米4C怎么加密图片?私密文件夹使用方法...
  16. 通过piranha搭建lvs高可用集群
  17. 彩虹云仿小柯秒赞主题模板
  18. VS2017学习C++基础十一(项目实战:小公主养成记)
  19. 电脑alt+tap切换屏幕卡顿解决
  20. 淘宝短视频,为什么搬运的短视频没有流量?从算法角度分析

热门文章

  1. 一路PWM三阶RC滤波语音输出-噪声问题
  2. java nio 传统标准io socket 和nio socket比较与学习
  3. NovalIDE自动补全插件介绍。
  4. 2.参考线平滑算法解析及实现
  5. lisp绘制棱锥_椭圆轴棱锥,elliptical axicon,音标,读音,翻译,英文例句,英语词典
  6. python列表元素筛选_Python如何筛选序列中的元素
  7. 京东360buy 手机项目的“加入购物车”动画效果研究
  8. 密码算法测试向量——HMAC-SM3
  9. 技术出身的互联网大佬,广东占了两个
  10. 计算机网络应用智能家居,计算机智能化网络应用研究