🔥 MoMo
模块化攻击性移动操作平台
下一代无线安全审计平台
专为红队、渗透测试人员和安全研究人员打造
快速开始 •
功能 •
架构 •
硬件 •
生态系统 •
文档
## 📖 目录
- [什么是 MoMo?](#-what-is-momo)
- [核心功能](#-key-features)
- [快速开始](#-quick-start)
- [安装说明](#-installation)
- [架构](#-architecture)
- [支持的硬件](#-supported-hardware)
- [Web 界面与 API](#-web-interface--api)
- [插件开发](#-plugin-development)
- [配置](#-configuration)
- [CLI 参考](#-cli-reference)
- [MoMo 生态系统](#-momo-ecosystem)
- [文档](#-documentation)
- [贡献](#-contributing)
- [许可证](#-license)
## 🎯 什么是 MoMo?
**MoMo** 是一个专为 **Raspberry Pi 5** 设计的综合无线安全审计平台。它将 Pwnagotchi、ESP32 Marauder 和 WiFi Pineapple 等行业标准工具的最佳特性,集成为一个强大、可扩展的专业级平台。
### 为什么选择 MoMo?
| 挑战 | MoMo 解决方案 |
|-----------|---------------|
| 🔌 多个互不相干的工具 | ✅ 具有模块化架构的统一平台 |
| 📱 有限的无头操作 | ✅ 管理网络 + OLED 显示屏 + Web UI |
| 🔄 手动数据同步 | ✅ 与 Nexus 中心枢纽实时同步 |
| 💻 在现场需要笔记本电脑 | ✅ 具有 Auto-Pwn 功能的全自动操作 |
| 🔐 WPA3 绕过了现有工具 | ✅ 原生 WPA3/SAE 检测与降级 |
| 🎭 有限的社会工程学 | ✅ Evil Twin、Karma/MANA、强制门户 |
### 核心功能亮点
|
### 📡 无线攻击
- 多无线电台管理
- WPA2/WPA3 攻击
- PMKID 捕获
- Evil Twin (6 个模板)
- Karma/MANA
- Auto-Pwn 引擎
|
### 🔑 凭证收集
- LLMNR/NBT-NS 投毒
- NTLM 哈希捕获
- HTTP 认证嗅探
- Kerberoast
- AS-REP Roasting
- LDAP 枚举
|
### 🤖 自动化
- Auto-Pwn 模式
- GPS Wardriving
- 云端破解
- 会话持久化
- 实时同步
- 事件驱动告警
|
## ✨ 核心功能
### 🔥 无线安全测试
WiFi 攻击 - 点击展开
| 功能 | 描述 | 状态 |
|---------|-------------|:------:|
| **Wardriving** | 通过 SQLite 持久化进行 GPS 关联的 AP 扫描 | ✅ |
| **多无线电台** | 同时管理多个 WiFi 适配器 | ✅ |
| **PMKID 捕获** | 通过 hcxdumptool 进行无客户端 WPA2 攻击 | ✅ |
| **Deauth 攻击** | 针对性的客户端断开连接 | ✅ |
| **握手捕获** | EAPOL 4 次握手收集 | ✅ |
| **WPA3/SAE** | 检测、降级攻击、PMF 处理 | ✅ |
| **Evil Twin** | 带有强制门户的 Rogue AP (6 个模板) | ✅ |
| **Karma/MANA** | 自动响应探测请求,EAP 凭证捕获 | ✅ |
| **Auto-Pwn** | 自主目标发现与攻击链接 | ✅ |
蓝牙攻击 - 点击展开
| 功能 | 描述 | 状态 |
|---------|-------------|:------:|
| **BLE 扫描器** | 带有 RSSI 跟踪的设备与信标检测 | ✅ |
| **GATT 资源管理器** | 服务/特征发现与读/写 | ✅ |
| **信标欺骗** | iBeacon 与 Eddystone 帧注入 | ✅ |
| **HID 注入** | 蓝牙键盘模拟 | ✅ |
SDR 集成 - 点击展开
| 功能 | 描述 | 状态 |
|---------|-------------|:------:|
| **RTL-SDR 支持** | 支持具有 HF 直接采样和偏置电压的 V3 和 V4 | ✅ |
| **HackRF 支持** | 支持用于重放攻击的 TX/RX | ✅ |
| **频谱分析仪** | 频率扫描与峰值检测 | ✅ |
| **信号解码器** | 433/868 MHz IoT 信号捕获 | ✅ |
### 🔑 凭证收集 (v1.6.0 中的新功能)
MoMo-Creds 模块 - 点击展开
| 功能 | 描述 | 状态 |
|---------|-------------|:------:|
| **Responder** | LLMNR/NBT-NS/mDNS 投毒 | ✅ |
| **NTLM 捕获** | 通过 SMB/HTTP 捕获 NTLMv1/v2 哈希 | ✅ |
| **NTLM 中继** | 将哈希中继至目标系统 | ✅ |
| **HTTP 嗅探器** | Basic/Digest/Form/Bearer 凭证捕获 | ✅ |
| **Kerberoast** | 提取服务票据用于离线破解 | ✅ |
| **AS-REP Roast** | 针对无预身份验证的账户 | ✅ |
| **LDAP 枚举** | AD 用户/组/计算机枚举 | ✅ |
| **自动导出** | Hashcat/John 格式导出 | ✅ |
**导出格式:**
- Hashcat: 5500 (NTLMv1), 5600 (NTLMv2), 13100 (Kerberos RC4), 18200 (AS-REP)
- John the Ripper: NETLM, NETNTLMv2, krb5tgs
### 🤖 自主操作
Auto-Pwn 模式 - 点击展开
| 功能 | 描述 |
|---------|-------------|
| **目标发现** | 自动网络扫描与优先级排序 |
| **攻击链接** | PMKID → Deauth → Evil Twin 回退序列 |
| **会话持久化** | 重启后恢复,保存进度 |
| **安全功能** | 电池监控,最大持续时间限制 |
| **云端集成** | 自动将捕获内容同步至 Nexus 进行破解 |
**模式:**
- `passive` - 仅扫描,不进行攻击
- `balanced` - 智能定位目标,避免被发现
- `aggressive` - 最大速度,使用所有技术
### 🖥️ 无头操作
| 功能 | 描述 |
|---------|-------------|
| **管理网络** | 专用的 wlan0,用于平板电脑/手机控制 |
| **OLED 显示屏** | 128x64 交互式菜单,配有 GPIO 按钮 |
| **Web 仪表盘** | 带有 SSE 更新的实时深色主题 UI |
| **自动白名单** | 管理网络受保护,免受攻击 |
### 🚀 首次启动向导
| 功能 | 描述 |
|---------|-------------|
| **基于 Web 的设置** | 现代化的 React UI,对移动端友好 |
| **自动 WiFi AP** | 连接到 `MoMo-Setup` 网络 |
| **二维码显示** | 扫描 OLED 二维码进行连接 |
| **Nexus 发现** | 通过 mDNS 自动查找 Nexus |
| **无头模式** | 通过 `/boot/momo-config.yml` 进行集群部署 |
## 🚀 快速开始
### 首次启动 (新设备)
1. 将 MoMo 镜像刷入 SD 卡
2. 给 Raspberry Pi 通电
3. 连接到 `MoMo-Setup` WiFi (密码: `momosetup`)
4. 浏览器自动打开向导
5. 在约 2 分钟内完成 6 个步骤的设置
### 树莓派 5 一行命令安装 (Raspberry Pi 5)
```
curl -fsSL https://raw.githubusercontent.com/M0M0Sec/MoMo/main/deploy/momo-quickstart.sh | sudo bash
```
### 验证安装
```
momo version # Show version info
momo doctor # Run system diagnostics
momo run --dry-run # Test without hardware
```
### 访问仪表盘
```
momo web-url --show-token
# 输出:http://192.168.4.1:8082?token=xxxxx
```
## 📦 安装说明
### 前置条件
| 需求 | 最低配置 | 推荐配置 |
|-------------|---------|-------------|
| **硬件** | Raspberry Pi 4 | Raspberry Pi 5 |
| **操作系统** | Raspberry Pi OS Lite 64-bit | Raspberry Pi OS Lite 64-bit |
| **Python** | 3.11 | 3.12+ |
| **存储** | 16GB SD | 64GB+ SD |
| **WiFi 适配器** | 1x 监听模式 | 2x (攻击 + 管理) |
### 方法 1:自动安装
```
# 下载并运行安装程序
curl -fsSL https://raw.githubusercontent.com/M0M0Sec/MoMo/main/deploy/install.sh | sudo bash
# 配置
sudo nano /etc/momo/momo.yml
# 启用服务
sudo systemctl enable --now momo
```
### 方法 2:手动安装
```
# Clone repository
git clone https://github.com/M0M0Sec/MoMo.git
cd MoMo
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -e ".[full]"
# Install system dependencies
sudo apt install -y hcxdumptool hcxtools aircrack-ng gpsd gpsd-clients
# 运行
momo run -c configs/momo.yml
```
### 方法 3:开发环境设置
```
# Install with dev dependencies
pip install -e ".[dev]"
# Setup pre-commit hooks
pre-commit install
# Run tests
pytest tests/ -v --cov=momo
# Run linting
ruff check momo/
mypy momo/
```
## 🏗️ 架构
### 整洁架构设计
MoMo 遵循 **Clean Architecture** 原则,实现了清晰的关注点分离:
```
┌─────────────────────────────────────────────────────────────────┐
│ PRESENTATION │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Web UI │ │ REST API │ │ CLI │ │
│ │ (Flask) │ │ (FastAPI) │ │ (Click) │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
├─────────┴────────────────┴────────────────┴─────────────────────┤
│ APPLICATION │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Plugin Manager │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │Wardriver│ │Evil Twin│ │ Karma │ │ Creds │ ... │ │
│ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────┤
│ DOMAIN │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ AccessPoint │ │ GPSPosition │ │ Handshake │ ... │
│ │ (Model) │ │ (Model) │ │ (Model) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────────┤
│ INFRASTRUCTURE │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ WiFi │ │ BLE │ │ GPS │ │ SDR │ │ Creds │ ... │
│ │Scanner │ │Scanner │ │ Client │ │Manager │ │Manager │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ └────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
### 目录结构
```
momo/
├── core/ # Core utilities
│ ├── events.py # Pub/Sub event bus
│ ├── plugin.py # Plugin system
│ ├── capability.py # Feature gates
│ └── security.py # Input sanitization
│
├── domain/ # Business models
│ └── models.py # Pydantic models
│
├── infrastructure/ # Hardware abstraction
│ ├── wifi/ # WiFi scanner, radio manager
│ ├── ble/ # BLE scanner, GATT, HID
│ ├── gps/ # GPS client, distance tracking
│ ├── sdr/ # RTL-SDR, HackRF, spectrum
│ ├── capture/ # Handshake capture
│ ├── eviltwin/ # Rogue AP, captive portal
│ ├── karma/ # Karma/MANA attacks
│ ├── wpa3/ # WPA3 detection & attacks
│ ├── creds/ # Credential harvesting (NEW)
│ │ ├── responder.py # LLMNR/NBT-NS poisoning
│ │ ├── ntlm.py # NTLM capture & relay
│ │ ├── http_sniffer.py # HTTP auth sniffing
│ │ ├── kerberos.py # Kerberoast, AS-REP
│ │ ├── ldap_enum.py # AD enumeration
│ │ └── manager.py # Central orchestrator
│ ├── autopwn/ # Autonomous attack engine
│ ├── display/ # OLED menu system
│ ├── cracking/ # John + Cloud proxy
│ ├── hardware/ # Device auto-detection
│ ├── management/ # Headless network
│ ├── nexus/ # Nexus sync client
│ └── database/ # Async SQLite
│
├── apps/
│ ├── momo_core/ # Main service loop
│ ├── momo_plugins/ # Plugin collection
│ │ ├── wardriver.py
│ │ ├── evil_twin.py
│ │ ├── karma_mana.py
│ │ ├── creds_harvester.py # NEW
│ │ └── ...
│ └── momo_web/ # Flask API + Web UI
│
├── plugins/ # Modern plugin architecture
├── configs/ # Configuration files
├── tests/ # Test suite
│ ├── unit/ # Unit tests (484 tests)
│ ├── integration/ # Integration tests
│ └── e2e/ # End-to-end tests
└── docs/ # Documentation
```
### 事件驱动架构
## 📡 支持的硬件
### WiFi 适配器
| 适配器 | 芯片组 | 监听 | 注入 | 5GHz | WiFi 6/6E | 推荐 |
|---------|---------|:-------:|:---------:|:----:|:---------:|:-----------:|
| Alfa AWUS036AXML | MT7921AUN | ✅ | ✅ | ✅ | ✅ 6E | ⭐⭐⭐ |
| Alfa AWUS036ACH | RTL8812AU | ✅ | ✅ | ✅ | ❌ | ⭐⭐⭐ |
| Alfa AWUS036ACM | MT7612U | ✅ | ✅ | ✅ | ❌ | ⭐⭐ |
| Alfa AWUS036ACS | RTL8811AU | ✅ | ✅ | ✅ | ❌ | ⭐⭐ |
| TP-Link Archer T2U+ | RTL8821AU | ✅ | ✅ | ✅ | ❌ | ⭐ |
| Panda PAU09 | RT5572 | ✅ | ✅ | ❌ | ❌ | ⭐ |
### SDR 设备
| 设备 | 频率 | TX | 用例 |
|--------|-----------|:--:|----------|
| RTL-SDR V4 | 500kHz - 1.7GHz | ❌ | IoT 嗅探、ADS-B |
| RTL-SDR V3 | 24MHz - 1.7GHz | ❌ | 通用 |
| HackRF One | 1MHz - 6GHz | ✅ | 重放攻击 |
| YARD Stick One | 300-928MHz | ✅ | 亚 GHz 专家 |
### 其他硬件
| 类别 | 推荐设备 | 备注 |
|----------|-------------------|-------|
| **GPS** | u-blox NEO-M8N | USB,高精度 |
| **蓝牙** | Sena UD100 | 远距离,BT5.0 |
| **OLED 显示屏** | SSD1306 128x64 | I2C, 0.96" |
| **电源** | PiSugar 3 | 5000mAh,UPS |
## 🌐 Web 界面与 API
### 仪表盘
访问实时仪表盘:
```
momo web-url --show-token
# → http://192.168.4.1:8082?token=xxxxx
```
**功能:**
- 🗺️ 实时 Wardriving 地图 (Leaflet.js)
- 📊 带有 SSE 更新的实时统计
- 📁 握手管理
- ⚙️ 配置编辑器
- 🔔 告警通知
### REST API 端点
核心端点
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| GET | `/api/status` | 系统状态 |
| GET `/api/stats` | 运行时统计 |
| GET | `/api/config` | 当前配置 |
| GET | `/sse/events` | 实时事件流 |
| GET | `/metrics` | Prometheus 指标 |
WiFi 端点
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| GET | `/api/wardriver/aps` | 发现的接入点 |
| POST | `/api/eviltwin/start` | 启动 Evil Twin 攻击 |
| POST | `/api/karma/start` | 启动 Karma/MANA |
| GET | `/api/wpa3/networks` | WPA3 网络列表 |
| POST | `/api/capture/start` | 启动握手捕获 |
凭证端点 (新功能)
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| GET | `/api/creds/status` | 收集统计 |
| POST | `/api/creds/start` | 启动凭证收集 |
| POST | `/api/creds/stop` | 停止收集 |
| GET | `/api/creds/ntlm` | 捕获的 NTLM 哈希 |
| GET | `/api/creds/http` | HTTP 凭证 |
| GET | `/api/creds/kerberos` | Kerberos 票据 |
| POST | `/api/creds/export` | 导出至文件 |
硬件端点
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| GET | `/api/hardware/devices` | 已连接的设备 |
| GET | `/api/ble/devices` | BLE 扫描结果 |
| GET | `/api/sdr/spectrum` | 频谱数据 |
| GET | `/api/gps/position` | 当前 GPS 位置 |
### 身份验证
```
# Using environment variable (or /opt/momo/.momo_ui_token provisioned by setup)
export MOMO_UI_TOKEN="your-secure-token"
# Using header (recommended)
curl -H "Authorization: Bearer $MOMO_UI_TOKEN" http://localhost:8082/api/status
# Query-parameter token (?token=...) is DISABLED by default (leaks into logs/proxies).
# Enable only if you must, via web.allow_query_token: true
```
### 🔐 安全默认设置 (已加固)
MoMo 出厂即处于锁定状态。默认配置开箱即安全:
| 默认设置 | 行为 |
|---------|----------|
| **认证失败即关闭** | 如果未配置 token,API 将返回 **`503 setup_required`** —— 它绝不会在未认证的情况下提供服务。请运行安装程序 (配置 `/opt/momo/.momo_ui_token`) 或设置 `MOMO_UI_TOKEN`。 |
| **无局域网自动信任** | `web.allow_local_unauth: false` —— localhost/私有网络客户端**不会**被自动认证。仅为可选启用,并且在启用时会进行显著记录。 |
| **常数时间比较** | 使用 `hmac.compare_digest` 检查 token (时间安全)。 |
| **默认关闭激进模式** | `aggressive.enabled: false` —— 主动 deauth/assoc 攻击为可选启用;开箱即用时不会发起任何攻击。 |
| **凭证收集可选启用** | `creds.enabled: false` —— 在显式启用之前,收集功能处于禁用状态。 |
| **静态加密** | 排队等待同步的已捕获凭证/握手信息使用 **Fernet** (AES-128-CBC + HMAC) 进行加密,密钥来源于每个设备的 `0600` 密钥文件。 |
| **XSS/CSRF** | Web 页面会转义用户字段;跨域 POST 请求将被拒绝;会话 cookie 设置为 `SameSite=Strict`。 |
| **加固的插件加载器** | 拒绝具有全局可写权限的插件目录/文件,以阻止不受信任的代码注入。 |
## 🔌 插件开发
MoMo 采用受 Marauder 启发的现代插件架构,具有完整的生命周期管理。
### 创建插件
```
"""Example MoMo Plugin."""
from momo.core.plugin import Plugin, PluginMetadata, PluginType
class MyAwesomePlugin(Plugin):
"""My custom attack plugin."""
@staticmethod
def metadata() -> PluginMetadata:
return PluginMetadata(
name="my_awesome_plugin",
version="1.0.0",
author="Your Name",
description="Does awesome things",
plugin_type=PluginType.ATTACK,
priority=100,
requires=["wifi"],
)
async def on_load(self) -> None:
"""Called when plugin is registered."""
self.log.info("Plugin loaded")
# Subscribe to events
await self.subscribe("ap_discovered", self.on_ap_found)
async def on_start(self) -> None:
"""Called when plugin is activated."""
self.log.info("Plugin started")
# Start background task
self._task = asyncio.create_task(self._worker())
async def on_stop(self) -> None:
"""Called when plugin is deactivated."""
if self._task:
self._task.cancel()
self.log.info("Plugin stopped")
async def on_ap_found(self, event: dict) -> None:
"""Handle discovered access point."""
ap = event['data']
self.log.info(f"Found AP: {ap['ssid']}")
# Publish event
await self.emit("my_event", {"status": "processing"})
async def _worker(self) -> None:
"""Background worker loop."""
while True:
await asyncio.sleep(10)
# Do periodic work
# Entry point
def create_plugin() -> Plugin:
return MyAwesomePlugin()
```
### 插件生命周期
```
┌──────────┐ load ┌──────────┐ start ┌──────────┐
│ UNLOADED │ ────────▶ │ LOADED │ ────────▶ │ RUNNING │
└──────────┘ └──────────┘ └────┬─────┘
│
stop │
▼
┌──────────┐
│ STOPPED │
└──────────┘
```
| 钩子 | 异步 | 用途 |
|------|:-----:|---------|
| `on_load()` | ✅ | 事件订阅,轻量级初始化 |
| `on_start()` | ✅ | 启动后台任务,连接硬件 |
| `on_tick(ctx)` | ❌ | 定期同步操作 |
| `on_stop()` | ✅ | 清理,停止任务 |
| `on_unload()` | ✅ | 最终清理 |
### 插件类型
| 类型 | 优先级 | 描述 |
|------|:--------:|-------------|
| `CORE` | 0 | 核心系统插件 |
| `SCANNER` | 10 | WiFi/BLE 扫描 |
| `CAPTURE` | 20 | 数据捕获 |
| `ATTACK` | 30 | 主动攻击 |
| `ANALYSIS` | 40 | 数据分析 |
| `UI` | 50 | 用户界面 |
| `CUSTOM` | 100 | 自定义插件 |
## ⚙️ 配置
### 主配置文件
```
# /etc/momo/momo.yml
# ═══════════════════════════════════════════════════════════════════
# General Settings
# ═══════════════════════════════════════════════════════════════════
mode: balanced # passive, balanced, aggressive
# NOTE: active attacks (deauth/assoc) still require
# aggressive.enabled=true below — mode alone never attacks
interface:
name: wlan1 # Primary attack interface
mac_randomization: true
channel_hop: true
channels: [1, 6, 11] # 2.4GHz channels
channels_5ghz: [36, 40, 44, 48] # 5GHz non-DFS channels
# ═══════════════════════════════════════════════════════════════════
# Headless Operation
# ═══════════════════════════════════════════════════════════════════
management:
enabled: true
interface: wlan0 # Pi5 internal WiFi
mode: ap # ap or client
ap_ssid: MoMo-Management
ap_password: YourSecurePassword # ⚠️ CHANGE THIS
auto_whitelist: true # Protect from self-attack
bind_web_to_management: true
oled:
enabled: true
i2c_address: "0x3C"
menu:
enabled: true
idle_timeout: 30.0
# ═══════════════════════════════════════════════════════════════════
# Attack Modules
# ═══════════════════════════════════════════════════════════════════
aggressive:
enabled: false # ⚠️ SECURITY: OPT-IN, OFF by default — no active attacks out of the box
max_deauth_per_min: 100 # bound floods; 0 = unlimited (explicit operator choice)
max_assoc_per_min: 100 # bound floods; 0 = unlimited
ssid_whitelist: [] # empty = no SSID restriction
ssid_blacklist: [] # your own networks (never attacked)
eviltwin:
enabled: false
portal_template: generic # generic, hotel, corporate, facebook, google, router
karma:
enabled: false
respond_to_all: true
capture_eap: true
wpa3:
enabled: true
auto_downgrade: false
# ═══════════════════════════════════════════════════════════════════
# Credential Harvesting
# ═══════════════════════════════════════════════════════════════════
creds:
enabled: false
interface: eth0
output_dir: logs/creds
responder:
enabled: true
llmnr: true
nbns: true
ntlm:
enabled: true
smb_port: 445
http_port: 80
http:
enabled: true
ports: [80, 8080, 8000]
kerberos:
enabled: false
dc_ip: ""
domain: ""
# ═══════════════════════════════════════════════════════════════════
# Auto-Pwn Mode
# ═══════════════════════════════════════════════════════════════════
autopwn:
enabled: false
mode: balanced # passive, balanced, aggressive
min_signal_dbm: -80
max_concurrent_attacks: 1
enable_pmkid: true
enable_deauth: true
enable_eviltwin: false
# ═══════════════════════════════════════════════════════════════════
# Hardware
# ═══════════════════════════════════════════════════════════════════
ble:
enabled: false
scan_duration: 5.0
sdr:
enabled: false
device_type: rtlsdr
hardware:
auto_detect: true
auto_configure: true
# ═══════════════════════════════════════════════════════════════════
# Cracking & Sync
# ═══════════════════════════════════════════════════════════════════
cracking:
enabled: true
use_john: true
cloud_enabled: false
nexus_api_url: ""
plugins:
enabled:
- wardriver
- active_wifi
- creds_harvester
```
## 🔧 CLI 参考
```
# ═══════════════════════════════════════════════════════════════════
# General Commands
# ═══════════════════════════════════════════════════════════════════
momo version # Show version and build info
momo doctor # Run system diagnostics
momo status # Show runtime status
# ═══════════════════════════════════════════════════════════════════
# 运行 MoMo
# ═══════════════════════════════════════════════════════════════════
momo run # Start with default config
momo run -c /path/to/momo.yml # Start with custom config
momo run --dry-run # Simulate without hardware
momo run --debug # Enable debug logging
# ═══════════════════════════════════════════════════════════════════
# Web Interface
# ═══════════════════════════════════════════════════════════════════
momo web-url # Show Web UI URL
momo web-url --show-token # Include auth token
# ═══════════════════════════════════════════════════════════════════
# Maintenance
# ═══════════════════════════════════════════════════════════════════
momo rotate-now # Force log rotation
momo export --format hashcat # Export captured data
momo backup # Backup configuration
```
## 🌐 MoMo 生态系统
MoMo 是集成攻击性安全生态系统的一部分。每个项目都旨在实现无缝协作。
```
☁️ CLOUD LAYER
┌─────────────────────────────────┐
│ GPU Cracking (Cloud) │
└────────────────┬────────────────┘
│
┌──────▼──────┐
│ │
│ 🟢 NEXUS │
│ Central Hub │
│ │
└──────┬──────┘
│
┌─────────────────────────┼─────────────────────────┐
│ │ │
┌──────▼──────┐ ┌───────▼───────┐ ┌──────▼──────┐
│ │ │ │ │ │
│ 🔵 MOMO │◀────────▶│ 👻 GHOSTBRIDGE│◀───────▶│ 🎭 MIMIC │
│ WiFi/BLE │ │ Network │ │ USB Attack │
│ Pi 5 │ │ Implant │ │ Pi Zero │
│ │ │ │ │ │
└─────────────┘ └───────────────┘ └─────────────┘
```
### 生态系统组件
| 项目 | 描述 | 平台 | 链接 |
|---------|-------------|----------|-------|
| **🔵 MoMo** | WiFi/BLE/SDR 审计平台 | Pi 5 | [GitHub](https://github.com/M0M0Sec/MoMo) |
| **🟢 Nexus** | 中心 C2 枢纽 | Pi 4 | [GitHub](https://github.com/M0M0Sec/MoMo-Nexus) |
| **👻 GhostBridge** | 透明网络植入物 | NanoPi R2S | [GitHub](https://github.com/M0M0Sec/Momo-GhostBridge) |
| **🎭 Mimic** | USB 攻击平台 | Pi Zero 2W | [GitHub](https://github.com/M0M0Sec/MoMo-Mimic) |
### Nexus 集成
```
# 在 momo.yml 中 Enable Nexus sync
nexus:
enabled: true
api_url: "http://nexus.local:8080"
device_id: "momo-field-01"
sync_interval: 30
sync:
handshakes: true
credentials: true
wardriving: true
```
## 📚 文档
| 文档 | 描述 |
|----------|-------------|
| [📖 OPERATIONS.md](docs/OPERATIONS.md) | 操作指南与最佳实践 |
| [🔐 SECURITY.md](docs/SECURITY.md) | 安全加固与 OPSEC |
| [🔧 HARDWARE.md](docs/HARDWARE.md) | 硬件设置与建议 |
| [📡 WIFI_ATTACKS.md](docs/WIFI_ATTACKS.md) | WiFi 攻击技术 |
| [🔑 CREDENTIALS.md](docs/CREDENTIALS.md) | 凭证收集指南 |
| [🤖 AUTOPWN.md](docs/AUTOPWN.md) | Auto-Pwn 模式文档 |
| [🚀 FIRST_BOOT.md](docs/FIRST_BOOT.md) | 首次启动向导指南 |
| [🔌 PLUGINS.md](docs/PLUGINS.md) | 插件开发指南 |
| [🗺️ ROADMAP.md](docs/ROADMAP.md) | 开发路线图 |
| [📝 CHANGELOG.md](docs/CHANGELOG.md) | 版本历史 |
## 📊 项目状态
| 版本 | 阶段 | 状态 |
|---------|-------|:------:|
| v0.1.0 | 核心基础设施 | ✅ |
| v0.5.0 | 蓝牙扫描器 | ✅ |
| v0.7.0 | 破解集成 | ✅ |
| v1.0.0 | WPA3/SAE 攻击 | ✅ |
| v1.2.0 | 蓝牙扩展 | ✅ |
| v1.5.0 | SDR 集成 | ✅ |
| v1.5.2 | 管理网络 | ✅ |
| v1.6.0 | 凭证收集 | ✅ |
| **v1.7.0** | **首次启动向导** | ✅ **新功能** |
**统计数据:**
- 📝 **527 个测试** 通过
- 📊 **87% 覆盖率**
- 🔌 **52 个插件** 可用
- 📡 **6 个攻击模块**
### 提交规范
```
type(scope): description
Types: feat, fix, docs, style, refactor, test, chore
```
### 开发工作流
```
# Setup
git clone https://github.com/M0M0Sec/MoMo.git
cd MoMo
pip install -e ".[dev]"
pre-commit install
# Test
pytest tests/ -v --cov=momo
# Lint
ruff check momo/
mypy momo/
# Format
black momo/
```
## ⚠️ 法律免责声明
- ✅ 仅在您拥有或获得明确书面测试许可的网络上使用
- ✅ 遵守有关无线安全测试的当地法律法规
- ✅ 遵循负责任的披露惯例
- ❌ 开发者不对滥用此工具的行为负责
- ❌ 未经授权访问计算机系统是违法行为
## 📜 许可证
本项目基于 **MIT License** 授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
🔥 MoMo 生态系统的一部分
灵感来源于 Pwnagotchi • ESP32 Marauder • WiFi Pineapple
🔵 MoMo •
🟢 Nexus •
👻 GhostBridge •
🎭 Mimic
由 MoMo 团队用 ❤️ 打造