内容摘要:本文描述了一些方法,可以绕过目前主流的现代Anti-rootkit工具,包括但不限于:Icesword 最新版、Gmer最新版、Rootkit unhooker 最新版、DarkSpy 最新版以及AVG Anti-rootkit最新版等等
本文描述了一些方法,可以绕过目前主流的现代Anti-rootkit工具,包括但不限于:Icesword 最新版、Gmer最新版、Rootkit unhooker 最新版、DarkSpy 最新版以及AVG Anti-rootkit最新版等等
目前的anti-rootkit工具中,对于内核模块主要采用如下几种扫描方式:
1.恢复ZwQuerySystemInformation的hook,然后利用功能号SystemModuleInformation进行枚举,例如Icesword。
2.遍历PsLoadModuleList,Driver/Device/Section Object链,或者TypeList链等(总之是找驱动相关对象)进行枚举,例如Rootkit Unhooker,Gmer等。
3.内核镜象暴力搜索,搜索MZ,PE等等标志结合进行判断内存里是否有PE镜象,如rootkit unhooker,rutkowska的modgreper等,通常只能显示为unknow image
4.函数引用,各种routinehook等,先HOOK一些常用函数,然后当驱动去调用这些函数时,记下其地址,检测时使用,或者是根据各种routine(dispatch routine,IDT,Image Notfiy等)或各种hook(inline hook,iat/eat hook等等),通常只能显示为unknow image或unknow xxx handler等
5.使用系统ImageLoad Notfiy,使用一个BOOT驱动,记录所有模块load的消息,检测时进行分析 如AVG Anti-rootkit等
先说绕过1,2,3,5的办法
很简单,使用诸如ZwSetSystemInformation的函数加载驱动,然后在DriverEntry中分配NonPagedPool的内存,然后将功能代码/函数copy到该内存中,然后进行必要的HOOK,最后返回STATUS_UNSUCCESSFULL.
这样驱动在PsLoadModuleList、各种对象链里就消失了,自然也就不存在于ZwQuerySystemInformation枚举的列表里。需要注意的是,copy到内存中的代码要尽量简单,基本不会生成需要重定位的代码了,但调用系统函数还是要另想办法。我的某个RK里是这样做的,例如A Function用来hook 系统函数B,其中需要调用系统函数C,那么分配一块内存,大小= len(A) + sizeof(ULONG) * 2
来源:天极网 责编:豆豆技术应用
- 金山毒霸 2009 杀毒套装 下载 免费 试用
- 金山毒霸 9 互联网安全套装下载
- 巧用“记事本”程序让病毒白白运行
- qq盗号木马变种Trojan-PSW.Win32.QQPass.kht
- jsnndya.exe,gozowzeuisnxd.exe,dkzuimwvx.exe等的清除
- Trojan.DL.Win32.Mnless.ahy(DODOLOOK139.EXE)分析查杀
- Adware.Win32.Agent.nys(mfjdkhk.sys)查杀
- cag1ynw1.com,d32dx9.sys等恶意文件删除解决方案
- wgsfun.dll,456320.exe等cnbeta恶意木马清除解决方案
- ssrcservice.exe,ssrcservice.dll等恶意病毒清除解决方案