黑基Web安全攻防班
安基网 首页 IT技术 安全攻防 查看内容

mcafee杀毒软件暴高危漏洞[分析及解决办法]

2005-4-18 06:49| 投稿: security

摘要: 来源:http://wrsky.com[mcafee的“缓冲区溢出保护”]  如果处在堆栈里的shellcode调用了getprocaddress等函数,mcafee会中止当前进程...
来源:http://wrsky.com[mcafee的“缓冲区溢出保护”]  如果处在堆栈里的shellcode调用了getprocaddress等函数,mcafee会中止当前进程并报警。[分析原理]  mcafee对所有进程截获了loadlibrarya、loadlibraryw、getprocaddress等api函数,方法类似api截获:将这些函数的开始几个字节改为call detectapiret,即调用entapi.dll中的某个检测函数(detectapiret),该函数检查调用getprocaddress等函数的父函数是否处于堆或栈内,如果是,报警并退出当前进程;否则回到getprocaddress等函数。[绕过方法]  detectapiret只是简单的将[esp+0x04]的值当做父函数的返回地址,所以只要将其该为一个合法的返回地址就可以了,再伪造一个函数调用环境。  比如我们要在shellcode里调用getprocaddress,在call detectapiret时正常的堆栈是这样------------0x0013aaaa //返回地址参数1参数2------------需要构造这样一个环境------------0x7c9231db //ntdll.dll中的地址,内容是0xc3(ret)参数1参数20x0013aaaa //真实的返回地址------------  所以,shellcode调用getprocaddress的时候,先push 0x0013aaaa,再push两个参数,最后push 0x7c9231db,然后jmp getprocaddress。  这里0x0013aaaa显然需要通过计算相对偏移地址来得出。 ---类似以前的blackice溢出,溢出成功的话能以system32权限执行

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

最新

返回顶部