ardittirana/alfa-arsenal

GitHub: ardittirana/alfa-arsenal

一款专为授权无线网络安全审计设计的综合平台,集成多种无线测试工具并提供策略管控与证据报告能力。

Stars: 5 | Forks: 2

``` █████╗ ██╗ ███████╗ █████╗ ██╔══██╗██║ ██╔════╝██╔══██╗ ███████║██║ █████╗ ███████║ ██╔══██║██║ ██╔══╝ ██╔══██║ ██║ ██║███████╗██║ ██║ ██║ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚═╝ █████╗ ██████╗ ███████╗███████╗███╗ ██╗ █████╗ ██╗ ██╔══██╗██╔══██╗██╔════╝██╔════╝████╗ ██║██╔══██╗██║ ███████║██████╔╝███████╗█████╗ ██╔██╗ ██║███████║██║ ██╔══██║██╔══██╗╚════██║██╔══╝ ██║╚██╗██║██╔══██║██║ ██║ ██║██║ ██║███████║███████╗██║ ╚████║██║ ██║███████╗ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ``` # Alfa Arsenal 无线网络安全审计与韧性测试工具。 [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](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。 ## 截图 | 主菜单 | 扫描结果 | |-----------|--------------| | ![Menu](https://static.pigsec.cn/wp-content/uploads/repos/cas/33/336123cc90213c4fd338cd3a99fee6b08acabdaad3b8ae8ef87477a35fc2f16f.png) | ![Scan results](https://raw.githubusercontent.com/ardittirana/alfa-arsenal/master/assets/screenshots/scan_results.png) | | 策略提示 | 报告示例 | |---------------|---------------| | ![Policy prompt](https://raw.githubusercontent.com/ardittirana/alfa-arsenal/master/assets/screenshots/policy_prompt.png) | ![Report sample](https://static.pigsec.cn/wp-content/uploads/repos/cas/a2/a20aa6b837192932325ebd54550ebfa43a889098e7aa7c2925d43b259f20303a.png) | ## 开发说明 ``` 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审计, 无后门, 自定义请求头, 逆向工具