ZwSetSystemInformation的SystemLoadAndCallImage 加载驱动的缺陷
来源:互联网 发布:数据球神 编辑:程序博客网 时间:2024/06/14 04:44
绕过监控进入ring0安装驱动
这部分是重中之重。由于几乎每个主动防御系统都会监控未知驱动的加载和试图进入ring0的举动, 而我们在第一,第二和第三部分绕过主动防御要做的处理,都必须需要ring0权限。因此监控进入ring0,是一个独立的话题,也是我们实现前三个部分需要的条件。
直接添加注册表项,ZwLoadDriver安装驱动,是几乎要被任何主动防御系统报警。必须要采用一些隐蔽的或者是为人不知的方法。总结目前已经公布出来的进入ring0的办法,
有以下几种:
感染文件,例如win32k.sys,添加自己的代码到里面,启动的时候就会被执行。这种方法的优点是简单易行,稳定度和兼容性很好。但是最大的缺点就是必须重新启动以后,才能进入ring0,这是一个产品级别的后门所不能容忍的。而且微软自己的系统文件保护容易绕过,mcafee和卡巴斯基的文件监控可就不是那么容易了。
利用物理内存对象,来写入自己的代码到内核,并添加调用门来执行。这个是最早被人提出的不用驱动进入ring0的办法。因为出来的时间太长了,所以有以下一些问题:更新的操作系统内核不支持,如2003SP1;很多的主动防御系统会拦截,例如KIS6。所以这个办法也不理想。
利用ZwSystemDebugControl。这个代码在国外有人放出来过,利用它写内存,挂钩NtVdmControl,进入ring0。此法缺陷在于老的windows2000不被支持,最新的windows2003sp1上也取消了这个函数的此能力。不过好处在于,这个方法用的人少,基本上没有主动防御会注意到它,并进行拦截。
利用ZwSetSystemInformation的SystemLoadAndCallImage功能号加载一个模块进入ring0。这个方法提出来比较久了,但是因为用的人少,仍未被主动防御软件所重视。用得少的原因是,它不好用。它只能加载一个普通的模块到内核并且调用,却不是加载一个驱动,因此没有一个DriverObject。这导致了非常多的麻烦。因为要想使用这个办法,必须先用这个办法安装一个简单的内核模块,再用这个模块添加调用门等方式,执行代码清除主动防御的监视驱动安装的钩子,安装一个正常的驱动,才能最终完成任务。而且这个方法似乎对windows2003sp1以上的系统也无效。
因此,要想有一个相对完美的进入ring0解决方案,最好是寻找别人不知道或者使用很少的方法,或者将上面的有缺陷的方法做一个综合,用多种方法通过判断情况来选择使用。我在这里有一个新的思路提供给大家,微软新公布了一部分文档,关于HotPatch的使用。HotPatch可以在执行中修改系统中存在的用户态公用dll的内容,甚至是修改内核模块的内容。具体代码和细节,在这里我不能多说。
要想开发一个好的反主动防御rootkit,绕过监控进入ring0是必不可少的,然而这部分也是使用不成熟技术最多的,最容易出现严重问题的部分。作为一个负责任的实用级产品,一定要对这个部分作做详细的测试,来保证自己的产品不会在某些特殊的环境,比如64位CPU运行32位系统,多核处理器,HyperThread处理器上面,出现故障或者蓝屏。
- ZwSetSystemInformation的SystemLoadAndCallImage 加载驱动的缺陷
- Greg Hoglund大牛的ZwSetSystemInformation()加载驱动
- ZwSetSystemInformation 动态加载驱动
- zwSetSystemInformation加载驱动
- zwSetSystemInformation加载驱动
- ZwSetSystemInformation的使用
- ZwSetSystemInformation的使用
- 通过ZwSetSystemInformation和ZwLoadDriver加载驱动
- 通过ZwSetSystemInformation和ZwLoadDriver加载驱动(转)
- 卡巴のZwSetSystemInformation的心寒
- 卡巴のZwSetSystemInformation的心寒
- 用SystemLoadAndCallImage加载Rootkit
- 用SystemLoadAndCallImage加载Rootkit
- (转载)用SystemLoadAndCallImage加载Rootkit
- 缺陷驱动的流程优化和技术引进
- 加载驱动的步骤
- 驱动的内存加载
- 驱动模块的加载
- 在 Javascript 中读取 C# Dataset 实例(转)
- 喜欢C++的真的好多都喜欢python呀
- 讨人喜欢的26个原则
- 新概念英语四文本
- linux&unix软件的安装方式 汇集
- ZwSetSystemInformation的SystemLoadAndCallImage 加载驱动的缺陷
- CSDN又改版了……连个招呼都不打
- VisualFC 0.80 beta1 Released!
- [编程难题]编写一个求解时间满足约束的的算法.说明内详
- 读取RSS(支持目前所有RSS版本)
- Groovy Tip 6 集合类的简化操作
- http header详解
- asp.net(c#)给控件添加事件
- SQL 关于tree存储及提取的话题