13 KiB
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 原生模式(教学阅读用)
python Termination4.py
仅推荐用于源码阅读、行为分析、隔离环境下的功能验证。
5.2 Nuitka 编译模式
python setup_nuitka.py
5.3 PyInstaller 打包模式
python setup_pack.py
5.4 Viper 改装模式(高质量教学用)
使用 Viper 工具链将 Python 源码编译为本地代码,具体使用方式参见 Viper 工具链文档。
Viper 改装版本适合用于:动态行为演示、时序分析、二进制逆向教学、反检测对抗教学。
六、配置说明
6.1 服务器配置
程序启动时从以下地址拉取 C2 配置:
http://wytyh.space3v.work/T.jsonhttps://raw.githubusercontent.com/GVSADS/Termination/refs/heads/main/T.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
九、安全与法律声明
⚠️ 严肃警告
- 本项目仅用于网络安全教学、攻防研究与隔离环境测试。
- 严禁将本项目用于任何未经授权的真实网络环境或真实目标。
- 使用者须遵守所在国家 / 地区的网络安全法律法规。 在中华人民共和国境内,未经授权传播、使用病毒木马程序违反《中华人民共和国网络安全法》《刑法》第二百八十五条、第二百八十六条等相关规定。
- 运行前必须在完全隔离的环境中部署(独立虚拟机、断网、无敏感数据)。
- 作者不对任何违规使用后果承担责任。
教学使用建议
- ✅ 在隔离虚拟机中观察 APT 行为链
- ✅ 阅读源码理解各攻击阶段实现原理
- ✅ 在红蓝对抗训练中作为红队道具(受控环境)
- ✅ 作为逆向工程与特征识别的样本
- ❌ 严禁连接公网或他人网络
- ❌ 严禁投递至真实主机
- ❌ 严禁用于勒索、破坏、窃密等违法目的
十、更新机制
- 检查远程版本 SHA256
- 下载更新文件
- 验证文件完整性
- 执行更新程序(
.inf/Update/)
十一、技术支持
- 项目地址:https://github.com/GVSADS/Termination4
- 配套仓库:https://github.com/GVSADS/Termination
- 版本:4.2.0
- 编译次数:407
- 作者:Veyra
十二、许可证
本项目仅供学习与研究使用,不得用于商业用途或任何违法违规用途。使用即代表您已阅读并同意上述安全与法律声明。
本项目为教育用途开源项目
Copyright (c) Veyra
Educational Use Only