利用内存取证检测高级恶意软件
1. 常见钩子检测技术概述
在恶意软件检测领域,检测标准的钩子技术相对较为直接。攻击者常用的钩子技术包括SSDT(系统服务描述符表)钩子、IDT(中断描述符表)钩子、内联内核钩子以及IRP(I/O请求包)函数钩子等。然而,这些技术也存在容易被检测的缺点,例如64位Windows系统的内核补丁保护机制(PatchGuard)会防止对SSDT和IDT等表的修改。
2. 检测IDT钩子
IDT存储了中断服务例程(ISR)的地址,这些函数用于处理中断和处理器异常。攻击者可能会钩取IDT中的条目,将控制重定向到恶意代码。可以使用Volatility的 idt 插件来显示IDT条目。
例如,Uroburos(Turla)根kit钩取了位于0xc3索引处的中断处理程序。在干净的系统上,0xC3处的中断处理程序指向 ntoskrnl.exe 内存中的一个地址。以下是干净系统和被钩取系统的IDT条目示例:
干净系统的IDT条目 :
$ python vol.py -f win7.vmem --profile=Win7SP1x86 idt
Volatility Foundation Volatility Framework 2.6
CPU Index Selector Value Module Section
------ ------ ---------- ---------- -------
超级会员免费看
订阅专栏 解锁全文
4

被折叠的 条评论
为什么被折叠?



