-
低误报率
-
检查DLL的列表,而不仅仅是NTDLL
-
在一个函数的第二或第三条指令中找到钩子
-
检测WOW系统调用存根的篡改情况
-
没有ASCII艺术
钩子扫描解决方案会简单地扫描一个加载的DLL,在一个函数的第一个字节中寻找jmp指令,这导致了许多误报,例如导出的变量等。
HookDump的误报率很低,这是通过对每个DLL检查加载两次来实现的,一次是使用LoadLibrary,另一次是从磁盘上读入一个缓冲区。导出的函数在两个加载的副本中都被解决了,几个指令从两个副本中被反汇编,然后对指令进行比较。使用这种方法HookDump可以检测到函数的第一第二或第三条指令中的钩子。
一些EDR在PEB模块列表中为NTDLL创建了一个假条目,结合页面防护/不执行内存访问权限和异常处理程序,可信的执行流被重定向到真正的NTDLL,试图阻止shellcode通过解析出口表手动定位函数地址。HookDump能够找到NTDLL的原始拷贝并检查它的钩子。
HookDump还可以检查多个DLL,而不仅仅是NTDLL,库的列表存储在源文件LibraryList.inl中,是通过使用SysInternals ProcessExplorer转储explorer.exe中加载的DLL的列表而创建的。
原文始发于微信公众号(Khan安全攻防实验室):HookDump - EDR钩子检测
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论