ELHart05/AirmonGUI
GitHub: ELHart05/AirmonGUI
为 aircrack-ng 无线审计套件提供本地 Web 图形界面,将监听模式、网络扫描、握手包捕获和密码破解整合为引导式可视化流程。
Stars: 75 | Forks: 4
# AirmonGUI
aircrack-ng 无线工具包的本地 Web 界面。
[](LICENSE)
[](#requirements)
[](https://github.com/ELHart05/AirmonGUI/actions/workflows/ci.yml)
[](https://github.com/ELHart05/AirmonGUI/commits)
[](CONTRIBUTING.md)
[](https://github.com/ELHart05/AirmonGUI/stargazers)
[屏幕截图](#how-it-works) · [快速开始](#quick-start) · [功能](#features) · [路线图](#roadmap) · [贡献](#contributing)
## 项目简介 AirmonGUI 将 `airmon-ng`、`airodump-ng`、`aireplay-ng` 和 `aircrack-ng` 集成在一个运行于本地机器的 Web 应用中。你可以通过点击带标签的表单来启用监听模式、扫描网络、捕获 WPA 握手包并破解它,而无需记住各种命令参数。 它并没有重新实现任何工具。后端直接调用真实的二进制程序并解析其输出,因此你所看到的就是该套件实际执行的操作。UI 绑定到 `127.0.0.1`,且 API 绝不会将数据传输到你的机器之外。 ## 开发动机 aircrack-ng 套件非常出色,但其工作流程分散在四个独立的命令和许多你需要牢记的参数中:将网卡设为监听模式、跳频寻找目标、锁定 BSSID、在正确的信道上发送 deauth、等待四次握手,然后将捕获的数据导入字典。选错信道,deauth 就会失效。忘记加 `--bssid`,捕获的数据就会充满杂音。 我希望将这整个流程变成一系列引导式的界面,向你展示空气中的信号,并理清各个步骤之间的状态。这就是本项目的初衷。它非常适合用于学习攻击的实际行为、进行实验室研究以及加速已授权的评估工作。 ## 功能 | 领域 | 功能描述 | |---|---| | 监听模式 | 使用 `airmon-ng` 在选定的接口上启用或禁用监听模式。当 NetworkManager 等后台服务阻止监听模式时,提供了一个独立的 check-kill 操作来运行 `airmon-ng check kill`。 | | 网络扫描 | 运行 `airodump-ng` 捕获任务,并在实时表格中显示接入点和客户端,支持按名称、安全性或频段进行过滤。 | | 信号分析 | 根据接入点的可利用程度(信号强度、弱安全性、活跃客户端)对其进行排名,并绘制范围内的信道拥塞和安全类型分布图。 | | 取消认证 | 通过 `aireplay-ng` 发送定向或广播 deauth,首先将接口设置到接入点的信道上,以确保帧能准确送达。 | | 握手包捕获 | 包含三个步骤的工作流程:将 `airodump-ng` 锁定到目标,运行自动 deauth 引擎,并自动检测 WPA 四次握手。 | | 破解 | 将捕获文件和字典提供给 `aircrack-ng`,实时流式传输日志,并在密码出现的那一刻显示恢复的密钥。 | | 捕获文件管理 | 浏览、过滤、批量选择和删除套件生成的 `.cap`、`.csv`、`.pcap`、`.ivs` 和 `.log` 文件。 | | 集成终端 | 一个真实的 PTY shell (xterm.js),方便你在同一窗口中使用原始命令行。 | | 命令日志 | 记录会话中运行的每一条命令,包含 stdout、stderr、状态以及一键复制功能。 | ## 工作原理 一次操作流程会在侧边栏中自上而下进行。以下是各个界面的说明。 ### 1. 将适配器设为监听模式 选择一个接口,检查其驱动程序、芯片组和 PHY,然后开启监听模式。操作完成后,只需释放该接口即可。





更多界面:deauth、捕获文件、日志
带有信道锁定、运行历史记录和已解析事件输出的独立 deauth 界面:



生产环境构建
``` cd frontend npm run build # writes static files to frontend/dist/ ``` 使用任意静态文件服务器提供 `frontend/dist/` 服务,并将 `/api/*` 和 `/ws/*` WebSocket 代理到 Uvicorn 进程。
API 参考
后端运行时,可以在 `http://127.0.0.1:8000/docs` (Swagger UI)、`/redoc` 和 `/openapi.json` 查看交互式 schema。 在启用身份验证的情况下(默认),除了 `/api/health` 和 `/api/auth/status` 之外的每个端点都需要 `X-Auth-Token` 标头(关于 token 的来源,请参阅[快速开始](#quick-start))。在 Swagger UI 中,**Authorize** 按钮会自动为你发送 token。设置 `AIRMON_GUI_AUTH_ENABLED=false` 后,将不再需要 token(仅限回环地址)。 | 方法 | 端点 | 描述 | |---|---|---| | GET | `/api/health` | 服务器健康检查(无需 token) | | GET | `/api/auth/status` | 查看身份验证和终端是否已启用(无需 token) | | GET | `/api/auth/verify` | 确认提供的 token 是否有效 | | GET | `/api/toolcheck` | 检查是否已安装 aircrack-ng 工具 | | GET | `/api/interfaces` | 列出无线接口及其 MAC 和监听模式状态 | | POST | `/api/monitor` | 启动或停止监听模式 | | POST | `/api/checkkill` | 运行 `airmon-ng check kill` 以停止产生干扰的服务 | | GET | `/api/airodump/jobs` | 列出正在运行和已知的捕获任务 | | POST | `/api/airodump/start` | 启动 `airodump-ng` 扫描任务 | | POST | `/api/airodump/stop` | 按 id 停止扫描任务 | | GET | `/api/airodump/results/{job_id}` | 已解析的扫描结果(网络和客户端) | | POST | `/api/aireplay/deauth/start` | 启动 deauth 任务 | | GET | `/api/aireplay/deauth/jobs` | 列出 deauth 任务 | | GET | `/api/aireplay/deauth/{job_id}/status` | 轮询 deauth 任务状态 | | POST | `/api/aireplay/deauth/{job_id}/stop` | 停止 deauth 任务 | | POST | `/api/handshake/start` | 启动定向握手包捕获 | | GET | `/api/handshake/jobs` | 列出握手包捕获任务 | | GET | `/api/handshake/{job_id}/status` | 轮询握手包检测状态 | | POST | `/api/handshake/{job_id}/stop` | 停止握手包捕获 | | GET | `/api/aircrack/jobs` | 列出破解任务 | | GET | `/api/aircrack/validate?path=
配置
后端使用以下默认值运行,你只需根据需要更改它们。在 `backend/.env` 中设置(启动时加载)或在启动 Uvicorn 之前导出它们;导出的变量会覆盖文件中的配置。完整列表请参阅 `backend/.env.example`。 | 变量 | 默认值 | 描述 | |---|---|---| | `AIRMON_GUI_CAPTURE_DIR` | `/var/lib/airmongui/captures` | 捕获文件的写入位置(创建权限为 0700;必须是一个私有的、专属目录) | | `AIRMON_GUI_AUTH_ENABLED` | `true` | 设置为 `false`取消 token 要求(仅限回环地址) | | `AIRMON_GUI_AUTH_TOKEN` | _(自动生成)_ | API token。如果未设置,则会在启动时生成并打印;如果绑定到非回环地址则必须设置 | | `AIRMON_GUI_TERMINAL_ENABLED` | `1` | 受 token 控制的 `/ws/terminal` shell;设置为 `0` 可移除该路由并隐藏标签页 | | `AIRMON_GUI_MAX_ACTIVE_JOBS` | `8` | 并发工具任务的上限 | | `CORS_ORIGINS` | `http://localhost:5173` | 逗号分隔的允许来源 | | `API_HOST` | `127.0.0.1` | Uvicorn 绑定的主机 | | `API_PORT` | `8000` | Uvicorn 监听的端口 | | `AIRMON_GUI_ENV_FILE` | `backend/.env` | 要加载的 env 文件路径;留空则跳过加载 | ``` export AIRMON_GUI_CAPTURE_DIR=/home/user/captures sudo -E .venv/bin/uvicorn main:app --host 127.0.0.1 --port 8000 ```
标签:Web界面, WiFi审计, 图形化工具, 自动化攻击, 防御绕过