RootKit
文章平均质量分 66
(-: LYSM :-)
这个作者很懒,什么都没留下…
展开
-
[Rootkit] 驱动隐藏 - 断链
注意 : 此方法会触发 PG代码参考 1typedef struct _driverdata{ LIST_ENTRY listentry; ULONG unknown1; ULONG unknown2; ULONG unknown3; ULONG unknown4; ULONG unknown5; ULONG unknown6; ULONG unknown7; UNICODE_STRING path; UNICODE_STRING name;}driverdata;VOI原创 2021-07-12 20:28:49 · 501 阅读 · 0 评论 -
[Rootkit] 进程隐藏 - 内存加载(进程寄生)
众所周知,windows下可执行文件必须符合一定的格式要求,微软官方称之为PE文件(关于PE文件的详细介绍这里就不赘述了,google一下可以找到大把);用户在界面双击exe时,有个叫做explorer的进程会监测并接受到这个事件,然后根据注册表中的信息取得文件名,再以Explorer.exe这个文件名调用CreateProcess函数去运行用户双击的exe;PC中用户一般都是这样运行exe的,所以很多用户态的exe都是exlporer的子进程,用process hacker截图如下:那么这个explo转载 2021-06-11 10:37:09 · 1579 阅读 · 1 评论 -
[Rootkit] 无痕 hook - 硬件断点
hook方式有多种,这里做了一个系统性的总结对比,如下:https://www.cnblogs.com/theseventhson/p/14324562.html 之前这里做了接受消息的hook,用的就是最初级的hook方式: jmp到我们自己的处理逻辑。上面也分析了,这种方式缺点非常明显;最牛逼的神级hook:VT读写分离前面已经介绍过了,今天继续介绍高级的hook方式:硬件断点;现代软件开发,尤其是大型软件开发,绝对不可能一步到位,开发期间肯定存在各种bug。为了方便找到这些bug,软件上有专门转载 2021-06-10 20:57:05 · 3418 阅读 · 0 评论 -
[Rootkit] 进程替换
本文的进程替换是指将正在运行的程序的内存空间用恶意代码替换掉. 如果被替换的进程是合法的进程, 那么恶意代码可以披着合法的外衣干坏事了. 当然坏事干多了还是会被发现的.替换的过程如下:创建一个挂起状态(SUSPEND)的进程, 此时进程的主线程还未开始运行.读取主线程的上下文(CONTEXT), 并读取新创建进程的基址.使用NtUnmapViewOfSection将新创建的进程的内存空间释放掉, 随后可以开始填充恶意代码.设置主线程的上下文, 启动主线程.一. 我将恶意代码当成资源文件, 所转载 2021-06-10 20:39:11 · 232 阅读 · 0 评论 -
[Rootkit] dll 隐藏 - VAD
3环下要想隐藏dll,仅仅靠断链和抹去PE头信息是不够的;这样做能骗过同样在3环运行的调试器,但是骗不过在0环通过驱动做检测的PChunter、Process Hacker等工具;要想彻底隐藏,需要更进一步搞定驱动层的各种检测,下面会详细介绍隐藏的细节原理和操作方法!1、VAD 虚拟内存管理内存分两种:物理内存和虚拟内存;操作系统和进程共享物理内存,进程独享虚拟内存;物理内存可以通过CR3在进程之间互相隔离,确保进程之间互不侵犯;那么进程内部的虚拟地址该怎么管理了? 32位下,每个进程独享4GB内存,怎转载 2021-06-10 20:36:00 · 2084 阅读 · 3 评论 -
[驱动开发] 驱动隐藏 - driveEntry返回失败
常见隐藏驱动的方式:驱动模块断链调用MiProcessLoadEntry删除驱动对象(据说不会触发PG)清理MmUnloadDriver List 和 PiDDBCacheTable两处driveEntry返回失败驱动模块加载后立即卸载今天介绍一种driveEntry返回失败隐藏驱动的方法 —— DriverEntry返回失败原理windows会根据DriverEntry的返回值判断驱动是否加载成功。如果返回成功,会在注册表详细记录,并将sys文件复制到System32/drivers转载 2021-06-10 11:30:13 · 1546 阅读 · 1 评论 -
[Rootkit] 修改 peb 隐藏 dll(断链)
原理PEB 中有一个成员 Ldr:typedef struct _PEB{ UCHAR InheritedAddressSpace; UCHAR ReadImageFileExecOptions; UCHAR BeingDebugged; UCHAR BitField; ULONG ImageUsesLargePages: 1; ULONG IsProtectedProcess: 1; ULONG IsLegacyProcess:原创 2021-04-16 23:58:11 · 785 阅读 · 0 评论 -
[Windows 驱动开发] 隐藏进程内存
原理在进程的 _EPROCESS 中有一个 _RTL_AVL_TREE 类型的 VadRoot 成员,它是一个存放进程内存块的二叉树结构,如果我们找到了这个二叉树中我们想要隐藏的内存,直接将这个内存在二叉树中 “抹去”(其实是让上一个节点的 EndingVpn 指向下个节点的 EndingVpn ,让两个节点融合) 就可以达到隐藏的效果。过程比如你在代码中申请了两块内存:int main(){ LPVOID p1 = VirtualAlloc(NULL, 0x10000, MEM_CO原创 2020-09-01 18:25:16 · 1645 阅读 · 1 评论 -
[Rootkit] - 进程伪装
背景欺骗任务管理器等行为工具,"隐藏"进程的另一种方法。原理是修改 EPROCESS 中的成员。驱动层进程伪装以下代码来自:https://github.com/zhuhuibeishadiao/PathModificationPathModification.h#ifndef _PATH_MODIFICATION_H_#define _PATH_MODIFICATION_H_ 1//NTSTATUS PsGetTarProcessInfo(HANDLE pid);////BOOLEAN原创 2020-08-20 18:40:05 · 1547 阅读 · 1 评论 -
[Rootkit] - 修改 EPROCESS 隐藏进程
背景EPROCESS 中有两个成员UniqueProcessId // 唯一的pidInheritedFromUniqueProcessId // 唯一父进程pid效果图原创 2020-08-20 17:58:03 · 999 阅读 · 0 评论 -
程序自删除
原理之所以可以使用批处理来实现文件自删除,是因为批处理有一个特别的地方就是:批处理提供了自己删除自己的命令:del %0这个命令,批处理执行完后,就会把自身文件删除了,而且不放进回收站。所以,有了这个关键技术作为前提,使用批处理方式实现程序的自删除,就好理解了。构造自删除批处理文件,批处理文件的内容就是先延迟一定的时间,例如延迟 5 秒,然后开始删除指定文件后,再执行自删除命令在程序中,创建一个新进程调用并批处理。进程创建成功后,立马结束进程这样,进程创建起来,执行批处理文件。等批处理文件转载 2020-06-30 23:28:40 · 828 阅读 · 0 评论 -
程序开机启动
请转到以下链接食用???????? :创建计划任务实现开机自启动???? :创建系统服务实现开机自启动???? :快速启动目录实现开机自启动原创 2020-06-30 23:15:48 · 666 阅读 · 0 评论 -
使用WNetEnumResource函数实现枚举工作组内的主机及其IP
背景之所以会学习到这方面的知识,是因为那段时间正在帮一个游戏工作室开发一个游戏自动登录并创建角色的游戏脚本。当时,我就是使用VS去开发。因为它要求要有一个控制端,所以,就分别写了一个客户端程序和控制端程序。客户端都运行在虚拟机内,和控制端在同一网段里。当时,我就想让客户端在虚拟机里运行,主动去扫描工作组内的主机,那么它工作组内就会有两个主机,一个是虚拟机自己,另一个就是外面的主机。主机上运行则控制端,所以,这样就可以获取主机的IP地址,并自动建立反向连接,传输数据。函数介绍// 启动网络资源或现有连转载 2020-06-30 23:10:51 · 711 阅读 · 0 评论 -
使用 ReadDirecotryChangesW 函数实现文件监控
背景在我没有了解 ReadDirecotryChangesW 这个目录监控函数之前,一直认为要想实现计算机上的文件监控,能够监控计算机上每个文件的改动,是一件极其困难的事情,曾经自己也细想过,但都没有什么好的思绪。不过,事实上,文件监控的确是一件比较复杂的事情。好在Windows为我们提供了一个功能强大,但是使用较为方便的函数接口,这边是我们这篇文章要讲解的 ReadDirecotryChangesW 函数。函数介绍// 检索描述指定目录中更改的信息,但不会报告对指定目录本身的更改。// 如果函数成转载 2020-06-30 22:45:41 · 1551 阅读 · 0 评论 -
Bypass UAC 提权
背景UAC(User Account Control)是微软在 Windows Vista 以后版本引入的一种安全机制,通过 UAC,应用程序和任务可始终在非管理员帐户的安全上下文中运行,除非管理员特别授予管理员级别的系统访问权限。UAC 可以阻止未经授权的应用程序自动进行安装,并防止无意中更改系统设置。UAC需要授权的动作包括:配置Windows Update;增加或删除用户账户;改变用户的账户类型;改变UAC设置;安装ActiveX;安装或移除程序;安装设备驱动程序;设置家长控制;将文件移动或复制到转载 2020-06-30 22:24:08 · 3898 阅读 · 1 评论