扫码领资料
获网安教程
来Track安全社区投稿~
赢千元稿费!还有保底奖励~(https://bbs.zkaq.cn)
在本文中,我们将搭建 Wi-Fi 渗透测试的环境,并了解 Wi-Fi 网络的基础知识。
环境搭建
概述、所需软件与硬件
本系列博客,特别是第 2、3、4 部分将是实践操作。为了进行所有的练习,我们需要搭建一个实验环境。搭建该实验环境需要以下内容:
硬件:
-
• 至少 8GB 内存的 Windows 或 Mac(主机) -
• Windows 或 Mac(受害机) -
• 路由器 -
• 支持监控模式和数据包注入的无线网卡
软件:
-
• VirtualBox 软件 -
• Kali Linux VirtualBox 镜像
在 VirtualBox 中安装 Kali Linux
我们将操作系统安装为虚拟机,因为即使虚拟机出现故障,也不会影响我们的主操作系统。在安装 Kali Linux 之前,我们需要先安装虚拟化软件,它允许我们在主机中创建多个虚拟计算机。这里我们使用 VirtualBox。
安装 VirtualBox
-
• 点击这里 下载 VirtualBox 软件 -
• 使用默认设置安装 VirtualBox 软件
注意:
-
• 要在 VirtualBox 中运行虚拟机,必须在笔记本电脑的 BIOS 中启用虚拟化功能
安装 Kali Linux
-
• 要安装 Kali Linux 镜像,请访问:https://www.kali.org/downloads/-https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download 下载 Kali Linux 64 位 VirtualBox 镜像 -
• 双击下载的文件,它将在 VirtualBox 中自动打开,然后点击“Import(导入)”
-
• 开始导入
-
• 完成导入后, 点击n “Settings” 并选择 “System”
-
• 分配内存 2GB 并点击 “Network”.
-
• 现在,点击启用网络适配器,在“连接方式(Attached to)”中选择“桥接适配器(Bridged Adapter)”,然后点击“确定(OK)”。
启动你的虚拟机并探索 Kali Linux
将无线网卡连接到虚拟机
什么是无线网卡?
无线适配器是一种 USB 设备,可以连接到你的计算机,使你能够连接无线网络。大多数电脑和笔记本电脑都内置了无线网卡。
既然我们有内置无线网卡,为什么还需要外接无线适配器?
问题在于:首先,虚拟机无法访问内置无线网卡;其次,即使你将 Kali 安装在主机上,内置网卡也不适合用于黑客测试,因为我们需要一块支持“监控模式(Monitor Mode)”和“数据包注入(Packet Injection)”的高性能网卡。而大多数内置无线网卡并不支持这些模式,因此不能用于渗透测试。这也是为什么推荐使用高性能的外接 Wi-Fi 适配器。
一些已在 Kali Linux 中测试过的 USB 无线网卡
现在让我们将无线适配器连接到 Kali Linux。
-
• 打开 VirtualBox,选择你想连接适配器的虚拟机,然后进入“设置”。
-
• 选择USB
-
• 检查是否启用了 USB,并且我们需要选择与你的 Wi-Fi 适配器兼容的 USB 类型。可能是 USB 1.1、2.0 或 3.0。我的适配器是 USB 3.0(我使用的是 ALFA AWUS 1900),然后在右侧点击“添加 USB”。
-
• 将你的 USB 无线网卡插入电脑端口,在此处选择它,然后点击“确定(OK)”。
-
• 你可以看到你的USB设备已经连接好了,点击 “Ok”
注意:
-
• 如果你看不到 USB 2.0 和 USB 3.0 的选项,请确保已安装 VirtualBox 扩展包 -
• 一些无线适配器是即插即用的,但有些适配器需要手动安装驱动程序。
网络基础
Wi-Fi 及其网络的基本理解
Wi-Fi,全称为无线保真(Wireless Fidelity),是一种无线网络技术,允许诸如计算机(笔记本和台式机)、移动设备(智能手机和可穿戴设备)以及其他设备(打印机和摄像头)连接互联网。它使这些设备及更多设备之间可以相互交换信息,形成一个网络。Wi-Fi 是通过空气传输信号的。
IEEE 802.11 标准
IEEE 802.11,也被称为无线保真(Wi-Fi),设计用于有限的地理区域(如家庭、办公楼、校园)。IEEE 802.11 Wi-Fi 的接入方式是 CSMA/CA(载波监听多路访问/冲突避免)。IEEE 802.11 使用多种频段,包括但不限于 2.4 GHz、5 GHz、6 GHz 和 60 GHz 频段。它定义了用于当前 Wi-Fi 无线设备(包括无线路由器和无线接入点)之间通信的协议。
802.11 Wi-Fi 数据帧
帧控制(Frame Control) – 包含有关所使用协议、帧类型或安全类型的信息。
持续时间(Duration) – 指示该字段的传输将持续多久,让其他设备知道信道何时会再次可用。
地址 1(Address 1) – 来源/发送者的 MAC 地址。
地址 2(Address 2) – 发射者地址,通常指的是接入点(AP)的 MAC 地址。
地址 3(Address 3) – 接收者地址,也指接入点(AP)的 MAC 地址。
序列控制(Sequence Control) – 表示一个大包是如何被分片的。
地址 4(Address 4) – 目的 MAC 地址。
数据(Data) – 帧中承载的内容,例如 IP 数据包。
帧校验序列(Frame Check Sequence) – 一种错误检测机制,用于确保帧完整无误。
Wi-Fi 频段:2.4GHz 与 5GHz
Wi-Fi 网络中使用的两个主要频段是 2.4GHz 和 5GHz。
2.4GHz 频段 范围为 2.4GHz 到 2.4835GHz。该频段用于 802.11b、802.11g 和 802.11n 标准。2.4GHz 频段被划分为 14 个固定频率信道,每个信道宽度为 20MHz。
5GHz 频段 被 802.11a、802.11n 和 802.11ac 标准使用。5GHz 频段被划分为 UNII-1、UNII-2 扩展、UNII-3 和 ISM。UNII 代表“无许可证国家信息基础设施”,ISM 代表“工业、科学和医疗”。这些只是对频段不同部分的标签、规范和规定,例如 UNII-1 频段主要设计用于室内 Wi-Fi 网络。
Wi-Fi 安全协议:
-
1. WEP(Wired Equivalent Privacy,有线等效加密)这是最早用于无线网络的安全协议,开发于 1999 年,使用 40 位加密密钥。后来发现其加密方式存在严重漏洞,安全性极低。 -
2. WPA(Wi-Fi Protected Access,Wi-Fi 保护访问)为解决 WEP 的问题而开发。WPA 比 WEP 更强大,因为它使用了一种更强的加密方式——TKIP(临时密钥完整性协议)。TKIP 会动态更换密钥,确保数据完整性。但由于 TKIP 自身也存在漏洞,如今 WPA 已被淘汰。 -
3. WPA2为了提供比 WPA 更强的安全性而开发。WPA2 使用 AES(高级加密标准),AES 是一种对称加密算法,足够强大,可以抵御暴力破解攻击。 -
4. WPA3于 2018 年推出。根据官方 Wi-Fi 网站(https://www.wi-fi.org/),WPA3 为市场带来了先进的安全协议。WPA3 用“同时认证等值(SAE)”交换方式替代了传统的预共享密钥(PSK)交换,该方法最初引入自 IEEE 802.11s,在个人模式下实现了更安全的初始密钥交换,并提供了前向保密性。Wi-Fi 联盟还宣称,WPA3 可缓解弱密码带来的安全问题,并简化无显示界面的设备的设置流程。
理解接入点(AP)与客户端的通信方式(重要)
现在,我们来理解这些设备是如何在各个阶段建立连接并开始传输数据的。
连接 Wi-Fi 网络的阶段
整个连接过程分为三个主要部分:
PROBE(探测阶段)
这是连接无线网络的第一阶段:
-
1. 探测请求(Probe Request,广播请求) – 当你开启 Wi-Fi 连接时,客户端会在所有信道上广播探测请求,用于寻找附近的接入点(AP)。 -
2. 探测响应(Probe Response) – 附近的接入点接收到请求后,会向客户端发送探测响应。这时你就能在设备上看到附近的 Wi-Fi 列表。
认证(AUTHENTICATION)
-
1. 认证请求(Authentication Request) – 当我们从列表中选择某个接入点后,客户端会向该接入点发送认证请求数据包。 -
2. 认证响应(Authentication Response) – 如果认证请求成功,接入点会发送认证成功的响应给客户端。
关联(ASSOCIATION,最终阶段)
-
1. 关联请求(Association Request) – 客户端向接入点发送该请求,表示它准备开始通信。 -
2. 关联响应(Association Response) – 接入点最终向客户端发送关联响应。
在这三个主要步骤完成后,数据传输就开始了。
在下方的图示中,我使用 Wireshark 抓取了我的手机与接入点(Wi-Fi)之间的连接请求数据包,你可以清晰地看到我们所讲到的每一个数据包。
MAC 地址
什么是 MAC 地址?
媒体访问控制地址(MAC 地址)是一种硬件地址,用于唯一标识网络中的每个节点。它由设备制造商分配。MAC 地址在网络内部用于识别设备,并在设备之间传输数据。因此,网络中发送的每个数据包都包含源 MAC 地址和目的 MAC 地址。MAC 地址是12位十六进制数字(长度为48位)。
(制造商)MM-MM-MM-SS-SS-SS(序列号)
00 : A0 : C9 : 14 : C8 :29
为什么要更改 MAC 地址?
MAC 地址是每个网络设备唯一的物理地址,用于识别设备,改变它可以让你在网络中保持匿名。
如何隐藏 MAC 地址?
你可能会想,计算机的 MAC 地址是从硬件读取的,怎么能更改呢?实际上,你并不是修改硬件,而是修改内存。当计算机启动时,MAC 地址被加载到内存(RAM)中,我们更改的是已经加载到内存中的 MAC 地址。所以,当你更改了 MAC 地址,目标设备看到的就是伪造的 MAC 地址,他们就无法追踪你了。
如何更改 MAC 地址
从虚拟机启动 Kali 系统并打开终端。我将使用 ifconfig 命令列出机器上所有可用的网络接口。
在上图中,你可以看到 eth0
是由 VirtualBox 创建的虚拟接口,lo
是 Linux 的默认接口,wlan0
是我们的无线网卡。
方法一(更改 MAC 地址)
现在,我们要更改 wlan0
接口中 ether
后面的 MAC 地址。要更改任何接口的值(如上图所示),首先必须禁用该接口。
禁用接口的命令是:ifconfig
后面跟接口名,再跟 down
,用于禁用它。最终命令格式如下:
ifconfig <接口名> down(此命令会停止所有无线服务,且在更改网络卡的任何值之前必须先停止它)
接下来,我们要更改由 ether
表示的 MAC 地址。输入命令格式是:
ifconfig
+ 你想更改的接口名 + 你想更改的选项(这里是硬件地址 hw ether
),然后跟上你想设置的新 MAC 地址。
命令格式:
ifconfig <接口名> hw ether <MAC 地址>(例如:ifconfig wlan0 hw ether 00:11:12:13:14:15
,你可以用任意符合格式的地址,确保你的地址以 00:
开头)
最后,我们需要重新启用之前禁用的接口,命令是:
ifconfig <接口名> up
再次运行 ifconfig
,你就能看到 MAC 地址已经被更改了。
方法二(更改 MAC 地址)
Kali Linux 预装了一个名为 “macchanger” 的程序,它可以让我们更改已加载的 MAC 地址。
打开终端
首先,我们需要停止无线网卡,以便更改 MAC 地址。
ifconfig wlan0 down(与方法一相同)
然后输入以下命令:
macchanger –help(该命令调用 macchanger 并显示帮助信息,里面有程序的使用说明)
在我的例子中,我将使用随机 MAC 地址,输入:
macchanger –random wlan0
macchanger
是程序名称,–random
是选项,wlan0
是无线网卡。如果一切正常,屏幕应该会显示如下图所示内容。
无线模式(管理模式与监听模式解释)
如果我们想破解 Wi-Fi,需要捕获“握手包(Handshake)”。这个握手是受害者电脑与无线网络之间的连接,有了这个握手包,我们就能破解密码和 Wi-Fi 名称(这将在第2部分进行)。
网络中所有数据都以数据包形式发送,网络设备通过 MAC 地址确保这些数据包朝正确的方向传输。所以,每个数据包都有源 MAC 地址和目标 MAC 地址,数据包从源头流向目的地。
既然 MAC 地址用来确保数据包传输到正确的位置,那么我们如何捕获这些数据包呢?
这只适用于无线网卡的默认模式,即“**管理模式(managed mode)”。
当我们处于 Wi-Fi 信号范围内时,能够捕获所有这些通信,因为这些数据包是在空气中发送的,即使这些数据包的目标 MAC 地址不是我们的,我们也能捕获到。
监听模式(monitor mode)允许无线网卡“监听”收到的所有数据包,不做任何过滤。在使用某些无线驱动时,此模式还允许发送原始的 802.11 帧。
要实现这一点,我们需要将无线接口的工作模式切换为监听模式。
在上图中,我们可以看到该无线适配器的模式被设置为“managed”(管理模式)。这意味着,这是所有无线设备的默认模式,也就是说该设备只会捕获目标 MAC 地址是本设备 MAC 地址的数据包。简单来说,它只会捕获发送给我们 Kali 机器的数据包,但这并不是我们想要的。我们希望能捕获范围内所有的数据包,即使这些数据包是发给路由器的,或者目标是其他设备的。为此,我们需要将模式设置为“监听模式”(Monitor Mode)。
将无线网卡切换到监听模式
在更改接口选项之前,必须先禁用接口,我们可以使用以下命令:
ifconfig <接口名称> down
接下来可以启用监听模式,但在此之前,我们运行一个命令来终止可能干扰监听模式运行的进程。杀掉这些进程不是强制的,但这样做会让后续的攻击效果更好。命令如下:
airmon-ng check kill
运行此命令后,你会发现它会关闭网络管理器(Network Manager),因此会断开网络连接。不过没关系,因为只有在运行预连接攻击时才需要监听模式,这时不需要网络连接。(第2部分会有更多说明)
现在,启用监听模式:
方法一:
iwconfig <接口名称> mode monitor
方法二:
airmon-ng start <接口名称>
之后,像之前更改 MAC 地址时一样,重新启用接口:
ifconfig <接口名称> up (仅方法一需要执行)
我列出这两种方法,是为了让你更容易理解命令。运行下图中的所有命令后,你会看到模式已经成功切换为监听模式。
方法1
方法 2
注意:
-
• 模式切换为监听模式后,接口名称可能会变成 wlan0、mon0 或 wlan0mon0。所以这不是问题,只需根据运行 iwconfig
后显示的名称选择即可。 -
• 并非所有无线适配器都支持监听模式。
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。
原文始发于微信公众号(白帽子左一):Wi-Fi 渗透测试 | 第一部分(网络基础)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论