大放血,一种新的加载驱动方法非完整爆光

作者:langouster

端午大放血,一种新的加载驱动方法,应该属于0day。为了网民考虑,我不会公开全部技术,但如果有心,根据这些要点肯定可以研究出这个技术。

加载步骤:

1。编写一驱动,不用关sfc,直接复制替换系统目录下的某文件。

2。调用某API函数,此函数不是由ntdll,kernel32,user32这些DLL导出的,是可以在MSDN里查到的,为便于说明我叫它func1,如果不出意外驱动就已经加载了。

伪代码只有两行:

CopyFile("aaa.sys",'c:\\windows\\system32\XXXX.XXX');

func1(...);

特别注意:加载的驱动不能用一般的驱动,一般的驱动的入口点是

NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath );

而这个驱动的入口点函数应该写成

NTSTATUS DriverEntry(LPVOID a,LPVOID b,LPVOID c)//注意,它没有PDRIVER_OBJECT

说明:

1。我大概测试了下以下杀软,没有一个报的

xp vista win7
瑞星+360 不报
超级巡警 不报
kis7 不报
微点 不报
卡巴2009 加载驱动不报,替换文件报(xyzreg帮助测试)

2。只要能替换system32目录下的那个文件,调用那个func1函数是没有权限要求的,所以在fat32系统上应该能直接从低权限提升到system权限。(也算是一个提权0day了)

3。好像貌似有办法不用自己调用func1函数,可以在替换文件后让csrss进程去加载这个驱动,也就是说杀软如果报了,也不会报你的程序。。。。。但我还没有完全研究出来,此条不一定正确。

4。发现此0day时间不长,工作又太忙,还没仔细研究,以上说明中可能有些不妥的地方,望谅解。

 

  • quote 3.zhubaba
  • 请问博主,怎样能使NTSTATUS DriverEntry(LPVOID a,LPVOID b,LPVOID c) 有三个参数?
    就是博主提到的这个特殊的驱动怎么写?
  • 2009-8-16 18:34:50 回复该留言
  • quote 4.jakezon
  • 请问,这样的驱动加载后是否还有驱动的权限
    langouster 于 2009-11-04 22:45:08 回复
    当然,因为它也进了Ring0
  • 2009-11-3 17:44:32 回复该留言
  • quote 5.无名士
  • 这样的0DAY除了在病毒应用上,别的没直接性的价值。。。。。。
  • 2009-12-30 01:18:27 回复该留言
  • quote 6.nbboy
  • 难道说的就是mj大牛说的SystemCrashDumpStateInformation加载驱动
    吗?
  • 2010-7-25 17:51:11 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Copyright langouster. Some Rights Reserved.   苏ICP备06046736号   

本站点由 Z-Blog 2.0 bate Build 构建,基于 Glued Ideas Subtle 主题,由 zx.asd 移植并创新.