Files
2026-07-28 03:21:34 +08:00

348 lines
13 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Termination4
> **开源 · 大规模 APT 武器病毒 · 教学示范**
>
> 一个面向网络安全教学与攻防研究的大型 APT(高级持续性威胁)武器化病毒开源项目。
> 原生基于 Python 实现,受限于 Python 运行效率,仅作为教学示范;
> 经 **Viper** 工具链改装后,可提供更接近真实 APT 行为特性的高质量教学效果。
---
## 一、项目简介
### 1.1 项目定位
Termination4(全称 *Termination Generally Use Cyber Virus Puppet Weapons*)是一个**开源的大规模 APT 武器病毒**项目,目标是完整复现真实 APT 攻击链路,供安全研究人员、红蓝对抗学习者、高校网络安全教学使用。
项目覆盖 APT 杀伤链的全部核心阶段:
- **初始投放与感染**(Initial Access & Infection)
- **持久化驻留**(Persistence)
- **命令与控制**(Command & Control, C2)
- **横向移动与传播**(Lateral Movement & Propagation)
- **信息收集与回传**(Collection & Exfiltration)
- **反检测与对抗**(Defense Evasion)
- **远程控制**(Remote Control)
### 1.2 为什么是"教学示范"
本项目**完整实现了 APT 的行为模型与代码结构**,但存在一个根本性瓶颈:
> **Python 的运行效率不足以支撑真实大规模 APT 武器的实战需求。**
具体表现为:
| 瓶颈维度 | Python 原生实现的局限 |
|:-|:-|
| **执行效率** | 解释执行,CPU 密集型任务(加密、压缩、图像处理)吞吐量低 |
| **内存占用** | 对象模型开销大,大规模并发感染时内存膨胀严重 |
| **启动速度** | 解释器初始化 + 模块导入耗时,影响投递后的快速响应 |
| **隐蔽性** | 进程特征明显,易于被 EDR 通过解释器特征识别 |
| **分发体积** | 携带完整运行时,体积大、特征强 |
因此,**Python 原生版本仅适合作为静态代码阅读、行为分析、攻防原理教学使用**,不具备实战部署能力。这恰好满足"教学示范"的核心诉求:**结构清晰、可读性高、行为可追溯、便于在隔离环境中观察分析。**
### 1.3 Viper 改装:从教学示范到高质量教学
为弥补 Python 效率瓶颈,项目引入 **Viper** 工具链进行改装。Viper 是一套将 Python 源码编译为高效本地代码的工具链,改装后带来以下教学增益:
| 改装方向 | Viper 改装后的教学价值 |
|:-|:-|
| **性能接近真实 APT** | 本地编译执行,CPU/IO 吞吐量显著提升,使教学演示中的时序、规模更贴近实战 |
| **行为时序还原** | 解决 Python 版因效率失真导致的"演示不像真 APT"问题,让学员观察到真实的感染速率、回传频率 |
| **二进制分析教学** | 编译产物可作为逆向工程样本,支撑二进制静态分析、特征码识别教学 |
| **反检测对抗教学** | 失去 Python 解释器特征后,可在受控环境中演示更真实的 EDR 对抗场景 |
| **跨阶段联调** | 高效执行使全链路联动(感染 → 驻留 → C2 → 回传)成为可演示的整体 |
> **教学建议**:静态代码阅读与原理讲解使用 Python 原生源码;动态行为演示与时序分析使用 Viper 改装版本。两者配合可获得最佳教学效果。
---
## 二、版本信息
- **当前版本**:4.2.0
- **编译版本**:407
- **作者**:Veyra
- **项目地址**:https://github.com/GVSADS/Termination4
- **配套项目**:https://github.com/GVSADS/Termination(未完全同步)
---
## 三、技术架构
### 3.1 核心技术栈
- **主语言**:Python 3.12
- **改装工具链**:Viper(Python → 本地代码编译)
- **打包编译**:Nuitka / PyInstaller
- **C 扩展构建**:CMake + Ninja
- **运行时 C 编译**:TinyCC(见 `TPcc/`,用于运行期快速编译 C 扩展)
- **网络通信**:Socket.IO / WebSocket
- **加密体系**:OpenSSL + 自研 GodKeys 弱对称加密
- **系统接口**:C 扩展(CDLL 调用)
### 3.2 APT 杀伤链模块映射
| 杀伤链阶段 | 对应模块 | 说明 |
|:-|:-|:-|
| **初始投放** | `.inf/Install/`、`.inf/SubstituteExecution/` | 安装器、被感染文件代偿启动 |
| **持久化** | `TLhread/Thread_AutoRun.py`、`.inf/Service/`、`.inf/RegistryOverride/` | 服务注册、注册表劫持、自启动 |
| **C2 通信** | `TLhread/Thread_TWNT.py`、`TPLib/T_SSHServer/`、`TFrp/` | Socket.IO 主通道、SSH 备用通道、内网穿透 |
| **横向传播** | `TLhread/Thread_InfectionWorker.py`、`.inf/TemplateMatcher/` | 移动设备感染、磁盘索引、快速模板匹配 |
| **信息收集** | `TLib/T_KeMouse.py`、`TPLib/T_WMI/`、`TPLib/T_Browser/`、`TPLib/T_DOC/` | 键鼠监听、WMI 系统信息、浏览器数据、文档采集 |
| **屏幕监控** | `TLhread/Thread_TWNTWork.py`(CoverScreen/ListenKM)、`T2SRFB/` | 截图回传、VNC 远程桌面 |
| **凭证窃取** | `TPLib/T_SigThiever/` | 数字签名窃取(SigThief 技术) |
| **反检测** | `TLhread/Thread_AntiVirusSoftware.py`、`TPLib/T_VMDISC/`、`ocr/` | 杀软识别、虚拟机检测、360 弹窗模板匹配 |
| **任务调度** | `TLhread/Thread_LW3T.py`、`TLib/T_LW3T.py` | 本地与网络任务表、定时调度 |
| **远程命令** | `TLhread/Thread_TWNTWork.py`(TWNETProcess) | Python / CMD / PowerShell 命令执行 |
| **更新机制** | `.inf/Update/`、`TLib/T_Version.py` | SHA256 校验、自动更新分发 |
### 3.3 工作线程模型
`TLhread/Thread_TWNTWork.py` 中定义了核心工作线程群:
- **MonitorWorker**:CPU、内存、网络流量硬件监控
- **ListenKMWorker**:键盘 / 鼠标事件捕获与屏幕区域截图
- **TWNTProcessSynchronousWorker**:进程与线程状态同步
- **TWNTCoverScreen**:定时截图与图像压缩上传
- **TWNETProcess**:远程命令解析与执行(Python / CMD / PowerShell)
---
## 四、项目结构
```
Termination4/
├── Termination4.py # 主程序入口
├── TerminationLib.py # 核心逻辑(面向对象)
├── TLhread/ # 线程 / 进程模块
│ ├── Thread_TWNT.py # 网络传输主线程
│ ├── Thread_TWNTWork.py # 工作线程群
│ ├── Thread_LW3T.py # 任务表线程
│ ├── Thread_InfectionWorker.py# 感染线程
│ ├── Thread_AntiVirusSoftware.py # 杀软对抗
│ ├── Thread_AutoRun.py # 自启动配置
│ ├── Thread_Process.py # 进程线程
│ ├── Thread_Web.py # 其他网络服务
│ └── Thread_EasterEgg.py # 彩蛋
├── TLib/ # 核心库
│ ├── T_GodKeys.py # GodKeys 自研加密
│ ├── T_FIO.py # 文件 I/O
│ ├── T_Process.py # 进程 / 线程支持
│ ├── T_KeMouse.py # 键鼠模拟
│ ├── T_AdministratorMode.py # 提权
│ ├── T_EXEConfig.py # 内嵌配置
│ ├── T_Version.py # 版本与更新
│ ├── T_WSD.py # WorkSpaceDeployer 工作目录部署
│ └── ...
├── TPLib/ # 高级扩展库
│ ├── T_SSHServer/ # SSH C2 通道
│ ├── T_WMI/ # WMI 信息收集
│ ├── T_VMDISC/ # 虚拟机检测
│ ├── T_Browser/ # 浏览器数据采集
│ ├── T_DOC/ # 文档采集
│ ├── T_SigThiever/ # 数字签名窃取
│ ├── T_Pyftpdlib/ # 内置 FTP 服务
│ ├── T_IndexEspionageProgram/ # 索引间谍程序
│ └── T_MCDrink/ # 扩展模块
├── T2SRFB/ # VNC 远程桌面(C++ 实现)
├── TFrp/ # 内网穿透(PyFrp)
├── TPcc/ # TinyCC 运行时 C 编译器
├── .inf/ # C 语言扩展
│ ├── Install/ # 安装程序
│ ├── Service/ # 核心服务
│ ├── Update/ # 更新程序
│ ├── RegistryOverride/ # 注册表重写
│ ├── SubstituteExecution/ # 被感染代偿启动
│ ├── TemplateMatcher/ # 快速模板比较
│ ├── Tools/ # 工具库
│ └── Test/ # 技术栈测试
├── TConfig/ # 配置文件
│ ├── version.ini # 版本信息
│ ├── EXEConfig.bin # 加密内嵌配置
│ └── EXEConfig.dict # 字典格式配置
├── TLUI/ # 界面相关代码
├── SSLib/ # OpenSSL 动态链接库
├── static/ # 静态资源
├── ocr/ # 360 杀软弹窗匹配模板
├── Art/ # 美术资源
├── Test/ # 技术栈测试
├── Prompt/ # AI 提示词
├── setup_nuitka.py # Nuitka 编译脚本
├── setup_pack.py # PyInstaller 打包脚本
└── script.spec # PyInstaller 清单
```
---
## 五、编译与运行
### 5.1 Python 原生模式(教学阅读用)
```bash
python Termination4.py
```
> 仅推荐用于源码阅读、行为分析、隔离环境下的功能验证。
### 5.2 Nuitka 编译模式
```bash
python setup_nuitka.py
```
### 5.3 PyInstaller 打包模式
```bash
python setup_pack.py
```
### 5.4 Viper 改装模式(高质量教学用)
使用 Viper 工具链将 Python 源码编译为本地代码,具体使用方式参见 Viper 工具链文档。
> Viper 改装版本适合用于:动态行为演示、时序分析、二进制逆向教学、反检测对抗教学。
---
## 六、配置说明
### 6.1 服务器配置
程序启动时从以下地址拉取 C2 配置:
- `http://wytyh.space3v.work/T.json`
- `https://raw.githubusercontent.com/GVSADS/Termination/refs/heads/main/T.json`
配置文件格式:
```json
{
"X": "https",
"Host": "server.example.com",
"Port": 443
}
```
### 6.2 本地配置
| 文件 | 作用 |
|:-|:-|
| `TConfig/version.ini` | 版本信息 |
| `TConfig/EXEConfig.bin` | 加密内嵌配置(GodKeys 序列化) |
| `TConfig/EXEConfig.dict` | 字典格式配置 |
### 6.3 调试 REPL
程序内置 REPL 调试服务器:
- **地址**:`localhost:12345`
- **功能**:远程执行 Python 代码
- **状态**:Python 模式下启用(编译版本默认关闭)
---
## 七、功能特性
### 7.1 网络功能
- Socket.IO 实时通信与自动重连
- WebSocket 加密传输
- SSH / FTP 备用通道
- 内网穿透(PyFrp)
### 7.2 监控功能
- 系统资源(CPU / 内存 / 网络)监控
- 进程与线程状态监控
- 屏幕截图与 VNC 远程桌面
- 键鼠输入监听
### 7.3 任务管理
- 本地与网络任务表(LW3T)
- 定时任务调度
- 任务执行回调与追踪
### 7.4 系统集成
- Windows 服务集成
- 注册表操作与劫持
- 进程权限管理
- 文件系统操作
### 7.5 对抗能力
- 杀毒软件识别(含 360 弹窗模板匹配)
- 虚拟机与沙箱检测
- 数字签名窃取
---
## 八、开发环境
### 8.1 系统要求
- **操作系统**:Windows 10 / 11
- **Python 版本**:3.12+(避免使用内置 3.10)
- **权限要求**:管理员权限
- **C 编译器**:MSVC / MinGW(用于 C 扩展)
### 8.2 主要依赖
- `socketio-client`:实时通信
- `requests`:HTTP 客户端
- `psutil`:系统监控
- `pynput`:输入监听
- `cryptography`:加密
- `pillow`:图像处理
- `pywin32`:Windows API
---
## 九、安全与法律声明
> **⚠️ 严肃警告**
1. **本项目仅用于网络安全教学、攻防研究与隔离环境测试。**
2. **严禁将本项目用于任何未经授权的真实网络环境或真实目标。**
3. **使用者须遵守所在国家 / 地区的网络安全法律法规。** 在中华人民共和国境内,未经授权传播、使用病毒木马程序违反《中华人民共和国网络安全法》《刑法》第二百八十五条、第二百八十六条等相关规定。
4. **运行前必须在完全隔离的环境中部署**(独立虚拟机、断网、无敏感数据)。
5. **作者不对任何违规使用后果承担责任。**
### 教学使用建议
- ✅ 在隔离虚拟机中观察 APT 行为链
- ✅ 阅读源码理解各攻击阶段实现原理
- ✅ 在红蓝对抗训练中作为红队道具(受控环境)
- ✅ 作为逆向工程与特征识别的样本
- ❌ 严禁连接公网或他人网络
- ❌ 严禁投递至真实主机
- ❌ 严禁用于勒索、破坏、窃密等违法目的
---
## 十、更新机制
1. 检查远程版本 SHA256
2. 下载更新文件
3. 验证文件完整性
4. 执行更新程序(`.inf/Update/`)
---
## 十一、技术支持
- **项目地址**:https://github.com/GVSADS/Termination4
- **配套仓库**:https://github.com/GVSADS/Termination
- **版本**:4.2.0
- **编译次数**:407
- **作者**:Veyra
---
## 十二、许可证
本项目仅供学习与研究使用,不得用于商业用途或任何违法违规用途。使用即代表您已阅读并同意上述安全与法律声明。
```
本项目为教育用途开源项目
Copyright (c) Veyra
Educational Use Only
```