细说APT之Rootkit自我保护
字数 2096 2025-08-24 10:10:13
Rootkit自我保护技术详解
一、Rootkit概述
Rootkit是一种高权限、底层的恶意软件技术,常被APT黑客组织用于对抗杀毒软件和实现自我保护。Rootkit通过操纵操作系统内核或驱动来实现其功能,具有极强的隐蔽性和持久性。
二、Ramsay框架分析
1. 初始化配置
Ramsay框架的Rootkit组件初始化过程如下:
- 主类
HideDriver为纯虚类 - 初始化关键组件:
sub_1AFE4: 初始化Resource读写锁sub_1B000: 初始化Mutex互斥体sub_1B054: 获取KeServiceDescriptorTable基地址sub_1B064: 获取KeServiceDescriptorTable.ServiceTableBasesub_1B076: 再次获取KeServiceDescriptorTable基地址sub_1B086: 再次获取KeServiceDescriptorTable.ServiceTableBasesub_1B01C: HideDriver::FileHidersub_1B038: HideDriver::ProcessHider
2. SSDT Hook技术
SSDT(系统服务描述符表)是连接ring3 Win32 API和ring0内核API的关键表,包含:
- 地址索引的基地址
- 服务函数个数
Ramsay通过Hook SSDT中的关键函数实现自我保护:
-
文件保护:
- Hook
NtQueryDirectoryFile函数 - 根据文件类型(不同结构体)进行分发处理
- 过滤
FileBothDir类型 - 对命中
pFileInfo->FileName的文件,通过修改FILE_BOTH_DIR_INFORMATION.NextEntryOffset实现覆盖或摘链
- Hook
-
进程保护:
- Hook
ZwQuerySystemInformation函数 - 解析
SYSTEM_PROCESS_INFORMATION结构体 - 对目标PID进行过滤,命中后对结构体篡改或摘链实现进程隐藏
- Hook
三、Hellsing组织技术分析
1. 文件保护技术
-
针对文件系统驱动:
FileSystem\FastFatFileSystem\Ntfs
-
技术实现:
- 利用
ObReferenceObjectByName获取NTFS驱动对象 - 替换派遣函数
IRP_MJ_CREATE指针函数 - 通过
_IO_STACK_LOCATION._FILE_OBJECT.FileName判断保护文件 - 将文件路径进行任意替换,指向其他字符串
- 利用
2. 进程保护技术
-
控制码
2352220:- 执行
_EPROCESS.ActiveProcessLink摘链操作 - 隐藏指定进程
- 执行
-
控制码
23511128:- 用户层传递需要保护的文件数组
- 进行赋值操作
四、Rootkit检测与防御
1. SSDT Hook检测
- 保存系统当前SSDT地址:
- 发送至用户层或直接在内核层比较
- 将本地文件映射到内存,重定向地址
- 与当前系统函数地址对比,标记差异为SSDT Hook
- 替换原始函数地址完成恢复
2. FSD Hook检测
- 通过IDA分析ntfs.sys派遣函数机器码
- 加载Ntfs,拷贝对象派遣函数
- 映射本体文件,以
AddressOfEntryPoint+ImageBase为枚举机器码入口点 - 枚举机器码保存派遣函数地址
- 与当前内存加载派遣函数地址比较(需重定位)
- 不匹配则标记为FSD Hook,替换原始派遣函数
3. 进程断链检测
-
系统空间扫描:
- Windows 32bit系统空间:0x80000000-0xFFFFFFFF
- 从0x80000000开始,判断地址有效性
- 逐一解析ObjectType是否为进程类型
- 递增4KB枚举系统空间(适用于其他内核对象隐藏检测)
-
枚举
PspCidTable:- 包含系统中全部进程线程对象
- 索引对应PID和TID
- (注意:如果该链也被断开则无效)
4. 文件隐藏检测
-
读取NTFS流:
- 解析MFT(主文件表)
- 获取完整文件列表检测隐藏文件
-
底层检测:
- 挂钩disk.sys(比文件系统驱动更底层)
- 实现低层文件检测
五、总结
Rootkit技术随着安全研究的发展逐渐被揭开神秘面纱,虽然在64位系统中部分技术不再适用,但通过盗取数字签名安装驱动木马的现象仍然存在。内核安全检测和防御技术是保障系统安全的核心手段。
关键IOC(入侵指标):
- 3DE2A22BABB69E480DB11C3C15197586
- 07858D5562766D8239A7C961FEEA087C
六、技术演进趋势
- 从SSDT Hook向更底层的驱动Hook发展
- 从简单的函数替换到复杂的路径重定向
- 检测技术从表层扫描向底层分析发展
- 对抗重点转向数字签名滥用和驱动白利用
七、防御建议
- 实施驱动签名验证
- 监控关键系统调用和驱动行为
- 定期进行内核完整性检查
- 部署多层次的安全防护方案
- 保持系统和安全软件更新