[!WARNING] 仅在你拥有或已获得书面测试许可的网络上使用此工具。在大多数地区,扫描、解除认证或捕获你不控制的网络的流量是违法的。请参阅法律与负责任使用。
AirmonGUI 将 airmon-ng、airodump-ng、aireplay-ng 和 aircrack-ng 整合到一个运行在你本机上的 Web 应用中。你可以通过点击带标签的表单来启用监听模式、扫描网络、捕获 WPA 握手并破解它,而无需记忆各种参数。
它没有重新实现任何工具。后端会调用真实的二进制程序并解析其输出,因此你看到的就是工具套件实际执行的结果。UI 绑定到 127.0.0.1,API 永远不会访问你机器之外的地方。
aircrack-ng 套件非常优秀,但整个工作流程分散在四个独立的命令和大量需要记忆的参数中:将网卡置于监听模式、跳频寻找目标、锁定 BSSID、在正确的信道上发起解除认证攻击、等待四次握手,然后将捕获文件交给字典进行破解。信道没对准,解除认证攻击就毫无效果。忘记 --bssid,你的捕获文件就会充满噪声。
我希望将整个流程做成一组界面,引导你逐步操作,显示空中的网络情况,并在各步骤之间保持状态的连贯。这就是这个项目的目的。它非常适合学习攻击的实际行为、实验室工作以及加速授权测试。
| 功能模块 | 说明 |
|---|---|
| 监听模式 | 使用 airmon-ng 在所选接口上启用或禁用监听模式。当 NetworkManager 等后台服务阻止监听模式时,一个独立的 check-kill 操作会运行 airmon-ng check kill。 |
| 网络扫描 | 运行 airodump-ng 捕获任务,并在实时表格中显示接入点和客户端,可按名称、安全类型或频段过滤。 |
| 信号分析 | 根据可攻击性对接入点进行排名(信号强度、弱安全设置、活跃客户端),并绘制信道拥塞情况和范围内安全类型分布图表。 |
| 解除认证攻击 | 通过 aireplay-ng 发送定向或广播解除认证帧,先将接口设置到接入点的信道上,确保帧能到达。 |
| 握手捕获 | 三步工作流程:将 airodump-ng 锁定到目标,运行自动解除认证引擎,并自动检测 WPA 四次握手。 |
| 破解 | 将捕获文件和字典交给 aircrack-ng,实时输出日志,密钥一出现就立即显示。 |
| 捕获文件管理 | 浏览、过滤、批量选择和删除套件生成的 .cap、.csv、.pcap、.ivs 和 .log 文件。 |
| 集成终端 | 真正的 PTY shell(xterm.js),方便你在同一窗口中直接使用命令行。 |
| 命令日志 | 会话中执行的每条命令,包含 stdout、stderr、状态和单击复制功能。 |
一次运行按照侧边栏从上到下的顺序进行。以下是每个界面的说明。
下方截图中的网络、BSSID 和客户端均为合成的演示数据,并非真实捕获。
选择接口,检查其驱动、芯片组和 PHY,然后开启监听模式。完成后仅释放该接口。

启动 airodump-ng 任务,实时查看接入点和客户端被发现并填充。过滤表格,然后将任意网络直接发送到解除认证或握手工作流程。

信号分析为每个接入点评分,使信号强、安全设置弱且有活跃客户端的接入点排在前面。它还会显示每个信道的繁忙程度以及周围网络使用的安全类型。你自己的设备会被标记出来,避免误将攻击目标指向自己。

此界面将 airodump-ng 锁定到目标的 BSSID 和信道,运行自动解除认证引擎将客户端踢下线以便它们重新连接,并在捕获到四次握手的瞬间变绿。

将 aircrack-ng 指向捕获文件和字典。运行时日志实时滚动,如果密码短语在你的字典中,它会显示在顶部。

支持信道锁定的独立解除认证,包含运行历史和解析后的事件输出:

捕获文件管理:

会话命令历史:

你需要 Linux 系统、root 权限、支持监听模式的无线适配器,以及位于 $PATH 中的 aircrack-ng 套件。完整列表请参阅系统要求。
# 0. Install the suite (Debian, Ubuntu, Kali)
sudo apt update && sudo apt install aircrack-ng wireless-tools
# 1. Clone
git clone https://github.com/ELHart05/AirmonGUI.git
cd AirmonGUI
# 2. Backend (terminal 1)
cd backend
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
sudo -E .venv/bin/uvicorn main:app --host 127.0.0.1 --port 8000
# 3. Frontend (terminal 2)
cd frontend
npm install
npm run dev
打开 http://localhost:5173。UI 只与 127.0.0.1:8000 通信。
首次连接时,UI 会要求输入 API 令牌。后端在启动时会向控制台打印一个令牌,如下所示:
======================================================================
AirmonGUI API token (generated for this run):
Xy3k...long-random-string...
Paste it into the AirmonGUI web UI when prompted.
======================================================================
将该令牌粘贴到解锁界面。要在重启后保持令牌固定,请在 backend/.env 中设置 AIRMON_GUI_AUTH_TOKEN(后端在启动时加载该文件)。除健康检查外的所有 API 路由都需要此令牌,这样可以防止本地的其他进程或你正在访问的网页在后台悄悄驱动无线工具。在将后端绑定到除 127.0.0.1 之外的任何地址之前,你必须显式设置令牌——否则后端将拒绝启动。
如果在单用户机器上这个提示只是麻烦,可以设置 AIRMON_GUI_AUTH_ENABLED=false 完全关闭认证;UI 随后会跳过解锁界面。关闭认证后,后端拒绝绑定到除回环地址以外的任何位置——如果将 API_HOST 指向 127.0.0.1 之外的地址,后端将无法启动。
需要 root 权限是因为 airmon-ng、airodump-ng 和 aireplay-ng 使用原始套接字。请直接调用 .venv/bin/uvicorn 而不是普通的 uvicorn,因为 sudo 会重置 PATH,否则会找不到虚拟环境;-E 标志会保留你设置的所有 AIRMON_GUI_* 变量。如果你不想以 root 身份运行服务器,可以为这些特定二进制文件设置免密码 sudo,并调整 backend/app/utils.py。
cd frontend
npm run build # writes static files to frontend/dist/
使用任意静态文件服务器托管 frontend/dist/,并将 /api/* 和 /ws/* WebSocket 代理到 Uvicorn 进程。
| 层 | 技术栈 |
|---|---|
| 后端 | Python 3.11+, FastAPI, Uvicorn, Pydantic v2 |
| 前端 | Vue 3, Vite 5, Tailwind CSS 3, lucide-vue-next, xterm.js |
| 网站 | React 18, TypeScript, Vite, Tailwind(website/ 中可选的落地页) |
AirmonGUI
├── backend/ FastAPI REST API and WebSocket, one route module per tool
│ app/routes/ (interfaces, airodump, aireplay, aircrack, handshake, captures)
│ app/models.py (validated Pydantic I/O), app/state.py (in-process job registry)
│ app/utils.py (subprocess and sudo logic), app/config.py (env config)
│
├── frontend/ Vue 3 single-page app, the control console
│ views/ (Overview, Monitor, Scan, Signal, Deauth, Handshake, Crack, Captures, Reports, Terminal, Logs)
│ composables/ (reactive job and state logic), api/ (fetch wrappers)
│
└── website/ Standalone React landing site (optional)
后端在 http://127.0.0.1:8000/api 提供 REST API,并在 /ws/terminal 提供终端 WebSocket(受 API 令牌保护;可通过 AIRMON_GUI_TERMINAL_ENABLED=0 关闭)。在开发环境中,:5173 端口上的 Vite 开发服务器会将两者代理到后端。
后端运行时,交互式模式位于 http://127.0.0.1:8000/docs(Swagger UI)、/redoc 和 /openapi.json。
在认证启用时(默认),除 /api/health 和 /api/auth/status 之外的每个端点都需要 X-Auth-Token 请求头(令牌来源请参阅快速开始)。在 Swagger UI 中,Authorize 按钮会自动发送该令牌。设置 AIRMON_GUI_AUTH_ENABLED=false 后不再需要令牌(仅限回环地址)。