pallavikhadse/Python-C2-Framework-Simulation
GitHub: pallavikhadse/Python-C2-Framework-Simulation
一个基于原生 Python 的教育性 C2 通信模拟框架,用于研究恶意信标行为、出站流量特征及 EDR 检测策略。
Stars: 0 | Forks: 0
# 基于 Python 的命令与控制 (C2) 框架模拟
一个使用原生 Python 编写的模块化、轻量级命令与控制 (C2) 基础设施原型。本项目作为教育性质的模拟工具,旨在展示专业红队和高级持续性威胁 (APT) 所使用的底层网络通信、心跳信标和出站通信机制。
构建该项目是为了专门研究恶意通信信道的工作原理,以便安全分析师能够更好地配置终端检测与响应 (EDR) 系统和网络监控工具。
## 📐 架构与通信流程
该框架将控制循环拆分为两个独立的运行组件:
1. **C2 Server (`c2_server.py`):** 作为攻击者的监听基础设施。它开启一个 HTTP socket,为操作员提供交互式终端 shell 界面,将命令加入队列,并处理传入的渗出数据。
2. **C2 Beacon (`c2_beacon.py`):** 作为目标终端的植入体。它使用原生系统库保持极低的资源占用,以指定的“心跳”间隔进行签到,获取排队的指令,通过系统子进程执行它们,并返回执行的 payload。
### 网络循环:
* **出站轮询 (GET):** Beacon 每 5 秒向回环接口 (`127.0.0.1`) 发送一个 HTTP GET 请求,检查是否有指令。
* **命令执行:** 如果存在指令,Beacon 会接收该字符串并将其安全地传递给操作系统的后台 shell 环境。
* **数据渗出 (POST):** 命令的输出被打包进 HTTP POST 请求并发送回服务器,监听控制台随后将其打印给操作员。
## 🛠️ 技术特性与强化
* **零依赖占用:** 完全使用原生 Python 库 (`http.server`, `socketserver` 和 `urllib`) 构建。它不依赖任何第三方包,这模仿了现实世界中旨在绕过标准文件完整性或包监控警报的恶意软件。
* **弹性网络处理:** Beacon 包含通过 `urllib.error.URLError` 实现的自动错误处理功能。如果服务器离线或连接中断,Beacon 会静默地失败并放行,并在下一个心跳周期重试,而不会发生崩溃。
* **跨平台流聚合:** 使用 `subprocess.Popen` 并结合标准流 (`stdout + stderr`),以确保成功执行的字符串和系统错误消息都能被成功捕获并渗出。
## 🚀 本地实验环境部署与测试
要在隔离的本地测试环境中安全地运行和评估此模拟,请按照以下步骤操作:
### 1. 环境设置
将此仓库克隆到您的本地目录:
git clone https://github.com/pallavikhadse/python-c2-framework-simulation.git
cd python-c2-framework-simulation
### 2. 启动操作员控制台
打开一个终端窗口并执行监听服务器:
python c2_server.py
终端将初始化并进入监听状态:[] C2 Server active on port 8080...*
### 3. 激活目标 Beacon
打开第二个独立的终端窗口(或 VS Code 中的分屏)并运行 Beacon 脚本:
python c2_beacon.py
Beacon 将建立其心跳循环:[] Target Beacon Started. Initiating callback loop..*
### 4. 执行命令模拟
返回到您的服务器终端面板,该面板现在显示 `C2-Shell>` 提示符。输入一个原生系统发现命令并按回车键:
C2-Shell> whoami
[*] Command 'whoami' queued. Waiting for next beacon check-in...
[+] Exfiltrated Output From Target:
desktop-example\user
## 🛑 防御要点与 EDR 洞察
开发此模拟突出了防御工程和威胁狩猎的关键焦点:
Beaconing 检测:安全运营中心 (SOC) 可以通过查找来自单个终端发往外部地址的一致 HTTP 轮询间隔(例如,每 5 秒一次的流量)来检测此活动。
User-Agent 异常:标准 Python 脚本会发送默认的 HTTP User-Agent 字符串(例如,`Python-urllib/3.x`)。应编写 EDR 和代理规则,对发起出站 Web 请求的非浏览器 User-Agent 进行告警。
## ⚖️ 免责声明
本软件仅严格出于教育、安全研究和授权防御性基准测试的目的提供。它只能在受控的本地虚拟环境或经授权的沙箱网络中进行部署。
标签:AMSI绕过, C2框架, IP 地址批量处理, Python, 威胁检测, 安全仿真, 安全学习资源, 无后门, 逆向工具