jxroot/BlackWire

GitHub: jxroot/BlackWire

BlackWire 是一个用于红队与安全研究的 Android 设备远程管控平台,通过无头 agent 与 WebSocket 实现多设备的静默连接和集中管理。

Stars: 1 | Forks: 0

# ⚡ BlackWire ### 静默连接。全面掌控。 [![FastAPI](https://img.shields.io/badge/Backend-FastAPI-009688?style=for-the-badge&logo=fastapi&logoColor=white)](https://fastapi.tiangolo.com/) [![React](https://img.shields.io/badge/Frontend-React_19-61DAFB?style=for-the-badge&logo=react&logoColor=black)](https://react.dev/) [![Kotlin](https://img.shields.io/badge/Agent-Kotlin-7F52FF?style=for-the-badge&logo=kotlin&logoColor=white)](https://kotlinlang.org/) [![Docker](https://img.shields.io/badge/Deploy-Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white)](https://www.docker.com/) [![PostgreSQL](https://img.shields.io/badge/Database-PostgreSQL-4169E1?style=for-the-badge&logo=postgresql&logoColor=white)](https://www.postgresql.org/) **Web 仪表板 + 强大的后端 + 无头 Android agent**
## ✨ 概述 **BlackWire** 是一个用于远程管理多台 Android 设备的全栈平台。 每部手机上都会运行一个无头 agent 并自动保持连接——您可以通过一个 Web 仪表板控制一切。
## 🚀 功能
### 📊 仪表板与管理 - 实时设备在线 / 离线状态 - 高级搜索与筛选 - 通过 WebSocket 进行实时更新 - 电池、RAM 和存储指标 - 可从面板直接构建自定义 APK ### 📱 远程控制 - 实时屏幕监控 - 文件与应用管理 - 远程 shell 终端 - 摄像头与麦克风访问 - 实时 GPS 追踪
### 💬 通信与数据 - 读取与发送 SMS - 联系人与通话记录 - 通知日志记录 - 用户活动时间轴 - 可切换的数据收集模块 ### ⚙️ 系统与安全 - 权限管理 - 快捷开关 — 飞行模式、Wi-Fi 等 - JWT 身份验证 - 无头 agent — 在安装和重启时自动启动 - 用于保障连接稳定性的 Watchdog
## 🛠️ 技术栈 | 层级 | 技术 | |:--|:--| | **Frontend** | React 19 · Vite · TypeScript · Tailwind CSS · Zustand · TanStack Query | | **Backend** | FastAPI · Pydantic · SQLAlchemy · Uvicorn | | **Agent** | Kotlin · OkHttp WebSocket · Foreground Service | | **数据库** | PostgreSQL 16 | | **实时通信** | WebSocket (`/ws/dashboard` · `/ws/device`) | | **部署** | Docker Compose | ## 🏗️ 架构 ``` flowchart LR subgraph Devices["📱 Android Devices"] A1[Agent App] A2[Agent App] A3[Agent App] end subgraph Server["🖥️ Server"] BE[FastAPI Backend] DB[(PostgreSQL)] FE[React Dashboard] end A1 & A2 & A3 -->|WebSocket| BE BE <--> DB FE <-->|REST + WebSocket| BE style FE fill:#61DAFB22,stroke:#61DAFB style BE fill:#00968822,stroke:#009688 style DB fill:#4169E122,stroke:#4169E1 ``` ## 📸 预览
## ▶️ 演示视频与 Wiki - [观看演示视频](videos/demo.mp4) - [功能特性 - 屏幕监控](videos/screen-monitor.mp4) - [功能特性 - 麦克风](videos/microphone.mp4) ## 🔨 APK Builder 直接从仪表板配置 agent 应用并构建用于安装的自定义 APK——无需 Android Studio。 登录后在侧边栏打开 **Build**。 ### 应用身份 | 选项 | 描述 | |:--|:--| | **App name** | 在通知和系统设置中显示的名称(默认:`Device Agent`) | | **Package name** | Android 用于识别已安装应用的唯一应用 ID(默认:`com.devicemanager.agent`) | | **App icon** | 可选的方形 PNG、JPG 或 WebP 图片,最大 1 MB | | **Server URL** | agent 连接到的后端地址(例如 `http://192.168.1.100:8000`) | ### 安装时的权限 选择 APK 是在首次启动时请求权限,还是将所有权限留给设备的 **Permissions** 面板稍后处理。 #### 最小化安装 *(推荐)* 体积更小的 APK,manifest 中不包含 SMS、摄像头、定位和其他可选功能。您可以选择在首次启动时请求 **Notifications** 还是 **Battery optimization**。如需更多权限,请切换到 **Custom on install**。 #### 安装时自定义 全功能 APK。在应用首次打开时请求所有选定的权限。未选定的权限仍可在之后从面板中授予。 ### 首次启动权限 在 **minimal** 模式下,仅 **Notifications** 和 **Battery optimization** 可用。切换到 **Custom** 可获取 SMS、摄像头、定位等更多权限。 | 权限 | 用途 | Minimal | Custom | |:--|:--|:--:|:--:| | **All Files Access** | 文件管理器与存储浏览 | — | ✓ | | **Battery Optimization** | 保持 agent 在后台连接 | ✓ | ✓ | | **Photos** | Android 13+ 上的壁纸与媒体访问权限 | — | ✓ | | **Notifications** | Android 13+ 上的 Foreground service 通知 | ✓ | ✓ | | **SMS** | 读取和发送短信 | — | ✓ | | **Contacts** | 读取联系人列表 | — | ✓ | | **Call Log** | 读取通话记录 | — | ✓ | | **Location** | GPS 定位追踪 | — | ✓ | | **Microphone** | 录制和传输音频 | — | ✓ | | **Camera** | 拍照和实时预览 | — | ✓ | | **Accessibility** | 屏幕控制和远程点击 | — | ✓ | | **Notification Access** | 追踪其他应用的通知 | — | ✓ | ### 高级选项 | 选项 | 描述 | |:--|:--| | **Heartbeat interval** | agent heartbeat 之间的间隔秒数(默认:`15`) | | **Fake APK size (MB)** | 在构建时使用额外数据填充 APK。使用 `0` 可禁用 | | **Hide app after install** | 在 agent 启动后移除启动器图标。应用仍在后台运行。图标在 agent 运行一次后隐藏,而不是在安装时。在 Xiaomi/Samsung 设备上,可能需要几秒钟或重启启动器 | | **Device Admin** | 在 APK 中包含设备管理员支持。必须在构建前在此处启用——之后无法从面板中添加。首次启动时,应用会提示激活;状态显示在 **Permissions** 下。用户可以从 Android 设置中将其撤销 | ### 安全性 | 选项 | 描述 | |:--|:--| | **Require HTTPS** | 阻止 agent 中的纯 HTTP 和 WebSocket 连接 | | **Allow HTTP (local dev only)** | 允许 `http://` 服务器 URL 用于局域网测试。在生产环境中保持禁用 | | **Certificate pinning** | 对有效的 HTTPS 主机自动启用;对 ngrok 和纯 HTTP 禁用 | | **Anti-root detection** | 检测到 root 访问权限时退出 agent | | **Anti-emulator detection** | 在模拟器上运行时退出 agent | | **Anti-debug detection** | 在附加 debugger 或应用可调试时退出 | ### 构建与下载 1. 点击 **Build APK** — 服务器将在后台运行 Gradle 2. 等待构建完成(状态:queued → building → ready) 3. 下载 APK 并将其安装在您的设备上 4. 查看 **build history**,包括版本号、config fingerprint 以及安装状态追踪 安装后,设备将通过 WebSocket 连接并在仪表板中显示为 **Online**。 ## 🔐 许可证 本软件为**专有软件**。未经有效许可,不得使用、分发或修改。
### 📩 获取许可证 在 Telegram 上联系我们: [![Telegram](https://img.shields.io/badge/Telegram-@amajax-26A5E4?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/amajax)
## ⚠️ 法律与道德免责声明 🚨 本工具严格仅供教育和授权的安全测试目的使用。 🔬 旨在帮助网络安全专业人员、研究人员和爱好者在实验室或受控环境中了解后渗透、红队和检测技术。 ❌ 未经明确许可,请勿在任何系统或网络上使用此工具。未经授权的使用可能是非法且不道德的。 🛡 作者对因滥用本项目造成的任何误用或损害概不负责。
标签:Android监控, AV绕过, FastAPI, Kotlin, React, Syscalls, WebSocket, 依赖分析, 移动端安全, 请求拦截, 远程管理