EterNullSec/MadEzmaC2
GitHub: EterNullSec/MadEzmaC2
基于 AsyncSSH 的轻量级异步 C2 框架,通过 SSH 加密通道与 Ngrok 隧道穿透实现远程命令执行与文件传输,专攻安全研究与实验室场景。
Stars: 2 | Forks: 0
# MadEzmaC2 – 异步基于 SSH 的命令与控制框架
## 📌 概述
**MadEzmaC2** 是一个基于 Python 的概念验证命令与控制 (C2) 框架,专为**教育用途、对手模拟和受控安全研究**而设计。
它利用了:
* `AsyncSSH` 进行加密的 SSHv2 通信
* Python 的 `asyncio` 实现可扩展的并发
* `Ngrok` 实现 NAT 穿透和外部暴露
该项目在保持适合学习和实验的极简透明架构的同时,模拟了**真实世界的 C2 行为**。
## ⚙️ 核心功能
* 🔐 加密的 SSHv2 通信 (AsyncSSH)
* ⚡ 异步多会话处理
* 🖥️ 远程命令执行
* 📁 安全文件传输 (SFTP / SCP)
* 🌐 基于 Ngrok 的隧道 (NAT 穿透)
* 🔍 通过 Ngrok API 自动发现端点
* 🧅 可选的 SOCKS 代理路由 (兼容 TOR)
## 🧠 架构
```
┌────────────────────┐
│ Operator │
│ (Commander Client) │
└────────┬───────────┘
│ SSH (AsyncSSH)
▼
┌────────────────────┐
│ Ngrok │
│ (Tunnel Layer) │
└────────┬───────────┘
│
▼
┌────────────────────┐
│ Agent │
│ (AsyncSSH Server) │
└────────────────────┘
```
### 组件
* **Agent:** 运行在目标系统上,并提供 SSH 服务
* **Commander:** 连接到 Agent 并执行命令
* **Tunnel Layer:** 通过 Ngrok 提供外部访问
## 🚀 设置与配置
### 1. 生成 SSH 密钥
```
python3 gen_rsa.py
```
输出:
* `id_rsa` → 私钥 (操作者)
* `id_rsa.pub` → 公钥 (Agent)
### 2. 配置 Agent
编辑:
```
asyncssh_server.py
```
将你的公钥插入到:
```
pub_key = "ssh-rsa AAAA..."
```
### 3. 配置 Ngrok
* 创建账户 → https://ngrok.com
* 获取 Auth Token
* 将其添加到:
```
ngrok_tunnel()
```
### 4. (可选) 启用 Ngrok API
将你的 API 密钥添加到:
* `asyncssh_commander.py`
* `get_endpoints.py`
## ▶️ 用法
### 启动 Agent
```
python3 asyncssh_server.py
```
### 执行命令
```
python3 asyncssh_commander.py "whoami"
```
使用 SOCKS 代理:
```
python3 asyncssh_commander.py "ls -la" --proxy socks5://127.0.0.1:9050
```
### 获取活跃隧道
```
python3 get_endpoints.py
```
### 重新生成密钥
```
python3 gen_rsa.py
```
## 📂 项目结构
```
MadEzmaC2/
│
├── asyncssh_server.py
├── asyncssh_commander.py
├── get_endpoints.py
├── gen_rsa.py
├── requirements.txt
├── assets/
│ └── banner.png
├── README.md
└── LICENSE
```
## 📡 文件传输
### 无代理
```
sftp -P PORT -i id_rsa user@NGROK_HOST
scp -i id_rsa -P PORT file user@NGROK_HOST:/path
```
### 使用代理 (TOR)
```
proxychains sftp -P NGROK_PORT -i id_rsa user@NGROK_HOST
scp -i id_rsa \
-o ProxyCommand="nc -x localhost:9050 %h NGROK_PORT" \
file user@NGROK_HOST:/path
```
## 🧪 使用场景
* 红队实验室模拟
* 对手模拟训练
* C2 协议研究
* 异步网络编程实践
* 安全远程管理实验
## ⚠️ 免责声明
本项目严格用于:
* 教育目的
* 授权的安全测试
* 受控环境
**严禁未经授权的使用。**
作者对滥用行为不承担任何责任。
## 📜 许可证
基于 **GPL-3.0** 许可
## 👤 作者
**EterNullSec**
标签:adversary simulation, Asyncio, AsyncSSH, C2框架, C2通信, NAT穿透, Ngrok, Python, SOCKS代理, SSH隧道, TGT, 内网穿透, 命令与控制框架, 安全学习资源, 实验室仿真, 开源安全工具, 异步编程, 攻防演练, 教育研究, 文件传输, 无后门, 洋葱路由, 网络信息收集, 计算机取证, 远程命令执行, 远程控制, 逆向工具, 逆向工程平台