一个基于Ring 3 的rootkit

admin 2024年5月7日11:27:17评论7 views字数 1673阅读5分34秒阅读模式

首先先科普用户态内核态

两者的在指令上的区别  

一般来说,ring0权限下开放的指令有:IO读写、网卡访问、申请内存、访问硬件资源。

一般来说,ring3权限下开放的指令有:普通的计算指令等

两者在空间权限的区别

用户态和内核态的栈(用来储存函数 或者 形参的地方)是不同的,分别是用户栈和内核栈。

用户态可以访问虚拟内存0-3G的空间,内核态访问0-4G的空间

如图所示 我们可以看到内核态,它可以通过驱动的方式,复写物理内存

一个基于Ring 3 的rootkit

下面来介绍这款Rootkit软件

R77 是一个 Ring 3 rootkit,它隐藏了所有内容:

  • 文件、目录

  • 进程和 CPU/GPU 使用情况

  • 注册表项和值

  • 服务业

  • TCP 和 UDP 连接

  • 交汇点、命名管道、计划任务

按前缀隐藏

开头的一切都是隐藏的。"$77"

一个基于Ring 3 的rootkit

组态系统

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

一个基于Ring 3 的rootkit

该配置位于没有提升权限的任何进程中,并且可由任何进程写入。此密钥的 DACL 设置为向任何用户授予完全访问权限。HKEY_LOCAL_MACHINESOFTWARE$77config

此外,密钥被 rootkit 隐藏。$77config

安装

r77 的部署只需要一个文件:.执行在系统上保留 r77 并注入所有正在运行的进程。Install.exe

Uninstall.exe从系统中完全、优雅地移除 R77。

Install.shellcode是安装程序的 shellcode 等效项。这样,安装可以集成而不会掉落。shellcode 可以简单地加载到内存中,强制转换为函数指针,然后执行:Install.exe

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 的每个阶段。该文档有一章详细介绍了每个阶段的实现。

一个基于Ring 3 的rootkit

AV/EDR 规避

目前正在使用几种 AV 和 EDR 规避技术:

  • AMSI旁路:PowerShell 内联脚本通过修补禁用 AMSI 以始终返回 。多态性用于逃避 AMSI 旁路的特征检测。amsi.dll!AmsiScanBufferAMSI_RESULT_CLEAN

  • DLL 解钩:由于 EDR 解决方案通过挂钩来监控 API 调用,因此需要通过从磁盘加载新副本并恢复原始部分来删除这些挂钩。否则,将检测到工艺空心化。ntdll.dllntdll.dll

测试环境

测试控制台是一个有用的工具,用于将 r77 注入到各个进程中并测试配置系统。

一个基于Ring 3 的rootkit

安装

install.exe是把r77注入到所有能注入的进程和启动系统rootkit的,所以安装完可以把程序删了,实现无文件启动

test console是测试r77的功能,比如注入r77或隐藏进程,但功能只有安装r77以后才能用

下载解压以后直接点击install.exe安装就行了

一个基于Ring 3 的rootkit r77 Rootkit 1.5.2.zip (ZIP Password: bytecode77)
一个基于Ring 3 的rootkit Technical Documentation

使用效果

文件隐藏

一个基于Ring 3 的rootkit

进程隐藏

一个基于Ring 3 的rootkit

服务隐藏

一个基于Ring 3 的rootkit

原文始发于微信公众号(安全开发炒面):一个基于Ring 3 的rootkit

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月7日11:27:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一个基于Ring 3 的rootkithttp://cn-sec.com/archives/2707741.html

发表评论

匿名网友 填写信息