xiongnemo/youmu

GitHub: xiongnemo/youmu

一款零依赖的 Go 语言 C2 框架,用于学习命令与控制基础设施的内部运作方式,适合授权安全测试与教育。

Stars: 0 | Forks: 0

# Youmu(妖梦)— C2 框架 **其他语言**: [简体中文](README.zh-CN.md) ## 概述 Youmu 是一个开源的 C2 框架,旨在学习命令与控制基础设施的内部运作方式。核心加密和 HTTP 通信完全从零开始实现,没有任何第三方依赖;而注入、规避、无文件加载和 BOF 支持等高级功能除非明确标记为已实现,否则均为部分实现或实验性功能。 **名字由来**:[境界の彼方](https://en.wikipedia.org/wiki/Beyond_the_Boundary) — 诞生于人类情感、潜伏在两界交界处的存在。 ## 功能 | 类别 | 能力 | |----------|-------------| | **Crypto** | RSA-2048 + AES-CBC-256 + HMAC-SHA256 + 密钥派生 | | **Protocol** | 自定义二进制帧(兼容 CS)+ 元数据 + 6 个编码器 | | **通信** | HTTP/HTTPS 已实现;DNS/TCP 对等节点辅助功能为部分实现;SOCKS4/5 辅助功能受限 | | **命令** | Shell / Upload / Download / Ls / Pwd / Cd / Mkdir / Rm / Mv / Ps / Kill | | **Profile** | Malleable C2 解析器 + HTTP 转换引擎 | | **Evasion** | 实验/部分实现:程序化 HTTP + UA 轮换;garble 为可选/手动 | | **Syscall** | Windows 间接 syscall(Chain SSN Resolver)+ Linux 直接 syscall | | **无文件** | 实验/部分实现:loader 和 sleep-mask 包正在积极开发中 | | **BOF** | 实验/部分实现:COFF 解析器骨架,执行回调不完整 | | **REST** | 受 Bearer 保护的 `/api/v1/sessions` + 由 `server-task-allowlist` 允许的 `/tasks` + 挂载在服务器上的 `/status` | | **Staged** | 实验/部分实现:handler 已存在,但分阶段交付默认未挂载 | | **生成** | 部分实现:交叉编译 + 有效的 ldflags 配置注入;动态生成在路线图中 | ## 快速开始 ### 安装 ``` git clone https://github.com/xiongnemo/youmu.git cd youmu go mod tidy # no dependencies to download ``` ### 启动服务器 ``` go run ./cmd/server/ -addr :8443 ``` 服务器将生成 RSA 密钥对并打印公钥。 ### 构建 Youmu(Implant) ``` # 标准构建 go build -ldflags "-s -w -trimpath -H windowsgui \ -X youmu/pkg/youmu.BuildServerURL=https://your-server:8443 \ -X youmu/pkg/youmu.BuildRSAPublicKey=" \ -o youmu.exe ./cmd/youmu/ # 使用 garble 进行混淆 garble -tiny -literals build -ldflags "..." -o youmu.exe ./cmd/youmu/ ``` ### 运行 ``` ./youmu.exe -server https://your-server:8443 ``` ## 架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ Operator │ │ ┌──────────┐ ┌──────────┐ ┌──────────────────────┐ │ │ │ CLI │ │ REST API │ │ Web Dashboard (TODO) │ │ │ └────┬─────┘ └────┬─────┘ └──────────┬───────────┘ │ │ └───────────────┼──────────────────────┘ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ Team Server │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │ │ │ │ │ Session │ │ Task │ │ REST │ │ Stage? │ │ │ │ │ │ Manager │ │ Queue │ │ API │ │ Partial│ │ │ │ │ └──────────┘ └──────────┘ └──────────┘ └────────┘ │ │ │ └─────────────────────────┬───────────────────────────────┘ │ │ │ │ └─────────────────────────────┼────────────────────────────────┘ │ HTTP/HTTPS primary (+partial DNS/TCP helpers) ▼ ┌─────────────────────────────────────────────────────────────┐ │ Youmu (Implant) │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────┐ │ │ │ Transport│ │ Command │ │ Traffic │ │ Mask Lab │ │ │ │ Layer │ │ Dispatch │ │ Helpers │ │ Experiment │ │ │ └──────────┘ └──────────┘ └──────────┘ └────────────┘ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────┐ │ │ │ Crypto │ │ Protocol │ │ Syscall │ │ Loader Lab │ │ │ │ Layer │ │ Codec │ │ Partial │ │ Roadmap │ │ │ └──────────┘ └──────────┘ └──────────┘ └────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` ## 项目结构 ``` youmu/ ├── cmd/ │ ├── server/main.go # Server entry point │ └── youmu/main.go # Youmu entry point ├── shared/ │ ├── types.go # Core types │ └── constants.go # Constants ├── pkg/ │ ├── crypto/ # RSA + AES + HMAC │ ├── protocol/ # Binary frames + metadata + encoders │ ├── server/ # HTTP handler + session + REST API │ ├── youmu/ # Main loop + transport + evasion │ ├── commands/ # Command implementations │ ├── profile/ # Malleable C2 │ ├── syscall/ # Direct syscall │ ├── reflector/ # Experimental PE/ELF loader study code │ ├── sleepmask/ # Experimental sleep-mask helper code │ └── bof/ # Partial BOF/COFF parser skeleton ├── docs/ │ ├── en/ # English documentation │ └── zh-CN/ # Chinese documentation ├── PLAN.md # Implementation plan ├── AGENTS.md # Project constraints ├── PLATFORMS.md # Platform compatibility ├── NEXT.md # Next phase plan ├── build.sh # Build script └── go.mod # Zero dependencies ``` ## 平台支持 除非功能表或详细文档明确标记为已实现,否则架构中展示的高级模块均为部分/实验性功能。 | 平台 | 服务器 | Youmu | 备注 | |----------|--------|-------|-------| | Windows | ✅ | ✅ | 主要目标,间接 syscall | | Linux | ✅ | ✅ | 直接 syscall,memfd_create | | macOS | ✅ | ✅ | 直接 syscall | | FreeBSD | ⚠️ | ⚠️ | 基础功能 | 详情请参阅 [PLATFORMS.md](PLATFORMS.md)。 ## 文档 - [架构设计](docs/en/architecture.md) | [架构设计](docs/zh-CN/architecture.md) - [加密协议](docs/en/crypto.md) | [加密协议](docs/zh-CN/crypto.md) - [通信协议](docs/en/protocol.md) | [通信协议](docs/zh-CN/protocol.md) - [命令参考](docs/en/commands.md) | [命令参考](docs/zh-CN/commands.md) - [Malleable C2](docs/en/profile.md) | [Malleable C2](docs/zh-CN/profile.md) - [Syscall 层](docs/en/syscall.md) | [Syscall 层](docs/zh-CN/syscall.md) - [无文件执行](docs/en/fileless.md) | [内存马](docs/zh-CN/fileless.md) - [BOF 加载器](docs/en/bof.md) | [BOF 加载器](docs/zh-CN/bof.md) - [Evasion 技术](docs/en/evasion.md) | [Evasion 技术](docs/zh-CN/evasion.md) - [构建指南](docs/en/building.md) | [构建指南](docs/zh-CN/building.md) ## 设计原则 1. **零外部依赖** — `go.mod` 仅包含标准库 2. **直接 syscall** — Windows:`Nt*` 间接 syscall;Linux:`syscall.Syscall()` 3. **跨平台** — 每个平台都有各自的实现或存根 4. **面向学习** — 代码清晰,注释详尽,适合用来深入理解 C2 的每一个细节 ## 参考项目 有关用于学习的精选参考项目列表,请参阅 [AGENTS.md](AGENTS.md)。 ## 许可证 基于 [GNU Affero General Public License v3.0](LICENSE) 许可。本项目仅可用于授权的安全测试和教育目的;有关项目安全政策,请参阅 [AGENTS.md](AGENTS.md)。
标签:C2框架, EVTX分析, Go语言, HTTP工具, IP 地址批量处理, 免杀技术, 安全学习资源, 日志审计, 暴力破解检测, 知识库安全, 程序破解, 红队框架, 网络信息收集