EterNullSec/MadEzmaC2

GitHub: EterNullSec/MadEzmaC2

基于 AsyncSSH 的轻量级异步 C2 框架,通过 SSH 加密通道与 Ngrok 隧道穿透实现远程命令执行与文件传输,专攻安全研究与实验室场景。

Stars: 2 | Forks: 0

MadEzmaC2 Banner

# 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, 内网穿透, 命令与控制框架, 安全学习资源, 实验室仿真, 开源安全工具, 异步编程, 攻防演练, 教育研究, 文件传输, 无后门, 洋葱路由, 网络信息收集, 计算机取证, 远程命令执行, 远程控制, 逆向工具, 逆向工程平台