介绍一个基于Ring 3 的rootkit

news2024/9/20 15:02:12

首先先科普用户态内核态

两者的在指令上的区别  

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

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

两者在空间权限的区别

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

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

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

图片

下面来介绍这款Rootkit软件

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

  • 文件、目录

  • 进程和 CPU/GPU 使用情况

  • 注册表项和值

  • 服务业

  • TCP 和 UDP 连接

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

按前缀隐藏

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

图片

组态系统

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

图片

该配置位于没有提升权限的任何进程中,并且可由任何进程写入。此密钥的 DACL 设置为向任何用户授予完全访问权限。HKEY_LOCAL_MACHINE\SOFTWARE\$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 的每个阶段。该文档有一章详细介绍了每个阶段的实现。

图片

AV/EDR 规避

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

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

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

测试环境

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

图片

安装

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

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

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

 r77 Rootkit 1.5.2.zip (ZIP Password: bytecode77)
 

 Technical Documentation

使用效果

文件隐藏

图片

进程隐藏

图片

服务隐藏

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1987152.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

装修装饰行业4G/5G无线视频监控技术方案

目录 一、引言 二、技术优势 三、系统方案设计 1、系统架构 2、监控前端 3、监控中心 四、系统功能 1、基本功能 (1)实时视频监控 (2)录像存储回放 (3)报警联动 (4)语音…

超越sd3!比肩Midjourney-v6?AI绘画大模型FLUX1.0详细评测与本地部署方法(附安装文件)

​ FLUX.1模型是什么? FLUX模型是一个开源的AI图像生成模型,由黑森林工作室研发。 堪比sd3以及Midjourney-v6 背景/backdrop 黑森林工作室(Black Forest Labs)由前Stability AI核心成员团队成立,专注于开发高级生成式…

脚本:自动生成精准的Oracle AWR报告

很多朋友把AWR报告发过来让我帮忙分析Oracle数据库的性能,但很多报告都有一个共同的缺陷:就是这些报告覆盖的时间范围太广,导致性能问题的数据被严重稀释。 英文原文:Script: Generating Focused AWR Reports 为了解决这个问题&a…

多模态大模型 intern_vl 2.0版本解读

目录 更大规模的语言模型 多模态输入 多任务输出 性能表现 github:GitHub - OpenGVLab/InternVL: [CVPR 2024 Oral] InternVL Family: A Pioneering Open-Source Alternative to GPT-4o. 接近GPT-4o表现的可商用开源多模态对话模型 论文:https://arxiv.org/pdf…

TypeScript循环2

循环2 for(开始条件&#xff0c;结束条件&#xff0c;变量更新){} for使程序能够重复执行某段代码&#xff0c;直至满足特定条件为至。 // 打印1~100for(let i:number0;i<100;i){console.log(i);}死循环,程序中要避免出现 即使需要你使用&#xff0c;也需要有退出条件 …

Windows系统cmd黑窗口cd命令不起作用的解决办法

一般这种情况是通过win r 输入cmd唤起得窗口是在c盘&#xff0c;而想切换到其他磁盘目录却发现命令并不生效&#xff0c;例如&#xff1a; 解决的办法就是先切换磁盘&#xff0c;再cd到文件夹目录&#xff0c;比如我切换到E盘&#xff0c;就是E&#xff1a; 然后再cd目标目录…

探索Linux世界之Linux环境开发工具的使用

一、yum -- Linux软件包管理器 1、什么是yum yum(Yellow dog Updater, Modified)&#xff1a; 是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上。 在Linux上安装软件的方式&#xff1a; 源代码直接安装&#xff1a;在Linux下安装软件, 一个通…

存储实验:FC-SAN实验与光交配置(GUICLI)

目录 目的环境介绍拓扑环境规划环境解释 实验流程0. FC-SAN存储 WWN查看1. FC-SAN业务主机&#xff08;linux&#xff09;配置1.1 IP配置1.2 查看wwn号 2. 光交配置2.1 GUI2.1.1 跳板机配置2.1.1.1 配置IP2.1.1.2 安装jdk2.1.1.3 浏览器登录光交IP 2.1.2 光交-Alias配置2.1.2.0…

【目标检测类】YOLOv5网络模型结构基本原理讲解

1. 基本概念 YOLOv5模型结构主要包括以下组成部分&#xff1a;‌ 输入端&#xff1a;‌YOLOv5的输入端采用了多种技术来增强模型的性能&#xff0c;‌包括Mosaic数据增强、‌自适应锚框计算、‌以及自适应图片缩放。‌这些技术有助于提高模型的泛化能力和适应不同尺寸的输入图…

springboot+vue+mybatis汽车租赁管理+PPT+论文+讲解+售后

汽车租赁系统是针对目前汽车租赁管理的实际需求&#xff0c;从实际工作出发&#xff0c;对过去的汽车租赁管理系统存在的问题进行分析&#xff0c;完善客户的使用体会。采用计算机系统来管理信息&#xff0c;取代人工管理模式&#xff0c;查询便利&#xff0c;信息准确率高&…

Unity补完计划 之 SpriteRender

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正 1.SpriteRenderer是什么 渲染精灵用的&#xff0c;是渲染的核心组件&#xff0c;有许多重要参数所以要详细讲一讲 Spri…

大语言模型VRAM估算指南和工具介绍

为了有效地执行大型语言模型(LLM)推理&#xff0c;了解GPU VRAM需求至关重要。VRAM对于存储模型参数、激活、处理批量大小和精度设置至关重要。估算VRAM使用情况的基本公式是:参数数(精度/ 8) 1.2。现代优化技术和框架可以进一步减少VRAM的需求。像VRAM Estimator, Hugging Fac…

Harbor 仓库一键安装

文章目录 一、场景说明二、脚本职责三、参数说明四、操作示例五、注意事项 一、场景说明 本自动化脚本旨在为提高研发、测试、运维快速部署应用环境而编写。 脚本遵循拿来即用的原则快速完成 CentOS 系统各应用环境部署工作。 统一研发、测试、生产环境的部署模式、部署结构、…

H5页面返回时提示用户返回将丢失信息

效果图 代码&#xff0c;组件封装弹窗 <template><div><van-popup v-model"show" :close-on-click-overlay"false" class"popup"><div class"content"><div class"title">提示:</div>…

QT学生管理系统 开发文档

目录 第一章 UI界面设计与开发 登录界面 主界面 UI美化 第二章 数据库设计与开发 数据库设计 连接数据库 数据库功能设计 sql语句设计 查询所有学生数量 查询第几页学生数据 删除学生 修改学生信息 清空学生表 添加单个用户 删除单个用户 修改用户权限 查询所有用户…

常用API_2:应用程序编程接口:ArrayList

文章目录 ArrayList常用方法 案例 &#xff1a;上菜 ArrayList 常用方法 来自黑马程序员学习视频 案例 &#xff1a;上菜 待完善

只有ip没有域名怎么申请证书?

当只有IP地址而没有域名时&#xff0c;仍然可以申请SSL证书以确保通过该IP地址访问的网站或服务的安全性。以下是为IP地址申请SSL证书的一般步骤&#xff1a; 一、确认前提条件 拥有公网IP地址&#xff1a;确保你拥有的是一个公网IP地址&#xff0c;因为内网IP地址不支持签发…

强化学习之Double DQN算法与DQN算法对比学习——以倒立摆(Inverted Pendulum)环境为例

0.简介 DQN算法敲开深度强化学习大门&#xff0c;但是其存在着一些问题&#xff0c;有进一步改进的空间。因此在DQN后出现大量改进算法。在此介绍DQN算法改进算法之一Double DQN&#xff0c;其在DQN算法基础上稍加修改实现在一定程度上改善DQN效果。 普通DQN算法会导致对Q值的过…

Leetcode75-5 反转字符串的元音字母

本质上来说就是反转字符串 一部分需要反转 一部分不动 思路: 1.用String字符串倒序拼接 就是过滤掉不是元音字符 然后把所有的字符&#xff08;非元音的直接复制过来 元音字母直接从反转的字符串里边复制即可&#xff09; 2.看了题解发现自己写的啰嗦了 就是一个双指针问题用…

螺旋矩阵

螺旋矩阵 思路&#xff1a; 这题是一个模拟的题目。 可以观察出一些性质&#xff1a;每次需要换方向的时候都是到达了边界&#xff08;长度和宽度的边界&#xff09;。 不知道怎么转化为代码&#xff01; 哭了 看看题解吧&#xff1a;真不会 看到一个太妙的方法了&#x…