标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2025-3493] 作者: ShYLie 发表于: [2025-01-20]
本文共 [18] 位读者顶过
RootKit简介 RootKit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络连接等信息,比较多见到的是Rootkit一般都和木马、后门等恶意程序结合使用。
技术研究入门[出自:jiwo.org]
一般的恶意程序使用RootKit技术,主要功能分为下面两类: (1) 隐藏文件 (2) 隐藏进程 RootKit技术使用在不同的操作系统中,如windows、linux等,同时使用的技术可以从应用层(R3)->驱动层(R0)->硬件层等,下面我将重点介绍一种在R3下使用RootKit技术隐藏文件和进程的方法,该方法被应用在之前发现的应急响应的恶意样本之种。这里先介绍R3级的RootKit技术,针对R0级的RootKit技术,遇到相关样本的时候也会进行分享。 隐藏进程技术 通过HOOK NtQuerySystemInformation函数,然后在进程链表中,摘除相关的进程,就可以达到隐藏进程的目的,如下图所示: ![]()
隐藏文件技术 通过HOOK ZwQueryDirectoryFile函数,然后在遍历目录时,发现相关的文件,则跳过,可以达到隐藏文件的目的,如下图所示: ![]()
实战技术验证 验证环境:win7 64位 验证功能:隐藏进程,隐藏文件 验证地程: (1) 运行程序,可以从进程列表中看到相关的进程$77-ExampleExecutable.exe,以及文件目录下的$77-ExampleExecutable.exe文件,如下图所示: ![]()
(2)使用安装程序,将RootKit的恶意DLL注册到AppInit_DLLs,这样当进程启动时会自动加载相应的RootKit恶意DLL实现相关的RootKit技术,隐藏进程、隐藏文件等,当我们安装成功之后,重启taskmgr.exe和explorer.exe两个进程,发现进程列表中没有$77-ExampleExecutable.exe这个进程,同时相关的目录下也没有$77-ExampleExecutable.exe这个文件,如下图所示:
这样就达到了隐藏进程和隐藏文件的目
反RootKit病毒技术
通过上面使用的R3级的RootKit技术,我们通过Explorer.exe和taskmgr.exe是看不到相关的文件和进程的,但可以通过专业的工具查看到相关进程和文件,使用PCHunter进行查看。 隐藏的进程,如下图所示:
红色标记的就是之前通过R3级的RootKit隐藏的进程。 隐藏的文件,如下图所示: ![]()
可以看到我们之前用Explorer.exe进程无法看到的文件:$77-ExampleExecutable.exe 我们可以通过WinDbg工具查看系统的相关进程列表,运行命令:!process 0 0之后,如下图所示:
可以看到$77-ExampleExecutable.exe这个进程依然存在于内核进程模块之中,因为我们是能过R0级的函数进行的查看,上面的方法只是在R3级使用了HOOK技术,无法躲过R0级的进程遍历。 同样我们可以查看到相关的文件目录,以及对应的文件,运行命令: .process /p fffffa8001a87b30; !Peb 7fffffd5000之后,如下图所示:
针对于R3级的RootKit技术,我们可以通过R0级的方法,实现反R3级的RootKit相关的技术,通过驱动去遍历进程和文件,可以得到相关的隐藏的进程和文件。 R0级的RootKit技术一般使用HOOK技术有: SSDT HOOK、InLine HOOK、IRPHOOK、 SYSENTER HOOK、EAT HOOK、IAT HOOK、 IDT HOOK、OBJECT HOOK等 也可以使用Minifilter技术过滤达到隐藏文件的目的,R0级的RootKit技术可以实现如下一些功能点: (1) 文件隐藏 (2) 进程隐藏 (3) 注册表隐藏 (4) 网络端口隐藏 (5) 驱动自身隐藏 (6) 进程DLL模块隐藏 后面遇到了相关的样本,我们再来详细讲解这些高级的RootKit技术。 RootKit&BootKit恶意软件一直是高端黑客组织研究的重点之一,笔者后面打算建立一个高级恶意样本研究群,专门针对Window\Linux\Mac平台下的各种涉及RootKit,BootKit(UEFI)技术的高级恶意软件进行分析和研究。
|