使用 Fluxion 创建伪造接入点

Beginner
立即练习

引言

在本实验中,你将使用 Fluxion 创建一个伪造的接入点(AP),以此探索 Wi-Fi 安全的基础知识。Fluxion 是一个安全审计和社会工程研究工具。它允许你执行各种攻击来测试 Wi-Fi 网络的安全性。

伪造的 AP 是指未经明确授权就被安装在安全网络上的无线接入点。一种常见的涉及伪造 AP 的攻击是“强制门户”(Captive Portal)攻击,攻击者会创建一个虚假的、开放的 Wi-Fi 网络,模仿合法的网络。当用户连接时,他们会被重定向到一个钓鱼页面,以捕获他们的凭据。

本实验将指导你完成在受控和模拟环境中设置此类攻击的初始步骤,仅用于教育目的。你将学习如何启动 Fluxion 并配置它来广播一个虚假的 Wi-Fi 网络。

发起强制门户攻击

在此步骤中,你将启动 Fluxion 并选择强制门户攻击。这是设置我们的伪造接入点的第一阶段。设置脚本已将 Fluxion 仓库克隆到 ~/project/fluxion 目录中。

首先,导航到 fluxion 目录:

cd ~/project/fluxion

接下来,使用 sudo 权限运行 Fluxion 脚本。它需要 root 权限来管理网络接口。

sudo ./fluxion.sh

Fluxion 首先会要求你选择一种语言。输入 1 并按 Enter 选择 English。

[#] Select a language:
[1] English
...
[*] Language > 1

选择语言后,Fluxion 将检查是否缺少依赖项。实验环境已预先安装了它们。然后,你将看到主攻击菜单。我们要执行强制门户攻击。输入 2 并按 Enter 选择它。

[#] Select an attack:
[1] Handshake Snooper
[2] Captive Portal
[*] Attack > 2

Fluxion 现在将继续进行攻击配置的下一阶段。

选择 'hostapd' 接入点创建方法

在此步骤中,你将选择创建伪造接入点的方法。Fluxion 提供了多种选项,但 hostapd 是一个标准且可靠的选择。hostapd 是一个用户空间守护进程,可以将网卡转换为无线接入点。

在上一步选择强制门户攻击后,Fluxion 会要求你选择一个无线适配器和一个信道。在此模拟环境中,你通常可以通过按 Enter 来接受默认设置。

接下来,系统会提示你选择一个接入点创建方法。

[#] Select an access point creation method:
[1] hostapd
[2] Airmon-ng
[*] Method >

输入 1 并按 Enter 来选择 hostapd

1

选择 hostapd,即指示 Fluxion 使用这个强大的工具来广播伪造的 Wi-Fi 信号。Fluxion 随后将进入下一个配置步骤,例如询问要克隆的网络或握手文件,在本次简化的实验中我们将跳过这些。目前,Fluxion 已准备好创建 AP。

验证伪造 AP 是否广播目标 ESSID

在此步骤中,你将验证 Fluxion 是否已成功启动伪造接入点并正在广播其网络名称(ESSID)。配置完攻击参数后,Fluxion 将启动 AP 并显示一个状态窗口,其中包含客户端连接和其他信息。

你的第一个终端窗口现在被 Fluxion 的运行进程占用。要检查网络是否已启动,你需要打开一个新的终端。

在你的 LabEx 桌面中,转到顶部菜单栏,点击 Applications -> System -> Xfce Terminal 来打开第二个终端窗口。

在这个新终端中,你可以使用 aircrack-ng 套件工具来扫描无线网络。iwlist 命令也可以使用。让我们使用 iwlist 来扫描 wlan0 接口上的网络。请注意,在实际场景中,你的无线接口名称可能不同。

在新终端中运行以下命令:

sudo iwlist wlan0 scan

此命令会列出 wlan0 接口可以检测到的所有无线网络。你将看到大量信息。在输出中查找伪造的接入点。默认情况下,Fluxion 可能会创建一个 ESSID 为 "Free WiFi" 的 AP,或者一个它提示你输入的名称。

wlan0     Scan completed :
          Cell 01 - Address: 00:11:22:33:44:55
                    Channel:6
                    Frequency:2.437 GHz (Channel 6)
                    Quality=70/70  Signal level=-40 dBm
                    Encryption key:off
                    ESSID:"My-Network"
                    ...
          Cell 02 - Address: AA:BB:CC:DD:EE:FF
                    Channel:1
                    Frequency:2.412 GHz (Channel 1)
                    Quality=50/70  Signal level=-60 dBm
                    Encryption key:off
                    ESSID:"Fluxion-AP"
                    ...

在上面的示例输出中,ESSID:"Fluxion-AP" 是我们的伪造接入点。

使用独立设备扫描 Wi-Fi 网络

在此步骤中,我们将继续使用第二个终端来模拟独立设备(如智能手机或笔记本电脑)扫描可用 Wi-Fi 网络时所看到的情况。目标是确认我们的伪造 AP 对潜在受害者可见。

与其查看 iwlist scan 的全部输出,不如对其进行过滤,只显示网络名称(ESSID)。这样可以更容易地找到我们的网络。我们可以通过将扫描命令的输出通过管道传递给 grep 来实现这一点。

在你的第二个终端窗口中,运行此命令:

sudo iwlist wlan0 scan | grep ESSID

此命令将执行扫描,然后过滤结果,只显示包含 "ESSID" 的行。

输出应该类似于这样,清晰地列出了附近所有网络(包括你的伪造 AP)的名称。

                    ESSID:"My-Network"
                    ESSID:"Another-WiFi"
                    ESSID:"Fluxion-AP"
                    ESSID:"Neighbors-Net"

这证实了从任何在范围内的设备的角度来看,我们的伪造接入点都是活跃且可见的。

确认伪造 AP 可见且开放

在这个最后的实践步骤中,你将分析扫描结果,以确认关于你的伪造 AP 的两个关键细节:其可见性和安全状态。成功的强制门户(captive portal)攻击依赖于 AP 的可见且开放(未加密)。

让我们在第二个终端中再次运行完整的扫描命令,但这次要密切关注你的伪造 AP 条目的详细信息。

sudo iwlist wlan0 scan

找到与你的伪造 AP 对应的单元格(例如 ESSID:"Fluxion-AP")。在该单元格的信息中查找 Encryption key 行。

          Cell 02 - Address: AA:BB:CC:DD:EE:FF
                    Channel:1
                    Frequency:2.412 GHz (Channel 1)
                    Quality=50/70  Signal level=-60 dBm
                    Encryption key:off
                    ESSID:"Fluxion-AP"

关键的两行是:

  • ESSID:"Fluxion-AP":这确认网络正在广播你期望的名称。
  • Encryption key:off:这至关重要。它表明网络是“开放的”,意味着连接不需要密码。这就是吸引用户加入网络的原因,届时可以向他们展示强制门户以窃取他们用于其他服务的凭据(例如虚假的“酒店 Wi-Fi 登录”)。

你现在已经成功创建并验证了一个可见、开放的伪造接入点,为强制门户攻击奠定了基础。你现在可以关闭第二个终端窗口,并通过按 Ctrl+C 来停止第一个终端中的 Fluxion 脚本。

总结

在这个实验中,你已成功使用 Fluxion 创建了一个伪造的无线接入点。你学会了如何导航 Fluxion 界面来发起强制门户(Captive Portal)攻击,选择 hostapd 来创建 AP,并通过在单独的终端中使用命令行工具来验证其存在和属性。

你已确认伪造 AP 正在广播其 ESSID,最重要的是,它是一个“开放”网络,这是在真实场景中吸引用户的关键要素。

理解这些工具的工作原理是防御此类攻击的第一步。始终警惕开放的 Wi-Fi 网络,并使用 VPN 来加密你的流量。恭喜你完成了这个实验!