无需购买 Alfa 适配器的 Wi-Fi 黑客虚拟演练场
如果你曾经尝试过学习无线网络安全,你可能记得这个经典流程。首先,你需要从一个跳蚤市场订购一块支持监听模式和数据包注入的 Atheros 或 Ralink 芯片的 USB 适配器。然后在家里设置几台旧路由器,将它们与家用设备隔离,并希望在进行解除认证测试时不会意外打断邻居在楼道里的电话。
设备会损坏,驱动在新版 Linux 内核上会失效,学习过程会退化为无休止地排查虚拟机 USB 直通问题。
Black Hills Information Security 团队从根本上解决了这个问题。他们创建了 WifiForge——一个开源框架,可以在操作系统内直接启动虚拟接入点、站点和无线电波。无需外部天线或线缆。
底层原理
该项目基于 Mininet-WiFi 构建——这是流行的 Mininet 网络模拟器的扩展。系统使用 Linux 内核模块 mac80211_hwsim 来代替真实的无线电波。这个驱动创建软件无线接口,其行为与物理 Wi-Fi 卡完全相同。
操作系统会认为有数十个无线适配器连接到了它。你可以将这些虚拟接口切换到监听模式,通过 Wireshark 监听流量,发送解除认证帧,并捕获 WPA 握手包。
在此仿真层之上,Black Hills 的开发者编写了一个 Python 封装器。它自动创建现成的网络拓扑,配置虚拟接入点,并模拟客户端行为。
虚拟演练场能做什么
大多数训练环境需要手动配置 hostapd、创建配置文件,并启动十几个终端窗口。而在这里,实验室环境的启动是自动化的。
模拟常见攻击
WifiForge 为大多数标准渗透测试场景准备了环境:
- 拦截四次握手,然后进行离线密码破解。
- 针对 WPA Enterprise 协议的攻击,通过伪造 RADIUS 服务器获取凭据。
- 部署 Rogue AP 和 Evil Twin,通过与 Wifiphisher 集成实现伪造授权页面。
- 测试客户端对解除认证攻击的抵御能力。
由于所有流量都隔离在网络命名空间中,测试不会逃逸出虚拟机。你可以在办公室或咖啡馆的工作笔记本上安全地运行脚本,而不会违法或造成无线电干扰。
使用标准工具套件
你不需要学习特定的语法或通过专有封装器工作。在创建的命名空间内,可以直接使用 Kali Linux 工具套件中的标准工具:
- Aircrack-ng 套件(airodump-ng、aireplay-ng、airmon-ng)
- Airgeddon
- Wifiphisher
- Arpspoof
- Hashcat 和 John the Ripper
这些工具与虚拟接口的交互方式与它们和真实物理 Alfa Network 网卡的交互方式完全相同。
如何部署和试用
开发者在仓库中坦诚警告:该项目正在积极开发中,因此不保证稳定性。你应该严格在独立的虚拟机(例如 VirtualBox 或 VMware)中运行 WifiForge,这样虚拟网络驱动的故障就不会破坏宿主机上的网络。
在 Ubuntu 或 Kali 上安装基础环境的步骤如下:
# Клонируем репозиторий проекта
git clone https://github.com/blackhillsinfosec/WifiForge.git
cd WifiForge
# Запускаем скрипт установки зависимостей
# Он подтянет mininet-wifi, системные пакеты и настроит модули ядра
sudo ./install.sh
安装完成后,你会得到一个控制台界面,可以选择特定的实验室场景。脚本将自动启动具有所需加密类型的目标接入点,启动一个定期重新连接网络的背景客户端,并为你提供攻击者的虚拟接口。
在实践中哪里会派上用场
第一个明显的场景是培训初学者和准备 OSWP 等认证考试。学生无需搭建硬件实验室,只需几分钟就能启动虚拟环境。
第二个场景是举办研讨会和 CTF 比赛。比赛组织者知道,当二十个人同时在房间内对一个接入点发起解除认证攻击时,空气中会爆发怎样的混乱。WifiForge 为每个参与者提供个人隔离的无线电波。
第三个用例是测试你自己的防御脚本和攻击检测系统(WIDS)。如果你正在编写无线流量监控器,通过 mac80211_hwsim 运行合成测试比配置硬件数据包生成器要快得多,也方便得多。
值得一试吗
如果你对网络安全感兴趣,但不想花钱购买专用适配器,也不想折腾路由器,这个项目绝对值得收藏。
该项目的文档仍然比较简略,部分说明在另一个项目网站上,但脚本的源代码写得清晰易懂。从中很容易弄清楚拓扑是如何构建的,以及如何在 Linux 中管理虚拟无线电波。
相关项目