0xStr1k3r/DarkNode
GitHub: 0xStr1k3r/DarkNode
一款开源的红队 C2 框架,提供原生远程桌面、多协议通信和完整后渗透能力。
Stars: 1 | Forks: 0
# 🌑 DarkNode C2 Framework
**一个专业的、开源的命令与控制(C2)框架,专为红队行动打造。**
轻量级 Agent · 加密通信 · Web UI · 原生远程桌面 —— 无需商业许可证。
[](LICENSE)
[](https://golang.org)
[](https://react.dev)
## ⚡ 快速安装
**步骤 1 — 克隆并构建**
```
git clone https://github.com/0xStr1k3r/DarkNode.git
cd DarkNode
chmod +x setup.sh
./setup.sh
```
**步骤 2 — 创建你的 `.env` 文件** 在根目录 `DarkNode/` 文件夹下:
```
# DarkNode — runtime environment
# 将此复制到你的 shell 或在运行前 source 它
TEAMSERVER_PORT=8080
TEAMSERVER_HTTPS_PORT=8443
TEAMSERVER_GRPC_PORT=9090
TEAMSERVER_TCP_PORT=4444
TEAMSERVER_TLS=false
# REQUIRED: 在部署前设置真实密码
OPERATOR_ADMIN_PASS=admin
# Optional: 用于 payload 构建的 agent 源代码路径
# AGENT_SRC_DIR=/path/to/agent
# Optional: 使用 postgres 代替内存存储
# TEAMSERVER_STORE=postgres
# DATABASE_URL=postgres://darknode:darknode@localhost/darknode
```
**步骤 3 — 运行 DarkNode**
```
cd bin
./darknode
```
打开 `http://localhost:8080` 并使用 `admin` / 你的密码登录。
## ✨ 功能特性
| 功能 | DarkNode | Cobalt Strike | Havoc C2 | Sliver |
|-------------------------------|:--------:|:-------------:|:--------:|:------:|
| 跨平台 Agent | ✅ | ✅ | ✅ | ✅ |
| Web UI 控制台 | ✅ | ❌ | ✅ | ❌ |
| **原生远程桌面** | ✅ | ❌ | ❌ | ❌ |
| SOCKS5 代理 | ✅ | ✅ | ✅ | ✅ |
| 端口转发 | ✅ | ✅ | ✅ | ✅ |
| 自动持久化 (一键全能) | ✅ | ❌ | ❌ | ❌ |
| 键盘记录器 | ✅ | ✅ | ✅ | ✅ |
| 内存执行 | ✅ | ✅ | ✅ | ✅ |
| 凭据收割 | ✅ | ✅ | ✅ | ✅ |
| 多用户 RBAC | ✅ | ✅ | ❌ | ❌ |
| mTLS 通信 | ✅ | ✅ | ✅ | ✅ |
| WebSocket + HTTP 传输 | ✅ | ❌ | ❌ | ❌ |
| gRPC 传输 | ✅ | ❌ | ❌ | ❌ |
| DNS 传输 | ✅ | ✅ | ❌ | ✅ |
| Payload 生成器 (Web) | ✅ | ✅ | ✅ | ✅ |
| 审计日志 | ✅ | ❌ | ❌ | ❌ |
| **价格** | **免费** | $$$ | 免费 | 免费 |
## 🗂️ 项目结构
```
DarkNode/
├── agent/ Go agent (runs on target)
├── teamserver/ C2 server — REST / WebSocket / gRPC API
├── operator-cli/ Terminal operator interface
├── web-ui/ React dashboard
├── bin/ Compiled binaries (output of setup.sh)
└── deploy/ Docker Compose for Postgres + Redis
```
## 🚀 使用指南
### 启动 Team Server
```
OPERATOR_ADMIN_PASS=yourpassword ./bin/darknode
```
打开 `http://localhost:8080` 并使用 `admin` / 你的密码登录。
### 环境变量
| 变量 | 默认值 | 描述 |
|------------------------|----------|------------------------------------------------|
| `TEAMSERVER_PORT` | `8080` | HTTP 监听端口 |
| `TEAMSERVER_HTTPS_PORT`| `8443` | HTTPS 端口 (需要 `TEAMSERVER_TLS=true`) |
| `TEAMSERVER_GRPC_PORT` | `9090` | gRPC 端口 |
| `TEAMSERVER_TCP_PORT` | `4444` | 原始 TCP 监听器 |
| `TEAMSERVER_TLS` | `false` | 启用 TLS (自动生成自签名证书) |
| `TEAMSERVER_STORE` | `memory` | 存储后端: `memory` 或 `postgres` |
| `OPERATOR_ADMIN_PASS` | — | **必填** — admin 密码 |
| `JWT_SECRET` | 随机 | JWT 签名密钥 |
### 构建 Payload
进入 Web UI 中的 **Payloads → Build Agent**:
1. 选择目标操作系统和架构
2. 将 **Callback URL** 设置为你的 IP —— 例如 `http://192.168.1.x:8080`
3. 选择传输通道 (`auto` 会探测所有通道;`http` 是最安全的默认选项)
4. 可选择启用 garble 混淆或 UPX 加壳
5. 点击 **Build**
#### 可用的 Dropper Stagers
| Stager | 用例 |
|---------------|-----------------------------------------|
| `stager.ps1` | Windows PowerShell (3 个下载回退) |
| `stager.bat` | Windows CMD (以管理员身份运行) |
| `stager.py` | 跨平台,需要 Python 3 |
| `stager.sh` | Linux / macOS |
| `update.hta` | Windows — 双击或 `mshta` |
| `macro.vba` | 粘贴到 Office VBA 编辑器 (Alt+F11) |
### Operator CLI
```
./bin/darknode-cli --server http://localhost:8080 --token
基于 Go · React · TailwindCSS 构建
标签:adversary simulation, Agent, C2框架, Cloudflare, EVTX分析, Google搜索, Go语言, HTTP工具, IP 地址批量处理, MITRE ATT&CK, PE 加载器, Python工具, React, SOCKS5代理, Syscalls, TCP SYN 扫描, Teamserver, Vite, Web UI, 加密通信, 命令与控制, 安全学习资源, 安全工具集合, 对手模拟, 开源安全工具, 攻击模拟, 日志审计, 植入物, 横向移动, 测试用例, 程序破解, 端口转发, 编程规范, 网络信息收集, 请求拦截, 远程桌面, 逆向工程平台, 驱动签名利用