jxroot/BlackWire
GitHub: jxroot/BlackWire
BlackWire 是一个用于红队与安全研究的 Android 设备远程管控平台,通过无头 agent 与 WebSocket 实现多设备的静默连接和集中管理。
Stars: 1 | Forks: 0
# ⚡ BlackWire
### 静默连接。全面掌控。
[](https://fastapi.tiangolo.com/)
[](https://react.dev/)
[](https://kotlinlang.org/)
[](https://www.docker.com/)
[](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 上联系我们:
[](https://t.me/amajax)
## ⚠️ 法律与道德免责声明
🚨 本工具严格仅供教育和授权的安全测试目的使用。
🔬 旨在帮助网络安全专业人员、研究人员和爱好者在实验室或受控环境中了解后渗透、红队和检测技术。
❌ 未经明确许可,请勿在任何系统或网络上使用此工具。未经授权的使用可能是非法且不道德的。
🛡 作者对因滥用本项目造成的任何误用或损害概不负责。
标签:Android监控, AV绕过, FastAPI, Kotlin, React, Syscalls, WebSocket, 依赖分析, 移动端安全, 请求拦截, 远程管理