R3注入的四种方式

DLL注入

1.首先要获取想要注入的进程句柄(OpenProcess)
2.从要注入的进程的地址空间中分配一段内存(VirtualAllocEx)
3.往分配的内存位置写入要注入的DLL名称(WriteProcessMemory)
4.从kernel32.dll中找到LoadLibrary(A或W)函数地址(GetModuleHandle+GetProcAddress)
5.创建远程线程执行加载DLL函数(CreateRemoteThread)

傀儡进程注入

1.首先读取恶意代码的可执行文件并将其解析(按PE结构镜像加载)
2.建立一个挂起的傀儡进程并获取其进程基本信息(CreateProcess函数传入的结构中可获取进程和主线程句柄)
3.获取进程主线程的基本信息(GetThreadContext获取的contex的Ebx为PEB,+8获取进程基址,ReadProcessMemory读取)
4.从ntdll获取NtUnmapViewOfSection远程卸载基址模块(GetModuleHandle+GetProcAddress)
5.从傀儡进程中的恶意镜像指向的基址分配恶意镜像大小的内存然后把恶意镜像写进去(如果选择其他地址则需要修改恶意镜像的基址重定位表_VirtualAllocEx+WriteProcessMemory)
6.修改进程主线程eip指向恶意镜像入口点以及PEB指向的基址(contex的Eax为eip,PEB用WriteProcessMemory修改)
7.将修改的contex设置回去并回复线程运行(SetThreadContext+ResumeThread)

x64下用ntdll中的NtQueryInformationProcess获取PEB,contex的Rcx为eip

HOOK注入

1.加载一个DLL,获取其某个函数地址(LoadLibrary+GetProcAddress)
2.获取一个进程句柄
3.通过系统钩子把指定函数挂上去即可(SetWindowsHookEx,目标进程会加载DLL)

APC注入

1.获取指定进程的ID以及所有线程的集合 (CreateToolhelp32Snapshot)
2.远程分配内存并将指定DLL名称写入(VirtualAllocEx+WriteProcessMemory)
3.迭代打开所有线程依次往APC队列添加加载DLL函数调用(OpenThread+QueueUserAPC+GetProcAddress)

### R3 Rootkit 的技术细节 R3 Rootkit 是一种运行在用户模式下的恶意软件,其主要目的是隐藏特定的进程、文件或其他资源以逃避检测。它通常通过修改操作系统的行为来实现这些目标。以下是关于 R3 Rootkit 技术细节的一些重要方面: #### 隐藏机制 R3 Rootkit 主要依赖于挂钩(hooking)技术来拦截和篡改操作系统的 API 调用。这种技术允许 Rootkit 修改返回给应用程序的结果,从而隐藏某些对象的存在。 - **API Hooking**: 通过对关键函数(如 `NtQueryDirectoryFile` 或 `FindFirstFileW`)进行钩子处理,Rootkit 可以过滤掉不希望被发现的对象[^1]。 ```cpp // 示例代码展示如何设置一个简单的 IAT Hook typedef NTSTATUS (NTAPI *PNtQueryDirectoryFile)( HANDLE FileHandle, HANDLE Event, PIO_APC_ROUTINE ApcRoutine, PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, PVOID FileInformation, ULONG Length, FILE_INFORMATION_CLASS FileInformationClass, BOOLEAN ReturnSingleEntry, PUNICODE_STRING FileName, BOOLEAN RestartScan); NTSTATUS NTAPI MyHookedNtQueryDirectoryFile( HANDLE FileHandle, HANDLE Event, PIO_APC_ROUTINE ApcRoutine, PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, PVOID FileInformation, ULONG Length, FILE_INFORMATION_CLASS FileInformationClass, BOOLEAN ReturnSingleEntry, PUNICODE_STRING FileName, BOOLEAN RestartScan) { // 这里可以加入自定义逻辑,比如跳过某个目录项 return OriginalNtQueryDirectoryFile(FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, FileInformation, Length, FileInformationClass, ReturnSingleEntry, FileName, RestartScan); } ``` #### 加载方式 R3 Rootkit 往往会伪装成合法的服务或驱动程序加载到内存中。它们可能利用已知漏洞或者社会工程学手段进入系统并获得持久化能力。 - **服务注入**: 创建一个新的 Windows 服务或将自己附加到现有的服务进程中启动。 - **DLL 注入**: 动态链接库可以通过远程线程创建等方式强行插入其他进程中执行。 --- ### 应对方法 针对 R3 Rootkit 的威胁,可以从以下几个角度出发制定防御策略: #### 实时监控与行为分析 由于 R3 Rootkit 常常更改正常的系统调用路径,因此实时监测异常活动变得尤为重要。这包括但不限于以下措施: - 使用基于主机入侵检测系统(HIDS),它可以识别可疑的操作序列以及未授权访问尝试。 - 安装反病毒解决方案,定期扫描整个磁盘寻找潜在风险因素。 #### 文件完整性验证 为了防止敏感数据遭到破坏,建议实施严格的存取控制政策,并周期性地校验核心组件哈希值的一致性。 - MD5/SHA256 校验工具可以帮助确认是否有未经授权改动发生。 #### 更新补丁管理 及时安装厂商发布的安全更新包能够有效封堵已被披露出来的弱点位置,减少遭受攻击的可能性。 > 注意事项:尽管上述提到的方法有助于缓解部分影响,但对于高度定制化的 rootkits 来说仍可能存在绕过的途径。所以综合运用多种防护层才是最稳妥的选择。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值