From 2931ddafd4e5ef9ca1bfc348625d161e36990aad Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Tue, 28 Jul 2026 03:29:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20readme.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- readme.md | 347 +++++++++++++++++++++++++++--------------------------- 1 file changed, 174 insertions(+), 173 deletions(-) diff --git a/readme.md b/readme.md index 0473908..cc4fc00 100644 --- a/readme.md +++ b/readme.md @@ -1,173 +1,174 @@ -# Termination - -> **对外版本**: 4.0 -> **内部版本**: 4.2 -> **平台**: Windows -> **作者**: 未知(原项目标注 `self.author = None`) - -## 零、关于本项目 - -> **本项目仅是一个玩具,已永久停止维护。** - -版本对应关系(仅作历史记录): - -| 对外版本 | 内部版本 | 状态 | -| :--- | :--- | :--- | -| 3.0 | 4.0 | 已停止维护 | -| 4.0 | 4.2 | 已停止维护(本仓库当前快照) | - -仓库内的源码与文档对应 **对外 4.0 / 内部 4.2**。本项目不再接收任何新功能、Issue 或 PR,所有 `Termination3.py` 中标注的 TODO / `pass` 不会被回填。 - -## 一、项目简介 - -**Termination** 是一个使用 Viper 编写的 Windows 远程管理与控制系统,采用 C/S 架构,通过 socketio 与控制端 (C2) 进行长连接通信,接收并执行远程下发的 Viper 脚本或 cmd 命令。系统包含自我提权、自启动、U 盘感染、模块化加载、错误屏幕等模块。 - -> ⚠️ **免责声明**: 本项目仅供安全研究、合规的远程运维与教学演示使用。未经授权对他人设备进行控制属于违法行为,使用本项目产生的一切后果由使用者自行承担。 - -## 二、目录结构 - -``` -Termination3/ -├── README.md # 本文件 -├── readme.md # 旧版代码片段说明 -├── Termination3.py # 主程序入口,所有核心模块都在此文件 -├── killer.py # 360 安全卫士对抗/隐藏窗口实验脚本 -├── Netio.py # 早期版本的网络处理类(NetworkProcessings) -├── script.py # 引导块 (STARTBOOT/ENDBOOT) 加密/打包工具 -├── WITH # 加密后的启动引导块 -├── Termination4.spec # PyInstaller 打包配置(主程序) -├── TEST.spec # PyInstaller 打包配置(测试程序) -│ -├── Errors/ # 错误/锁屏展示界面 -│ ├── AppleBoot.py # 仿 Apple "联系开发者" 风格蓝屏 -│ ├── ERROR_HTML.py # HTML 错误页 -│ └── FlowerScreen.py # 花卉背景屏幕 -│ -├── Invisible/ # 隐藏/自解密加载相关 -│ ├── Invisible.py # pickle + Fernet 加密 shellcode 加载器 -│ ├── InvisibleRun.py # 运行时解密脚本 -│ └── InvisibleRun.spec # PyInstaller 打包配置 -│ -└── SCRIPT/ # 微型 C 编译工具链(用于编译 native 载荷) - ├── MAKE.BAT # 编译批处理 - ├── nask.exe # NASM 风格汇编器 - ├── gas2nask.exe # GAS -> nask 转换器 - ├── cc1.exe # C 编译器前端 - ├── ld.exe # 链接器 - ├── golibc.lib # Go 风格 C 运行库 - ├── w32clibc.lib # Win32 C 运行库 - ├── libmingw.lib # MinGW 兼容库 - ├── sjisconv.exe # 字符编码转换 - ├── 1.c / 1.ca / 1.gas / 1.nas # 示例 C/汇编源与中间产物 - ├── 1.obj / 1.map # 目标文件与符号表 - └── makefile # make 描述文件(空) -``` - -## 三、核心模块说明(均位于 `Termination3.py`) - -| 序号 | 名称 | 作用 | -| :--- | :--- | :--- | -| 1 | `sys / os / ctypes / winreg / win32api / requests / socketio / tkinter` 等 | 通过同名空类统一导入,提供 Python 标准库与第三方库的扁平命名空间 | -| 2 | `ShellExecuteInfo` + `elevate` | 通过 `shell32.ShellExecuteEx` 以 `runas` 提权,失败时抛 `WinError` | -| 3 | `asyncs` | 装饰器,把同步函数放到 `threading.Thread` 中执行 | -| 4 | `FIO` | 文本/二进制文件读写的单例封装,支持 `openw / opena / openr` 三种模式 | -| 5 | `LockMe` | 基于 `%TEMP%` 下的 `Lock__[pid].lock` 文件实现进程互斥,使用 `atexit` 自动清理 | -| 6 | `Popen` | 同步封装 `subprocess.Popen` | -| 7 | `GodKeys` | 基于 hex 翻转 + Base64 + pickle 的对称加密(密钥 `QWERTYUIOP...=`) | -| 8 | `AppRun` | 远程命令执行器,支持 `python` (`exec`) 与 `cmd` (`cmd.exe /c`) 两种类型,把执行结果回传 C2 | -| 9 | `NetworkProcessings` | 通过 socketio 长连接 C2,提供 `Wait_System / Wait_Web / Try_To_System` 重连逻辑,下发命令通过 `AppRun` 执行 | -| 10 | `InFect` | U 盘感染模块,检测新插入的磁盘,创建 `.` 隐藏目录,写入 `AuToRun.inf` 自动播放 | -| 11 | `Module` | 从自身二进制或 `./WITH` 文件中按 `START...END` 标记提取加密块,使用 `GodKeys` 解密后 `exec` | -| 12 | `Termination` | 顶层 `main` 控制器:提权 → 加锁 → 复制到 `%WINDIR%\.Termination` → 启动感染 → 加载模块 → 启动网络 | - -## 四、运行流程 - -``` -[启动] - └─ Termination.__init__() - ├─ InIt_Admin() # 提权 - ├─ InIt_Value() # 初始化版本/路径/锁对象 - ├─ lock.lock() # 进程互斥 - ├─ CopyToSystem() # 复制到 %WINDIR%\.Termination - ├─ InIt_InFect() # 启动 U 盘感染后台线程 - └─ SetRun() (异步) - ├─ Module.Run() # 解析并执行 WITH 中的加密模块 - └─ NetworkProcessings.Polling() # 与 C2 建立 socketio 长连接 -``` - -## 五、配置与 C2 协议 - -默认 C2 地址写在 `Termination.InIt_Value`: - -```python -self.url = "http://wytyh.space3v.work" -self.app_name = "Termination" -# 注:源码中 self.version 字段保持为 "4.0.0"(旧内部版本号) -# 当前实际内部版本为 4.2,见 README 头部说明,代码不再更新 -self.testversion = "beta" -``` - -C2 端返回的 `host.json` 至少需要包含: - -```json -{ - "Host": "http://your-c2-host:port", - "NetWork": { - "Dir": "/TApi/", - "Command": "Command.api", - "CommandSend": "CommandSend.api", - "Test": "Test.api" - } -} -``` - -客户端标识头:`User-Agent: Termination/4.0 (Termination4)`,心跳字段:`PID / MAC / Name`。 - -## 六、引导块 (`script.py` / `WITH`) - -`script.py` 用于把任意 Viper 源码加密并拼成 `STARTBOOT ... ENDBOOT` 格式的引导块,写入 `WITH` 或可执行文件尾部。`Module` 类在运行时按标记提取并解密: - -```python -_ = b"" -_ += b"STARTBOOT" -_ += g.encrypt(b'{"StartUp":{...}}') # 启动配置(JSON) -_ += b"ENDBOOT" -# _ += b"STARTNetworkProcessings" # 可选:追加更多加密模块 -# _ += g.encrypt(s) -# _ += b"ENDNetworkProcessings" -``` - -## 七、构建 - -主程序通过 PyInstaller 打包,配置见 `Termination4.spec`: - -```bash -pyinstaller Termination4.spec -# 产物: dist/TERMINATION4.exe -``` - -测试程序: - -```bash -pyinstaller TEST.spec -``` - -## 八、依赖 - -| 类别 | 包名 | -| :--- | :--- | -| 标准库 | `sys / os / ctypes / winreg / subprocess / threading / socket / time / hashlib / uuid / random / shutil / re / json / pickle / base64 / copy / platform / tkinter / traceback / atexit` | -| 第三方 | `requests`, `socketio`, `psutil`, `keyboard`, `pywin32` (`win32api / win32gui / win32con / win32process`), `cryptography`(Invisible 使用) | -| 系统 | Windows 7+ (依赖 `shell32` / `kernel32` / `advapi32` 等 Win32 API) | - -## 九、注意事项 - -1. **管理员权限**: 程序需要管理员权限运行,否则 `elevate` 会触发 UAC 重新启动自身。 -2. **杀软对抗**: `killer.py` 是早期的 360 隐藏窗口实验,目前未集成进主流程;在现代 EDR 下行为会被拦截。 -3. **网络重连**: `NetworkProcessings.Try_To_System` 是无限重连循环,程序不会主动退出。 -4. **U 盘传播**: `InFect` 会监控 `psutil.disk_partitions` 的变化,发现新磁盘立即写入 `AuToRun.inf`,请勿在生产环境运行。 -5. **调试建议**: 静态分析优先,使用 `printf` 断点定位崩溃步骤,不要用动态调试器直接跟进 `AppRun._get` 中的 `exec`。 - ---- - -如需补充功能、修订协议或新增 C2 模板,请在 Issues 中提出。 +# Termination + +> **对外版本**: 4.0 +> **内部版本**: 4.2 +> **平台**: Windows +> **作者**: 未知(原项目标注 `self.author = None`) + +## 零、关于本项目 + +> **本项目仅是一个玩具,已永久停止维护。** + +版本对应关系(仅作历史记录): + +| 对外版本 | 内部版本 | 状态 | +| :--- | :--- | :--- | +| 3.0 | 4.0 | 已停止维护 | +| 4.0 | 4.2 | 已停止维护(本仓库当前快照) | + +仓库内的源码与文档对应 **对外 4.0 / 内部 4.2**。本项目不再接收任何新功能、Issue 或 PR,所有 `Termination3.py` 中标注的 TODO / `pass` 不会被回填。 + +## 一、项目简介 + +**Termination** 是一个使用 Viper 编写的 Windows 远程管理与控制系统,采用 C/S 架构,通过 socketio 与控制端 (C2) 进行长连接通信,接收并执行远程下发的 Viper 脚本或 cmd 命令。系统包含自我提权、自启动、U 盘感染、模块化加载、错误屏幕等模块。 +这是使用 Python 所写的玩具,效率并不高。 + +> ⚠️ **免责声明**: 本项目仅供安全研究、合规的远程运维与教学演示使用。未经授权对他人设备进行控制属于违法行为,使用本项目产生的一切后果由使用者自行承担。 + +## 二、目录结构 + +``` +Termination3/ +├── README.md # 本文件 +├── readme.md # 旧版代码片段说明 +├── Termination3.py # 主程序入口,所有核心模块都在此文件 +├── killer.py # 360 安全卫士对抗/隐藏窗口实验脚本 +├── Netio.py # 早期版本的网络处理类(NetworkProcessings) +├── script.py # 引导块 (STARTBOOT/ENDBOOT) 加密/打包工具 +├── WITH # 加密后的启动引导块 +├── Termination4.spec # PyInstaller 打包配置(主程序) +├── TEST.spec # PyInstaller 打包配置(测试程序) +│ +├── Errors/ # 错误/锁屏展示界面 +│ ├── AppleBoot.py # 仿 Apple "联系开发者" 风格蓝屏 +│ ├── ERROR_HTML.py # HTML 错误页 +│ └── FlowerScreen.py # 花卉背景屏幕 +│ +├── Invisible/ # 隐藏/自解密加载相关 +│ ├── Invisible.py # pickle + Fernet 加密 shellcode 加载器 +│ ├── InvisibleRun.py # 运行时解密脚本 +│ └── InvisibleRun.spec # PyInstaller 打包配置 +│ +└── SCRIPT/ # 微型 C 编译工具链(用于编译 native 载荷) + ├── MAKE.BAT # 编译批处理 + ├── nask.exe # NASM 风格汇编器 + ├── gas2nask.exe # GAS -> nask 转换器 + ├── cc1.exe # C 编译器前端 + ├── ld.exe # 链接器 + ├── golibc.lib # Go 风格 C 运行库 + ├── w32clibc.lib # Win32 C 运行库 + ├── libmingw.lib # MinGW 兼容库 + ├── sjisconv.exe # 字符编码转换 + ├── 1.c / 1.ca / 1.gas / 1.nas # 示例 C/汇编源与中间产物 + ├── 1.obj / 1.map # 目标文件与符号表 + └── makefile # make 描述文件(空) +``` + +## 三、核心模块说明(均位于 `Termination3.py`) + +| 序号 | 名称 | 作用 | +| :--- | :--- | :--- | +| 1 | `sys / os / ctypes / winreg / win32api / requests / socketio / tkinter` 等 | 通过同名空类统一导入,提供 Python 标准库与第三方库的扁平命名空间 | +| 2 | `ShellExecuteInfo` + `elevate` | 通过 `shell32.ShellExecuteEx` 以 `runas` 提权,失败时抛 `WinError` | +| 3 | `asyncs` | 装饰器,把同步函数放到 `threading.Thread` 中执行 | +| 4 | `FIO` | 文本/二进制文件读写的单例封装,支持 `openw / opena / openr` 三种模式 | +| 5 | `LockMe` | 基于 `%TEMP%` 下的 `Lock__[pid].lock` 文件实现进程互斥,使用 `atexit` 自动清理 | +| 6 | `Popen` | 同步封装 `subprocess.Popen` | +| 7 | `GodKeys` | 基于 hex 翻转 + Base64 + pickle 的对称加密(密钥 `QWERTYUIOP...=`) | +| 8 | `AppRun` | 远程命令执行器,支持 `python` (`exec`) 与 `cmd` (`cmd.exe /c`) 两种类型,把执行结果回传 C2 | +| 9 | `NetworkProcessings` | 通过 socketio 长连接 C2,提供 `Wait_System / Wait_Web / Try_To_System` 重连逻辑,下发命令通过 `AppRun` 执行 | +| 10 | `InFect` | U 盘感染模块,检测新插入的磁盘,创建 `.` 隐藏目录,写入 `AuToRun.inf` 自动播放 | +| 11 | `Module` | 从自身二进制或 `./WITH` 文件中按 `START...END` 标记提取加密块,使用 `GodKeys` 解密后 `exec` | +| 12 | `Termination` | 顶层 `main` 控制器:提权 → 加锁 → 复制到 `%WINDIR%\.Termination` → 启动感染 → 加载模块 → 启动网络 | + +## 四、运行流程 + +``` +[启动] + └─ Termination.__init__() + ├─ InIt_Admin() # 提权 + ├─ InIt_Value() # 初始化版本/路径/锁对象 + ├─ lock.lock() # 进程互斥 + ├─ CopyToSystem() # 复制到 %WINDIR%\.Termination + ├─ InIt_InFect() # 启动 U 盘感染后台线程 + └─ SetRun() (异步) + ├─ Module.Run() # 解析并执行 WITH 中的加密模块 + └─ NetworkProcessings.Polling() # 与 C2 建立 socketio 长连接 +``` + +## 五、配置与 C2 协议 + +默认 C2 地址写在 `Termination.InIt_Value`: + +```python +self.url = "http://wytyh.space3v.work" +self.app_name = "Termination" +# 注:源码中 self.version 字段保持为 "4.0.0"(旧内部版本号) +# 当前实际内部版本为 4.2,见 README 头部说明,代码不再更新 +self.testversion = "beta" +``` + +C2 端返回的 `host.json` 至少需要包含: + +```json +{ + "Host": "http://your-c2-host:port", + "NetWork": { + "Dir": "/TApi/", + "Command": "Command.api", + "CommandSend": "CommandSend.api", + "Test": "Test.api" + } +} +``` + +客户端标识头:`User-Agent: Termination/4.0 (Termination4)`,心跳字段:`PID / MAC / Name`。 + +## 六、引导块 (`script.py` / `WITH`) + +`script.py` 用于把任意 Viper 源码加密并拼成 `STARTBOOT ... ENDBOOT` 格式的引导块,写入 `WITH` 或可执行文件尾部。`Module` 类在运行时按标记提取并解密: + +```python +_ = b"" +_ += b"STARTBOOT" +_ += g.encrypt(b'{"StartUp":{...}}') # 启动配置(JSON) +_ += b"ENDBOOT" +# _ += b"STARTNetworkProcessings" # 可选:追加更多加密模块 +# _ += g.encrypt(s) +# _ += b"ENDNetworkProcessings" +``` + +## 七、构建 + +主程序通过 PyInstaller 打包,配置见 `Termination4.spec`: + +```bash +pyinstaller Termination4.spec +# 产物: dist/TERMINATION4.exe +``` + +测试程序: + +```bash +pyinstaller TEST.spec +``` + +## 八、依赖 + +| 类别 | 包名 | +| :--- | :--- | +| 标准库 | `sys / os / ctypes / winreg / subprocess / threading / socket / time / hashlib / uuid / random / shutil / re / json / pickle / base64 / copy / platform / tkinter / traceback / atexit` | +| 第三方 | `requests`, `socketio`, `psutil`, `keyboard`, `pywin32` (`win32api / win32gui / win32con / win32process`), `cryptography`(Invisible 使用) | +| 系统 | Windows 7+ (依赖 `shell32` / `kernel32` / `advapi32` 等 Win32 API) | + +## 九、注意事项 + +1. **管理员权限**: 程序需要管理员权限运行,否则 `elevate` 会触发 UAC 重新启动自身。 +2. **杀软对抗**: `killer.py` 是早期的 360 隐藏窗口实验,目前未集成进主流程;在现代 EDR 下行为会被拦截。 +3. **网络重连**: `NetworkProcessings.Try_To_System` 是无限重连循环,程序不会主动退出。 +4. **U 盘传播**: `InFect` 会监控 `psutil.disk_partitions` 的变化,发现新磁盘立即写入 `AuToRun.inf`,请勿在生产环境运行。 +5. **调试建议**: 静态分析优先,使用 `printf` 断点定位崩溃步骤,不要用动态调试器直接跟进 `AppRun._get` 中的 `exec`。 + +--- + +如需补充功能、修订协议或新增 C2 模板,请在 Issues 中提出。