2026-07-28 03:29:20 +08:00
2026-07-28 03:15:28 +08:00
2026-07-28 03:15:28 +08:00
2026-07-28 03:15:28 +08:00
2026-07-28 03:15:28 +08:00
2026-07-28 03:15:28 +08:00
2026-07-28 03:29:20 +08:00
2026-07-28 03:15:28 +08:00
2026-07-28 03:15:28 +08:00
2026-07-28 03:15:28 +08:00
2026-07-28 03:15:28 +08:00
2026-07-28 03:15:28 +08:00

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_<id>_[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 盘感染模块,检测新插入的磁盘,创建 .<Name> 隐藏目录,写入 AuToRun.inf 自动播放
11 Module 从自身二进制或 ./WITH 文件中按 START<Module>...END<Module> 标记提取加密块,使用 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:

self.url = "http://wytyh.space3v.work"
self.app_name = "Termination"
# 注:源码中 self.version 字段保持为 "4.0.0"(旧内部版本号)
#     当前实际内部版本为 4.2,见 README 头部说明,代码不再更新
self.testversion = "beta"

C2 端返回的 host.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 类在运行时按标记提取并解密:

_  = b""
_ += b"STARTBOOT"
_ += g.encrypt(b'{"StartUp":{...}}')     # 启动配置(JSON)
_ += b"ENDBOOT"
# _ += b"STARTNetworkProcessings"        # 可选:追加更多加密模块
# _ += g.encrypt(s)
# _ += b"ENDNetworkProcessings"

七、构建

主程序通过 PyInstaller 打包,配置见 Termination4.spec:

pyinstaller Termination4.spec
# 产物: dist/TERMINATION4.exe

测试程序:

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 中提出。

S
Description
Virus prank
Readme
1.4 MiB
0 Stars 1 Watchers 0 Forks
Languages
Python 99.8%
C 0.1%