修改系统内核对象
<3 直接修改DLL中的函数
这种方法是在DLL文件装后找到函数的地址,并修改其中的代码!比如DLL A装入了内存,恶意程序B则可以找到A中的函数地址,B可以恶意的修改代码,把原函数开头加上JMP到自己的函数,最后在JMP回来。
以上的方法是运行在用户模式下的,内核Rootkits也有自己的方法:
<4 修改SSDT表
SSDT表记录着系统内核函数的内存地址,如果恶意程序把某一个函数地址修改了,无疑是影响很大的,所以windows下SSDT是只读的,不过仍然可以通过特殊方法解除保护。
<5 修改IRP表
IRP函数是驱动程序用来处理用户的请求的(比如读,写),各个IRP函数组合在一起组成了IRP表,恶意程序可以修改一些表项来完成隐藏(文件,进程,注册表等)
以上的无论是用户模式下的攻击还是内核模式下的都是通过修改执行路径来完成的,我们可以称之为“挂钩”,许多杀软也使用了挂钩,下面我们介绍只有最NB的恶意程序才会使用的技术。
二、修改系统内核对象
对系统熟悉的朋友都知道,windows有一个用来用户模式下与内核模式下代码进行交互的基本接口。虽然软件开发人员经常会创建,打开内核对象,但内核对象很多并没有公布,盲目的修改内核对象可能对系统造成不可逆的损害!但如果成功的修改了内核对象的话,恶意程序遍得到了系统下最高的特权,比如来一个根本没有结束可能的进程……具体的实现我也不知道,也没有教程,也根本不敢去尝试,大家知道一下就是了。
What can we do?
既然Rootkits这么厉害,我们该怎么防御呢?
<1 预防
Rootkits的弱点是安装得有系统管理员权限,即系统必须被黑客控制之后才能安装,所以预防黑客很重要。
<2 检测
不过防不胜防,如果真的有黑客进来了我们怎么办?首先断开和黑客的连接,并且检测系统有没有被安装Rootkits,我推荐一些ANTI-ROOTKITS软件来检测。
<3 应对
如果已经被安装了Rootkits请赶快下载一个ANTI-ROOTKITS软件进行清除,如果你运气不错,遇到一个垃圾Rootkits,那也就好办了,但如果遇到一些厉害的Rootkits,即使ANTI-ROOTKITS软件检测出来了,它也不推荐你清除,为什么?一清除系统就挂了!遇到这种Rootkits只有两种方法,1.还原2.重装!
网友评论