FireEye的安全研究人员Abdulellah Alsaheel 和 Raghav Pande已经找到一种方法,通过利用Microsoft的增强减灾体验工具(EMET)可以破解工具本身,使其保护失效。增强减灾体验工具是由微软推出的,用于提高漏洞开发的成本,它并非可以保护系统免受恶意攻击的解决方案。
增强减灾体验工具(EMET)旨在通过识别网络攻击的模式,以防止攻击者对系统实施攻击。
Microsoft为微软增强减灾体验工具(EMET)提供的说明为:
“EMET能为Windows平台和应用程序(包括第三方应用程序)提供最新的安全方案和技术,比如随机地址空间分配(ASLR)、数据执行保护(DEP),让用户免受未修复漏洞的影响并保护用户不受攻击,而不管这些漏洞是已知的还是未知的。”
增强减灾体验工具(EMET)的工作原理是:在应用软件中安装防病毒库,从而试图对在主要应用程序界面(APIs)中的任何电话的执行和分析的相关过程中的任何可疑性活动进行早期检测。
“EMET注入emet.dll或EMET64.dll(取决于架构)到每一个安装了Windows API hooks(通过DLL输出函数,诸如KERNEL32.DLL,NTDLL.DLL和kernelbase.dll)的受保护的进程。这些hooks为EMET提供分析关键API中的任意代码调用以及确定它们是否合法的能力。如果代码被认为是合法的,EMET就会将代码转回到请求的API。否则,它会触发保护机制。”
研究人员将他们的精力主要集中在禁用增强减灾体验工具上。这意味着攻击者可以在自己的应用程序中加入代码,从而调用在增强减灾体验工具中的禁用功能。
退出“功能”实践到emet.dll中就意味着从一个程序中彻底的退出。
“不过,在EMET内存在一部分代码负责卸载EMET。该代码会自动禁用EMET保护和程序返回到以前未受保护的状态。要完全禁用EMET需要定位和调用这个函数。在EMET.dll v5.2.0.1中,该函数位于OFFSET 0×65813。跳转到该函数会导致后续调用,删除EMET的安装hooks。“
对研究人员而言,最特别的问题是检索emet.dll的基址来借助这个函数逮捕它。专家们使用未由Microsoft增强减灾体验工具(EMET)hook的GetModuleHandleW函数来检索地址。
这已经不是第一次,安全专家找到方法来绕过EMET,但不同于以往的是,此次二人提出的技术并不依赖于漏洞或缺失功能。
二人解释道:
“这种使用EMET卸载EMET保护的新技术是可靠的,并且比此前公布的EMET禁用或绕过技术更为容易。整个技术适用于一个短且简单的ROP链中。它只需要泄露DLL的基地址导入GetModuleHandleW(如Mshtml.dll),而不是在进程空间的全读能力。 自从emet.dll的DllMain函数被输出后,绕过技术便不再需要hard-coded特定版本的offsets,而且该技术适用于EMET的所有测试版本(4.1,5.1,5.2,5.2.0.1)。”
*原文地址: securityaffairs ,晶颜123编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)