- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用MGF病毒进入RING0方法及技术分析
利用MGF病毒进入RING0方法及技术分析 摘 要:本文从概念、原理以及日常生活中的运用对利用MGF病毒进入RING0的方法技术进行阐述。不同种类的病毒,它们的使用千差万别,正常程序使用了类似病毒的操作甚至借鉴了某些病毒的技术,从对莫国防病毒的运用方面来看,病毒还有可利用性。 关键词:病毒;技术;防护 中图分类号:TP311.1 1 RING0简单介绍 RING设计的初衷是将系统权限与程序分离出来,使之能够让OS更好的管理当前系统资源,也使得系统更加稳定。CPU将特权级别分为4个级别:RING0,RING1,RING2,RING3。Windows只使用其中的两个级别RING0和RING3,RING0只是操作系统使用,RING3都可以用。尽管有CPU的特权级别作保护,但如果普通应用程序企图执行RING0指令,则Windows会显示“非法指令”,错误信息。因为WINDOWXP本身漏洞很多,Windows XP的系统使用一天死机很多回是非常正常的。举个RING权限的最简单的例子:一个停止响应的应用程式,它运行在比RING0更高的指令环上,你不必大费周章的想着如何使系统回复运作,这期间,只需要启动任务管理器便能轻松终止它,因为它运行在比程式更低的RING0指令环中,拥有更高的权限,可以直接影响到RING0以上运行的程序,当然有利就有弊,RING保证了系统稳定运行的同时,也产生了一些十分麻烦的问题。比如一些OS虚拟化技术,在处理RING指令环时便遇到了麻烦,系统是运行在RING0指令环上的,但是虚拟的OS毕竟也是一个系统,也需要与系统相匹配的权限。而RING0不允许出现多个OS同时运行在上面,最早的解决办法便是使用虚拟机,把OS当成一个程序来运行。后来才有了更新的技术解决了此问题。 2 利用MGF病毒进入RING0的方法 MGF病毒是非常有名的病毒,它通过修改NTLDR文件进入ring0,进入ring0到底能做些什么呢?其实能做的事情很多的,不过网上有很多进入ring0的代码说实话没有什么用,首先他们进入ring0了后,代码仍然在0下空间,如果有进程上下文切换,那么代码所在页就会被调换出去,解决方法是用ExAllocatePool申请一块非分页内存,将需要运行的代码拷贝过去,最后创建一个系统线程就可以了,这样你的代码就和驱动程序的代码一样,IRQL =PASSIVE_LEVEL,如何利用MGF病毒呢?我们可以使用MGF留在GDT中的callgate,利用这个调用门,就可以成功进入ring0。 系统的引导过程中的重要角色就是NTLDR,NTLDR主要作用就是装载Ntbootdd.sys文件,还有将x86的实模式转到winXP的保护模式下等工作,装载GDT(全局描述符表)也包括其中(由实模式切换到保护模式之前的准备工作中装载GDT就完成的了)。创建一个调用门,那么系统启动的时候就会将调用门装载。其实进入RING0:就是在WINXP用和CIH一样的技术,往GDT添加CALLGATE,在WIN 2000/XP/2003里把CALLGATE写入NTLDR里,然后重启计算机病毒生效,这是独一无二的技术,这当然也是WINDOWS 2000/XP/2003的一个漏洞。这种方法可以驻留内存:由于所有dll模块装入内存后,在文件头只使用1K空间,还有3K空间剩余,所以本病毒把自身的3K放入kernel32.dll的空隙里,剩下2K放在user32.dll里,但WIN98比较特殊,剩下2K用vxd的_PageAllocate分配空间。MGF毒驻留不靠建立进程和GlobalAlloc内存,而是插入模块的空隙里,因此在任务管理器里是看不到病毒的,更终止不了它在内存感染文件,所以本病毒难杀就难在这里,很多杀毒软件要么找不到本病毒,即使找到了也杀不了或杀不干净,束手无策。现在进入ring0的方法又有很多了,例如可以参考利用结构化异常处理以及利用中断门的方法进入RING0;利用驱动程序进入RING0;利用读写物理内存的方法来读写GDT所在的物理内存,在GDT上生成自己的调用门来进入ring0。那么到底用什么来确认NTLDR中包含有这个过程?可以根据Maureen提出的,用Bochs调试NTLDR,来监视NTLDR在切换到保护模式的时候所做的一切。莫国防病毒采用的方法是在NTLDR中搜索GDT域的空闲区,创建调用门,然后我们就可以利用这个CALLGATE来进入RING0了。这个方法非常巧妙,之所以不用选择子系统08h所对应的描述符,因为如果操作系统检测到描述符对应的代码和数据的地址都在0以下运行的话,修改NTLDT后需要重起才会生效,会被认为是非法进入RING0,然后系统崩溃。 3 病毒防护的
原创力文档


文档评论(0)