Kali从入门到银手镯(二):开启WPS的无线 *** 渗透测试
很多无线路由器都支持WPS(Wifi Protection Setup)功能,它是一种可以让用户无需密码直接连接Wifi的技术。本来这种技术的初衷是让用户更加方便的连接 *** ,但是因为它有严重的安全漏洞,所以反而让用户的 *** 更加不安全。因此在这里推荐大家使用路由器的时候没事就把WPS功能关掉。
因为要进行渗透测试,所以首先我先把自己路由器的WPS功能开启,当然测试结束之后别忘了关闭WPS功能。
使用前一篇文章介绍的 *** 安装好Kali虚拟机或者U盘系统,然后就可以准备开始了。
当然这里使用到的工具并不是只有Kali能用,其他Linux发行版也可以使用。但是还是推荐Kali,因为很多渗透测试工具都是按照安防论文的理论来实现的,很多都已经不再维护了。而Kali收集了很多尚在维护的工具分支,如果你使用其他发行版的话,可能其软件仓库中的版本还是原来的旧版本。
本文比较简单,涉及到的工具有两个,reaver和aircrack-ng。
我用的是台式机安装的Kali虚拟机系统,自然是没有无线功能的,所以需要一块无线网卡。值得称道的是现在Linux驱动非常完善了,我原来买的360无线网卡可以直接驱动成功。
连接 *** 也十分简单,电脑插上无线网卡,然后在VMware软件右下角找到无线网卡的图标,点击并选择连接到虚拟机,这样就大功告成了。整个系统可能会卡几秒钟,之后就正常了。
连接成功后,在Kali虚拟机中应该可以看到Wifi图标了,用lsu *** 命令还可以查看到无线网卡的厂商和具体型号,可以看到我的无线网卡具体型号是MT7601U。
首先输入 sudo airmon-ng 命令查看一下当前系统中的无线网卡,在Kali中这个接口名默认应该是wlan0。
然后输入下面的命令关闭可能影响网卡监听的程序,然后开启监听模式。开启完毕之后,再次输入 sudo airmon-ng ,应该就会看到这次接口名变成了wlan0mon,这样就说明成功开启了监听模式,可以进行下一步了。
输入下面的命令开始扫描附近的无线 *** 。
稍后应该就会显示出附近开启了WPS的所有 *** 了,dBm是信号大小,值越小说明信号越强,按Ctrl+C即可中断命令。如果想要查看所有 *** 的话,可以添加 -a 参数,它会列出所有 *** (包括了未开启WPS功能的 *** )。
这时候就要记下来 *** 的BSSID( *** Mac地址)以及ESSID( *** 名称),准备好下一步的工作了。
好了,下面就可以开始正式的工作了,其实说起来原理也很简单,WPS PIN是一个8位数字密码,所以其实我们要做的就是不断的尝试,最终找到这个PIN。总共需要尝试的次数有一亿次,看起来这个数字非常大,但是在安全领域,一亿次算是一个非常小的次数了,很多加密算法要攻破甚至需要全世界所有计算机同时计算几百年。
当然要搞定WPS的PIN并不需要这么长时间,最多10来个小时就可以了,平均用时可能也就4-5个小时左右。而且一旦知道了PIN,获得WIFI密码仅需要数秒即可搞定。之后只要PIN码没有发生变化,就算WIFI密码被修改,也可以很轻松的搞定。
接下来就要轮到本文的主角登场了,这就是reaver,专门用于破解WPS Wifi *** 的工具。输入 -h 参数即可查看帮助信息,这里简单列出一些我们要使用的参数。
详细参数参考reaver的帮助,并不难懂。
了解了reaver命令行的用法之后,就可以正式开始了。很多时候一次可能并不能成功,需要尝试多次。
因为是测试,所以 *** 脆直接指定了PIN的值。为了更详细的了解命令运行过程,可以开启2级或者3级输出看看reaver工具到底干了啥。
如果出现了下面的bad FCS,可以在添加 -F 参数忽略帧校验错误,然后再次尝试。
如果一切正常的话,应该会在几分钟内通过PIN解开WIFI的密码。如果不知道PIN密码的话,也可以通过几个小时的尝试来试出PIN进而得知WIFI密码。因此我们在日常使用的时候,一定要记得关掉WPS功能,它是很多漏洞的根源。
Kali Linux 无线渗透测试入门指南 第二章 WLAN 和固有的不安全性
没有什么伟大的东西能在脆弱的基础上构建。在我们的语境中,固有的不安全性之上不能构建出安全。
WLAN 在设计上拥有特定的不安全性,它们可被轻易利用,例如,通过封包注入,以及嗅探(能够在很远处进行)。我们会在这一章利用这些缺陷。
由于这本书处理无线方面的安全,我们假设你已经对协议和封包的头部有了基本的了解。没有的话,或者你离开无线有很长时间了,现在是个好机会来回顾这个话题。
让我们现在快速复习一些 WLAN 的基本概念,大多数你可能已经知道了。在 WLAN 中,通信以帧的方式进行,一帧会拥有下列头部结构:
Frame Control 字段本身拥有更复杂的结构:
类型字段定义了下列三种 WLAN 帧:
我们在之后的章节中讨论不同攻击的时候,会讨论这些帧中每一种的安全隐患。
我们现在看一看如何使用 Wireshark 嗅探无线 *** 上的这些帧。也有其他工具 -- 例如 Airodump-NG,Tcpdump,或者 Tshark -- 你同样可以用于嗅探。我们在这本书中多数情况会使用 Wireshark,但是我们推荐你探索其它工具。之一步是创建监控模式的接口。这会为你的适配器创建接口,使我们可以读取空域中的所有无线帧,无论它们的目标是不是我们。在有线的世界中,这通常叫做混合模式。
让我们现在将无线网卡设为监控模式。
遵循下列指南来开始:
我们成功创建了叫做 mon0 的监控模式接口。这个接口用于嗅探空域中的无线封包。这个接口已经在我们的无线适配器中创建了。
可以创建多个监控模式的接口,使用相同的物理网卡。使用 airmon-ng 工具来看看如何完成。
太棒了!我们拥有了监控模式接口,等待从空域中读取一些封包。所以让我们开始吧。
下一个练习中,我们会使用 Wireshark 和刚刚创建的 mon0 监控器模式接口,从空域中嗅探封包。
遵循下列指南来开始:
观察封包中不同的头部字段,并将它们和之前了解的 WLAN 帧类型以及子类型关联。
我们刚刚从空域中嗅探了之一组封包。我们启动了 Wireshark,它使用我们之前创建的监控模式接口 mon0 。通过查看 Wireshark 的底部区域,你应该注意到封包捕获的速度以及目前为止捕获的封包数量。
Wireshark 的记录有时会令人生畏,即使在构成合理的无线 *** 中,你也会嗅探到数千个封包。所以深入到我们感兴趣的封包十分重要。这可以通过使用 Wireshark 中的过滤器来完成。探索如何使用这些过滤器来识别记录中唯一的无线设备 -- 接入点和无线客户端。
如果你不能做到它,不要着急,它是我们下一个要学的东西。
现在我们学习如何使用 WIreshark 中的过滤器来查看管理、控制和数据帧。
请逐步遵循下列指南:
我们刚刚学习了如何在 Wireshark 中,使用多种过滤器表达式来过滤封包。这有助于监控来自我们感兴趣的设备的所选封包,而不是尝试分析空域中的所有封包。
同样,我们也可以以纯文本查看管理、控制和数据帧的封包头部,它们并没有加密。任何可以嗅探封包的人都可以阅读这些头部。要注意,黑客也可能修改任何这些封包并重新发送它们。协议并不能防止完整性或重放攻击,这非常易于做到。我们会在之后的章节中看到一些这类攻击。
你可以查阅 Wireshark 的手册来了解更多可用的过滤器表达式,以及如何使用。尝试玩转多种过滤器组合,直到你对于深入到任何细节层级都拥有自信,即使在很多封包记录中。
下个练习中,我们会勘察如何嗅探我们的接入点和无线客户端之间传输的数
据封包。
这个练习中,我们会了解如何嗅探指定无线 *** 上的封包。出于简单性的原因,我们会查看任何没有加密的封包。
遵循下列指南来开始:
我们刚刚使用 WIreshark 和多种过滤器嗅探了空域中的数据。由于我们的接入点并没有使用任何加密,我们能够以纯文本看到所有数据。这是重大的安全问题,因为如果使用了类似 WIreshark 的嗅探器,任何在接入点 RF 范围内的人都可以看到所有封包。
使用 WIreshark 进一步分析数据封包。你会注意 DHCP 请求由客户端生成,并且如果 DHCP 服务器可用,它会返回地址。之后你会发现 ARP 封包和其它协议的封包。这样来被动发现无线 *** 上的主机十分简单。能够看到封包记录,并重构出无线主机上的应用如何和 *** 的其余部分通信十分重要。Wireshark 所提供的有趣的特性之一,就是跟踪流的能力。这允许你一起查看多个封包,它们是相同连接中的 TCP 数据交换。
此外,尝试登陆 和其它流行站点并分析生成的数据流量。
我们会演示如何向无线 *** 中注入封包。
我们使用 aireplay-ng 工具来进行这个练习,它在 Kali 中自带。
遵循下列指南来开始:
我们刚刚使用 aireplay-ng,成功向我们的测试环境 *** 注入了封包。要注意我们的网卡将这些任意的封包注入到 *** 中,而不需要真正连接到无线接入点 Wireless Lab 。
我们会在之后的章节中详细了解封包注入。现在请探索一下 Aireplay-ng 工具用于注入封包的其它选项。你可以使用 Wireshark 监控空域来验证注入是否成功。
WLAN 通常在三种不同频率范围内工作:2.4 GHz,3.6 GHz 和 4.9/5.0 GHz。并不是所有 WIFI 网卡都全部支持这三种范围和相关的波段。例如,Alfa 网卡只支持 IEEE 802.11b/g。这就是说,这个网卡不能处理 802.11a/n。这里的关键是嗅探或注入特定波段的封包。你的 WIFI 网卡需要支持它。
另一个 WIFI 的有趣方面是,在每个这些波段中,都有多个频道。要注意你的 WIFI 网卡在每个时间点上只能位于一个频道。不能将网卡在同一时间调整为多个频道。这就好比车上的收音机。任何给定时间你只能将其调整为一个可用的频道。如果你打算听到其它的东西,你需要修改频道。WLAN 嗅探的原则相同。这会产生一个很重要的结论 -- 我们不能同时嗅探所有频道,我们只能选择我们感兴趣的频道。这就是说,如果我们感兴趣的接入点的频道是 1,我们需要将网卡设置为频道 1。
虽然我们在上面强调了 WLAN 嗅探,注入的原则也相同。为了向特定频道注入封包,我们需要将网卡调整为特定频道。
让我们现在做一些练习,设置网卡来制定频道或进行频道跳跃,设置规范域以及功率等级,以及其它。
仔细遵循以下步骤:
我们知道了,无线嗅探和封包注入依赖于硬件的支持。这即是说我们只能处理网卡支持的波段和频道。此外,无线网卡每次只能位于一个频道。这说明了我们只能一次嗅探或注入一个频道。
WIFI 的复杂性到这里并没有结束。每个国家都有自己的未授权的频谱分配策略。这规定了允许的功率等级和频谱的用户。例如,FCC 规定,如果你在美国使用 WLAN,你就必须遵守这些规定。在一些国家,不遵守相关规定会收到惩罚。
现在让我们看看如何寻找默认的规范设置,以及如何按需修改它们。
仔细遵循以下步骤:
每个国家都有用于未授权无线波段的自己的规范。当我们将规范域设置为特定国家时,我们的网卡会遵循允许的频道和指定的功率等级。但是,嗅探网卡的规范域,来强制它工作在不允许的频道上,以及在高于允许值的功率等级上传输数据相当容易。
查看你可以设置的多种参数,例如频道、功率、规范域,以及其它。在 Kali 上使用 iw 命令集。这会让你深刻了解在不同国家的时候如何配置网卡,以及修改网卡设置。
Q1 哪种帧类型负责在 WLAN 中的验证?
Q2 使用 airmon-mg 在 wlan0 上创建的第二个监控器模式接口的名字是什么?
Q3 用于在 Wireshark 中查看非信标的过滤器表达式是什么?
这一章中,我们对 WLAN 协议进行了一些重要的观察。
管理、控制和数据帧是未加密的,所以监控空域的人可以轻易读取。要注意数据封包载荷可以使用加密来保护,使其更加机密。我们在下一章讨论它们。
我们可以通过将网卡设置为监控模式来嗅探附近的整个空域。
由于管理和控制帧没有完整性保护,使用例如 aireplay-ng 的工具通过监控或照旧重放它们来注入封包非常容易。
未加密的数据封包也可以被修改和重放到 *** 中。如果封包加密了,我们仍然可以照旧重放它们,因为 WLAN 设计上并没有保护封包重放。
下一章中,我们会看一看用于 WLAN 的不同验证机制,例如 MAC 过滤和共享验证,以及其它。并且通过实际的演示来理解多种安全缺陷。
Kali Linux 无线渗透测试入门指南 第四章 WLAN 加密缺陷
即使做了最充分的预测,未来始终是不可预测的。WLAN 委员会设计了了 WEP 和 WPA 作为最简单的加密机制,但是,久而久之,这些机制拥有在现实世界中广泛公布和利用的缺陷。
WLAN 加密机制易受密码学攻击,这有相当长的历史了。这从 2000 年的 WEP 开始,它最后被完全破解。最近,攻击慢慢转向了 WPA。即使当前没有公开攻击方式用于在所有情况下破解 WPA,特殊情况下的攻击还是可行的。
WLAN 在空气中传输数据,所以保护数据的机密性是一种内在需求。使用加密是更佳方案。WLAN 委员会(IEEE 802.11)为数据加密指定了以下协议:
这一章中,我们会看一看每个加密协议,并演示针对它们的多种攻击。
WEP 协议在 2000 年发现漏洞,但是,诧异的是,它仍然被使用,并且接入点仍然自带 WEP 功能。
WEP 中有许多密码学缺陷,它们被 Walker,Arbaugh,Fluhrer,Martin,Shamir,KoreK,以及其它人发现。密码学立场上的评估超出了这本书的范围,并且涉及到复杂的数学。这一节中,我们会看一看如何使用 Kali 中便捷可用的工具来破解 WEP 加密。这包含整个 aircrack-ng 工具套件 -- airmon-ng , aireplay-ng , airodump-ng , aircrack-ng ,以及其它。
WEP 的基础缺陷是使用 RC4 和短的 IV 值,每 224 帧复用。虽然这本身是个大数,但是每 5000 个封包中还是有 50% 的几率重用四次。为了利用这个,我们尝试大量流量,是我们增加重用 IV 的可能性,从而比较两个使用相同密钥和 IV 加密的密文。
让我们首先在测试环境中建立 WEP,并且看看如何破解。
遵循以下指南来开始:
我们在环境中建立 WEP,并成功破解了 WEP 密钥。为了完成它,我们首先等待正常客户端连接到接入点。之后,我们使用 aireplay-ng 工具在 *** 上重放 ARP 封包。这会导致 *** 发送 ARP 重放封包,从而增加空中发送的数据封包数量。之后我们使用 aircrack-ng 工具,通过分析数据风暴的密码学缺陷来破解 WEP 密钥。
要注意我们也能够使用共享密钥验证绕过机制,来伪造接入点的验证,这会在后面的章节中学到。如果正常客户端离开了 *** ,这可以更方便一些。这会确保我们可以伪造验证和关联,并且继续将重放封包发送到 *** 。
在之前的练习中,如果正常客户端突然断开了 *** ,我们就不能重放封包,因为接入点会拒绝接受来自未关联客户端的封包。
你的挑战就是,使用即将在后面学到的共享密钥绕过伪造验证和授权,使你仍然能够将封包注入到 *** 中,并验证接入点是否接受和响应它们。
WPA 或者 WPA v1 主要使用 TKIP 加密算法。TKIP 用于改进 WEP,不需要完全新的硬件来运行。反之,WPA2 必须使用 AES-CCMP 算法来加密,这比 TKIP 更加强大和健壮。
WPA 和 WPA2 允许 基于 WAP 的验证,使用基于 RADIUS 服务器(企业)和预共享密钥(PSK)(个人)的验证模式。
WPA/WPA2 PSK 易受字典攻击。攻击所需的输入是客户端和接入点之间的四次 WPA 握手,以及包含常用口令的单词列表。之后,使用例如 Aircrack-ng 的工具,我们可以尝试破解 WPA/WPA2 PSK 口令。
四次握手的演示见下面:
WPA/WPA2 PSK 的原理是它导出了会话层面的密钥,叫做成对临时密钥(PTK),使用预共享密钥和五个其它参数 -- *** SSID、验证者 Nounce (ANounce)、申请者 Nounce (SNounce)、验证着 MAC 地址(接入点 MAC)、申请者 MAC 地址(WIFI 客户端 MAC)。密钥之后用于加密接入点和客户端之间的所有数据。
通过嗅探空气来窃取整个对话的攻击者,可以获得前面提到的全部五个参数。它唯一不能得到的东西就是预共享密钥。所以,预共享密钥如何创建?它由用户提供的 WPA-PSK 口令以及 SSID 导出。这些东西的组合通过基于密码的密钥推导函数(PBKDF2)来发送,它的输出是 256 位的共享密钥。
在典型的 WPA/WPA2 PSK 字典攻击中,攻击者会使用可能口令的大量字典以及攻击工具。工具会从每个口令中导出 256 位的预共享密钥,并和其它参数(之前提到过)一起使用来创建 PTK。PTK 用于在握手包之一中验证信息完整性检查(MIC)。如果匹配,从字典中猜测的口令就正确,反之就不正确。
最后,如果授权 *** 的口令存在于字典中,它会被识别。这就是 WPA/WPA2 PSK 破解的工作原理。下面的图展示涉及到的步骤:
下个练习中,我们会看一看如何破解 WPA PSK 无线 *** 。使用 CCMP(AES)的WPA2-PSK *** 的破解步骤与之相同。
遵循以下指南来开始:
我们在接入点上设置了 WPA-PSK,使用常见口令: abcdefgh 。之后我们使用解除验证攻击,让正常客户端重新连接到接入点。当我们重新连接时,我们捕获了客户端和接入点之间的 WPA 四次握手。
因为 WPA-PSK 易受字典攻击,我们向 Aircrack-ng 输入了包含 WPA 四次握手的捕获文件,以及常见口令的列表(以单词列表形式)。因为口令 abcdefgh 出现在单词列表中, Aircrack-ng 就能够破解 WPS-PSK 共享口令。要再次注意,在基于字典的 WPA 破解中,你的水平就等于你的字典。所以在你开始之前,编译一个大型并且详细的字典非常重要。通过 Kali 自带的字典,有时候可能不够,可能需要更多单词,尤其是考虑位置因素。
Cowpatty 是个同样使用字典攻击来破解 WPA-PSK 口令的工具。这个工具在 Kali 中自带。我将其留做练习,来让你使用 Cowpatty 破解 WPA-PSK 口令。
同样,设置不常见的口令,它不出现在你的字典中,并再次尝试。你现在再破解口令就不会成功了,无论使用 Aircrack-ng 还是 Cowpatty。
要注意,可以对 WPA2-PSK *** 执行相同攻击。我推荐你自己验证一下。
我们在上一节中看到,如果我们在字典中拥有正确的口令,破解个人 WPA 每次都会像魔法一样。所以,为什么我们不创建一个大型的详细字典,包含百万个常见密码和词组呢?这会帮助我们很多,并且多数情况都会最终破解出口令。这听起来不错,但是我们错过了一个核心组件 -- 所花费的时间。更多需要 CPU 和时间的计算之一就是使用 PSK 口令和 SSID 通过 PSKDF2 的预共享密钥。这个函数在输出 256 位的与共享密钥之前,计算超过 4096 次二者组合的哈希。破解的下一步就是使用这个密钥以及四次握手中的参数来验证握手中的 MIC。这一步计算了非常大。同样,握手中的参数每次都会变化,于是这一步不能预先计算。所以,为了加速破解进程,我们需要使来自口令的与共享密钥的计算尽可能快。
我们可以通过预先计算与共享密钥,在 802.11 标准术语中也叫作成对主密钥(PMK)来加速。要注意,因为 SSID 也用于计算 PMK,使用相同口令和不同 SSID,我们会得到不同的 PMK。所以,PMK 取决于口令和 SSID。
下个练习中,我们会看看如何预先计算 PMK,并将其用于 WPA/WPA2 的破解。
我们可以遵循以下步骤来开始:
我们查看了多种不同工具和技巧来加速 WPA/WPA2-PSK 破解。主要原理就是对给定的 SSID 和字典中的口令列表预计算 PMK。
在所有我们做过的联系中,我们使用多种技巧破解了 WEP 和 WPA 密钥。我们能拿这些信息做什么呢?之一步就是使用密钥解密我们捕获的数据封包。
下一个练习中,我们会在相同的我们所捕获的记录文件中解密 WEP 和 WPA 封包,使用我们破解得到的密钥。
遵循以下步骤来开始:
我们刚刚看到了如何使用 Airdecap-ng 解密 WEP 和 WPA/WPA2-PSK 加密封包。要注意,我们可以使用 Wireshark 做相同的事情。我们推荐你查阅 Wireshark 的文档来探索如何用它来完成。
我们也可以在破解 *** 密钥之后连接到授权 *** 。这在渗透测试过程中非常方便。使用破解的密钥登录授权 *** ,是你可以提供给客户的证明 *** 不安全的证据。
遵循以下步骤来开始:
我们连接到了 WEP *** 。
遵循以下步骤来开始:
默认的 WIFI 工具 iwconfig 不能用于连接 WPA/WPA2 *** 。实际上的工具是 WPA_Supplicant 。这个实验中,我们看到如何使用它来连接 WPA *** 。
Q1 哪种封包用于封包重放?
Q2 WEP 什么时候能被破解?
Q3 WPA 什么时候能被破解?
这一章中,我们了解了 WLAN 加密。WEP 含有缺陷,无论 WEP 密钥是什么,使用足够的数据封包就能破解 WEP。WPA/WPA2 在密码学上不可破解;但是,在特殊的场景下,例如 WPA/WP2-PSK 中使用了弱口令,它就能够通过字典攻击来获得口令。
下一章中我们会看一看 WLAN 设施上的不同工具,例如伪造接入点,邪恶双生子,位反转攻击,以及其它。
『Kali 无线渗透01』- 无线网卡的选择及配置
思路一:使用MacBook Pro自带无线网卡
MacBook Pro无线网卡信息:
卡类型: AirPort Extreme (0x14E4, 0x133)
固件版本: Broadcom BCM43xx 1.0 (7.77.61.1 AirPortDriverBrcmNIC-1305.2)
翻墙查资料N久,最接近成功的是这篇教程 Kali Linux Wireless/Wifi Adapter (Not detecting) [FIX] 2018 ,虽然ifconfig指令可以看到无线网卡信息,但是搜索不到周围AP,也不能设置monitor模式。故放弃。
若有那位老兄使用MacBook Pro 自带网卡可以设置成功,请您一定要在我博客下方留言告知!
思路二:使用外设USB无线网卡
aircrack-ng官方推荐网卡
注意:TP-Link TL-WN722N 一定要选择V1版本
本来想选用业界推崇的WN722N,但是此型号在电商平台确实难求,所以在某宝选择了“vendor”的无线网卡(Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter)。
无论我们选取哪款无线网卡做渗透测试,至少要满足以下两点:支持AP及monitor模式。
AP模式:可作为evil无线接入点
monitor模式:可以进行抓包
环境:MacBook Pro - Mac OS Mojave
虚拟机:VirtualBox
无线网卡:Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
注意:一定要选择USB3.0(xHCI)控制器,否则iw指令或设置monitor模式会存在问题
wlan0就是我们所选择的无线网卡
如果ifconfig命令中没有发现wlan0,通过ifconfig -a查看无线网卡是否存在,若存在则证明wlan0没有启动,需要进行配置
通过iw list指令查看无线网卡详细信息
查看支持接口模式
查看信道
或者使用iw list指令
还可以通过管道进行筛选:
搜索附近AP名称
搜索附近AP名称及信道
搜索名称、信道及频率
增加monitor模式
对无线网卡添加monitor模式后才可以进行无线抓包,命名规则在原有无线网卡名称后添加mon,例:wlan0 - wlan0mon
启动wlan0mon
添加wlan0mon后不会自动启动,需要手动进行启动
删除monitor
抓包之后可以删除monitor
打开Wireshark 选择wlan0mon
0条大神的评论