freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

r77-Rootkit:一款功能强大的Ring 3 Rootkit
2021-05-22 15:10:59

关于r77-Rootkit

r77-Rootkit是一款功能强大的无文件Ring 3 Rootkit,并且带有完整的安全工具和持久化机制,可以实现进程、文件和网络连接等操作及任务的隐藏。

r77能够在所有进程中隐藏下列实体:

文件、目录、连接、命名管道、计划任务;

进程;

CPU用量;

注册表键&值;

服务;

TCP&UDP连接;

该工具兼容32位和64位版本的Windows 7以及Windows 10。

通过前缀隐藏

所有以“$77”为前缀命名的实体都将被隐藏:

配置系统

动态配置系统允许广大研究人员通过PID或抿成来隐藏进程,通过完整路径来隐藏文件系统,或通过指定端口隐藏TCP&UDP连接:

配置信息存储在“HKEY_LOCAL_MACHINE\SOFTWARE\$77config”中,并且可以在未提权状态下由任何进程写入。这个键的DACL被设置为可以给任意用户授予完整访问权。

“$77config”键在注册表编辑器被注入了Rootkit之后会自动隐藏。

安装工具

r77可以直接使用单独的“Install.exe”进行安装,安装工具会将r77服务在用户登录之前开启,后台进程会向所有当前正在运行以及后续生成的进程中注入命令。这里需要使用两个进程来分别注入32位和64位进程,这两个进程都可以使用配置系统和PID来进行隐藏。

“Uninstall.exe”程序负责将r77从系统中卸载掉,并解除Rootkit跟所有进程的绑定关系。

无文件持久化

Rootkit将驻留在系统内存中,不会将任何文件写入磁,这种机制是分多个阶段实现的。

阶段一

安装程序为32位和64位r77服务创建两个计划任务。计划任务确实需要存储名为$77svc32.job和$77svc64.job的文件,这是无文件概念的唯一例外。但是,一旦Rootkit运行,计划任务也会通过前缀隐藏。

计划任务将使用下列命令开启“powershell.exe”:

[Reflection.Assembly]::Load([Microsoft.Win32.Registry]::LocalMachine.OpenSubkey('SOFTWARE').GetValue('$77stager')).EntryPoint.Invoke($Null,$Null)

该命令是内联的,不需要.ps1脚本。这里,使用PowerShell的.NET Framework功能从注册表加载C#可执行文件并在内存中执行。由于命令行的最大长度为260(MAX_PATH),因此只有足够的空间执行简单的Assembly.Load().EntryPoint.Invoke()。

阶段二

执行的C#代码为stager,它将会使用Process Hollowing技术创建r77服务进程。r77服务是一个本地可执行文件,分别以32位和64位架构继续宁编译。父进程被设置为了winlogon.exe以增加欺骗性(模糊性)。另外,这两个进程被ID隐藏,在任务管理器中不可见。

磁盘上从未存储可执行文件或DLL。stager存储在注册表中,并从其资源加载r77服务可执行文件。

测试环境

测试控制台可以用来向单独进程注入r77,或接触进程跟Rootkit的绑定关系:

工具下载

r77 Rootkit 1.2.0.zip:点我下载】(解压密码:bytecode77)

项目地址

r77-Rootkit:GitHub传送门

参考资料

https://bytecode77.com/downloads/r77%20Rootkit%20Technical%20Documentation.pdf

https://bytecode77.com/r77-rootkit

# rootkit # 持久化
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录