ardittirana/alfa-arsenal
GitHub: ardittirana/alfa-arsenal
一款专为授权无线网络安全审计设计的综合平台,集成多种无线测试工具并提供策略管控与证据报告能力。
Stars: 5 | Forks: 2
```
█████╗ ██╗ ███████╗ █████╗
██╔══██╗██║ ██╔════╝██╔══██╗
███████║██║ █████╗ ███████║
██╔══██║██║ ██╔══╝ ██╔══██║
██║ ██║███████╗██║ ██║ ██║
╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚═╝
█████╗ ██████╗ ███████╗███████╗███╗ ██╗ █████╗ ██╗
██╔══██╗██╔══██╗██╔════╝██╔════╝████╗ ██║██╔══██╗██║
███████║██████╔╝███████╗█████╗ ██╔██╗ ██║███████║██║
██╔══██║██╔══██╗╚════██║██╔══╝ ██║╚██╗██║██╔══██║██║
██║ ██║██║ ██║███████║███████╗██║ ╚████║██║ ██║███████╗
╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝
```
# Alfa Arsenal
无线网络安全审计与韧性测试工具。
[](LICENSE)
[](https://www.python.org/)
[](https://github.com/ardittirana/alfa-arsenal/actions/workflows/ci.yml)
## 项目简介
这是一个 Wi-Fi 审计平台,专门用于解决关于无线部署的那些无聊但重要的问题:加密是否薄弱,角落里是否潜伏着恶意 AP,密码是否容易被猜出。它是为获得授权的人员设计的——检查自身覆盖范围的内部团队、签约的审计员,或者在实验室里研究 802.11 的人。
在开发它时,我最看重的是控制力。一个 radio,一个用于频道和模式的单一事实来源,除非策略明确允许,否则不会发生任何破坏性的行为。任何传输操作都受到交战规则文件、目标白名单和单例锁的限制,因此运行是可重复的,并且您可以在事后准确展示它接触了什么。
它有四种驱动方式,所有方式都建立在同一个核心之上:
- 交互式文本 UI 以及无头模式标志(headless flags)—— `alfa_arsenal.py`
- 带有 Prometheus 指标的 FastAPI REST API —— `api/app.py`
- 带有 TLS 和 API 密钥的可选 gRPC 控制平面 —— `api/grpc_server.py`
- 适用于多名操作员协作的 Flask + WebSocket 服务器 —— `c2/server.py`
对于已经有出色工具完成的工作,我直接调用了它们 —— Wifite2、aircrack-ng 套件、Kismet、Bettercap、hcxdumptool、mdk4。基于 Scapy 的模块是我自己编写的:扫描、握手和 PMKID 捕获,以及受控验证部分。
## 功能说明
- **侦察** —— 跳频扫描器,双频,BSSID/ESSID 过滤器,以及用于 War Driving 的 KML/GPX 导出和 GPS 关联。
- **安全态势检查** —— PMKID 和完整的 4 次握手捕获,WPS 安全态势检查,以及用于自动化运行的 Wifite。
- **受控验证** —— 恶意 AP 模拟,信标压力测试,和取消认证(deauth)韧性流程,所有操作均在策略门控之下。
- **证据和报告** —— 发现结果会保存在带有哈希工件(artifact)的 SQLite 存储中,您可以将它们渲染为 Markdown、HTML 或 PDF 格式。
- **策略** —— JSON 格式的交战规则,目标白名单,按操作门控,以及防止两个运行争抢同一工作目录的锁。
## 架构与组合方式
四个前端(CLI、REST、gRPC、C2)都与同一个核心交互。核心管理着策略、实例锁、radio 资源和证据数据库。在此之上,`attacks/` 中的评估插件和 `orchestrator/` 中的执行链执行实际工作,通过 `tools/` 中的轻量级封装与外部二进制文件交互,这些封装在运行时由 `integrations/tool_registry.py` 发现。
如果您想了解真正的细节——数据流向、适配器能力如何被探测、如何附加其他工具——请参阅 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)。
## 环境要求
- Linux,且需要 root 权限以使用监听模式和注入。
- Python 3.10 或更高版本。CI 会在 3.10 到 3.13 版本上运行。
- 支持监听模式和注入的适配器。对于 RTL8812AU,您需要根据您的内核编译并安装维护良好的 `rtl8812au` DKMS 驱动程序——更换驱动后请务必重启,否则会踩坑。
- 可选(如果已安装会自动检测):Wifite2、aircrack-ng、Kismet、Bettercap、hcxdumptool、mdk4、tshark、tcpdump。
## 安装说明
```
# 系统包 + 一个 venv
sudo ./install.sh
source venv/bin/activate
# 对 adapter 进行检查(您的支持 monitor 的接口,例如 wlan1)
sudo ./scripts/validate_adapter.sh wlan1
# 在实际使用中,请设置用于加密已存储凭据的 master key
cp .env.example .env
# 编辑 .env,设置 ALFA_MASTER_KEY
```
如果您喜欢手动安装:
```
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
```
## 使用说明
菜单、扫描和握手捕获涵盖了您日常的大部分操作:
```
# 交互式文本 UI
sudo python3 alfa_arsenal.py
# 扫描 60 秒
sudo python3 alfa_arsenal.py --scan --timeout 60
# 针对您已授权测试的 target 进行握手
sudo python3 alfa_arsenal.py --handshake -t AA:BB:CC:DD:EE:FF -c 6
```
自动化执行链会进行扫描,对发现的目标进行排名,然后依次对每个目标执行 PMKID、握手和 WPS(优先尝试 Pixie Dust 攻击),最后在存在可供测试的数据时,进行凭据强度测试:
```
# 正常的 chain
sudo python3 alfa_arsenal.py --autopwn
# Field mode — 更长的时间窗口,对每个 target 使用 Wifite。这种方式速度慢且动静大;仅在允许的情况下运行。
sudo python3 alfa_arsenal.py --autopwn --field
# 限制 target,自带您的 wordlist
sudo python3 alfa_arsenal.py --autopwn --field --max-targets 5 --wordlist /path/to/list.txt
# 固定一个 rules-of-engagement 文件和一个 config
sudo python3 alfa_arsenal.py --autopwn --field \
--policy-file ./policies/example_roe.json --config ./config/arsenal.defaults.json
```
测试您已有的捕获文件(无需 radio 介入),并从已存储的运行记录中重新生成报告:
```
python3 alfa_arsenal.py --crack --capture-file ./handshake.cap --wordlist /usr/share/wordlists/rockyou.txt
python3 alfa_arsenal.py --report-run 1 --report-format markdown
```
相关服务:
```
sudo python3 -m api.app # REST API, OpenAPI at /docs
sudo python3 -m api.grpc_server --port 50051 # gRPC, TLS + API key from config
sudo python3 alfa_arsenal.py --c2 --port 4443 # coordination API / web UI
```
完整的标志列表请见 [docs/CLI_FLAGS.md](docs/CLI_FLAGS.md),或者直接运行 `python3 alfa_arsenal.py -h`。
## 配置与交战规则
配置文件是纯 JSON 格式 —— 包含工作目录、网络接口、API 绑定和密钥。请复制 [`config/arsenal.defaults.json`](config/arsenal.defaults.json),进行修改后,通过 `--config` 传入。
任何具有破坏性的操作都受到交战规则文件(`--policy-file`)的管控:您允许的操作、可选的 BSSID 白名单,以及是否必须先运行主动评估。可以从 [`policies/example_roe.json`](policies/example_roe.json) 开始。
一个进程在同一时间只能拥有一个工作目录。如果您确实需要同时运行两个,可以使用 `--no-single-instance-lock` 关闭锁,但请先三思。
设置 `ALFA_MASTER_KEY`(通过 `.env` 文件),存储的凭据将会在静态下被加密。`.env`、捕获文件和本地数据库都被 git 忽略,因此您不会意外提交它们。
## 证据与报告
发现结果会进入带有哈希工件的 SQLite 数据库中。报告引擎会将运行记录转换为 Markdown、HTML 或 PDF,并且由于它是基于运行 ID(`--report-run`)构建的,因此您可以稍后重新导出旧的评估结果,而无需重新启动 radio。
## 截图
| 主菜单 | 扫描结果 |
|-----------|--------------|
|  |  |
| 策略提示 | 报告示例 |
|---------------|---------------|
|  |  |
## 开发说明
```
pip install -r requirements.txt -r requirements-dev.txt
# 测试需要 PYTHONPATH=. ;除非 ALFA_HIL=1,否则 hardware-in-the-loop 测试会自动跳过
PYTHONPATH=. pytest tests/ -q
ruff check .
ruff format --check .
mypy core api attacks utils orchestrator modules integrations tools c2 alfa_arsenal.py
# 如果您修改了 proto/alfa_platform.proto,请重新生成 stubs
bash scripts/gen_proto.sh
```
CI 会在 3.10–3.13 环境下执行格式检查、Lint、测试运行、proto 文件更新差异对比以及 sdist 构建。更多信息请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 目录结构
```
alfa_arsenal.py CLI / interactive entry point
api/ FastAPI REST + gRPC servicer
c2/ Flask + WebSocket coordination server, token auth
core/ config, DB, resource/MAC/session managers, policy, crypto, evidence
attacks/ Scapy-native plugins (scanner, handshake, pmkid, wps, evil_twin, ...)
orchestrator/ Wifiphisher / Airgeddon / Bettercap chains + mode switching
integrations/ tool registry, task runner, capabilities, recovery, post-ex
tools/ subprocess wrappers (aircrack-ng, kismet, tshark, tcpdump, wifite, ...)
modules/ reporting engine, rogue detector
utils/ anti-forensics, GPS, fingerprinting
proto/ gRPC .proto source + generated stubs
docs/ architecture, CLI flags, deploy, runbook, threat model, responsible use
tests/ pytest suite mirroring the package layout
```
## 文档
- [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) — 组件与数据流
- [docs/CLI_FLAGS.md](docs/CLI_FLAGS.md) — 所有命令行标志
- [docs/WIFITE.md](docs/WIFITE.md) — Wifite2 集成
- [docs/DEPLOY.md](docs/DEPLOY.md) — 主机、Ansible、Docker、Nix
- [docs/RUNBOOK.md](docs/RUNBOOK.md) — 操作、API 使用、指标、恢复
- [docs/THREAT_MODEL.md](docs/THREAT_MODEL.md) — 控制平面威胁模型
- [docs/RESPONSIBLE_USE.md](docs/RESPONSIBLE_USE.md) — 授权检查清单
## 安全说明
如果您在控制平面中发现安全问题,请阅读 [SECURITY.md](SECURITY.md) 并私下报告,而不是直接发起公开 issue。
## 开源许可证
MIT,附带授权使用前言 —— [LICENSE](LICENSE)。如何使用取决于您:请遵守法律以及 [docs/RESPONSIBLE_USE.md](docs/RESPONSIBLE_USE.md) 中的授权规则。
于科索沃普里什蒂纳制作。标签:Python, Python工具, Wi-Fi审计, 无后门, 自定义请求头, 逆向工具