Win7中利用Msgreen.dll加载绕过office 2010 DEP保护

2013-05-04 00:01:24 11 1560
在这篇文章中,我们将讨论一种新的技术,Windows 7 中用来绕过Office 2010中的ASLR保护。结束这篇文章,你将能够了解到如何在Windows 7上运行Office 2010的漏洞,
简单起见,我再次选择CVE 2010-3333。在我最后发表的文章中,我讨论了漏洞适用于Windows XP的整个概念,在这里,我将讨论为Windows 7。XP和Windows 7之间的一个
细微差别是在XP是没有任何ASLR概念的,而Windows 7中的ASLR是一个新的概念。这就是为什么成功地利用这个漏洞在Windows 7中与XP相比,是相当复杂的。有一点要注意的是,
如果一个应用程序配备了ASLR和DEP保护,会很难绕过它,但不是不可能的。现在我要讨论多一点ASLR / DEP,
ASLR(Address space layout randomization)是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,
防止攻击直接定位攻击代码位置,达到阻止溢出攻击的目的。DEP - 数据执行保护的缩写,是一套软硬件技术,能够在内存上执行额外检查以帮助防止在系统上运行恶意代码。
两者结合使用时,它开发应用程序的shellcode或返回面向对象编程技术(ROP)中的漏洞变得极其困难的。
在最后发表的文章中,我已经提到的过程中,如何绕过DEP使用返回面向对象编程,所以现在我不打算详细讨论如何使ROP链,而是我会直接移动到该点,使我们在Windows 7上成功的攻击Office 2010。
所以,当我们知道,在Windows 7中,所有模块都启用了ASLR(地址空间布局随机化),所以我必须要仔细选择的模块,没有ASLR启用,并从该模块中,我们将ROP链绕过DEP。  
所以很明显,现在,我们有一个ROP链,从相同的dll,是为了绕过DEP的msgr3en.dll。
现在,这里是神奇地方的开始; msgr3en.dll被加载后很长的时间间隔,这意味着我们的攻击将无法正常工作,我们的攻击只有当我们打开我们的攻击从文件 - >打开
   
但是,我们不希望我们的攻击将通过文件→打开,我们希望我们的expliot利用由 double clicking.主要问题是msgren.dll的dll被加载后时间间隔长。因此,我们一定要利用此漏洞,在这样一种方式,
我们的shellcode / ROP应该得到执行,一旦msgreen.dll文件被加载。为了做到这一点,我使用了一个技术,我已经嵌入400页面,使一个延迟加载,使msgreen.dll可以得到在执行前我们的ROP和shellcode。一旦所有的400页加载,msgreen.dll会自动加载,之后被执行我们的shellcode。其余都是一样的:那就是我从msgreen.dll使用ROP链等。
现在我们有一个问题是如何加载400页面?好了,先来看看下面的代码,已经开始与我们的exploit /有效载荷的变量称为TMPL。这是神奇的都应该使用400页面。
fo = open(“template”, “rb”)
tmpl = fo.read();
fo.close()
herefo=open(“template”, “rb”)
此功能已被用来打开一个模板文件,它的功能是加载400页面,而打开此页或400页面后加载,msgreen.dll将得到加载,一旦msgreen.dll所有的代码我们的所有shellcode代码,漏洞将执行完成。
下面是如何使400页面的模板。这无非是刚好打开MSOFFICE,按回车400次(400页面),把它保存为RTF文件,该做的都做了!
   
创建<399页>

然后将它保存为模板。现在这个文件被加载,使延迟加载msgreen.dll这个模板后,我已经使用头部(如下面的代码),其中包含实际的脆弱的片段部分的功能和参数。
payload = tmpl + header + Main + req + control + rop + VirtualProtect + param1 + param2 + call + nops + shellcode + end
所以,现在我希望你是清楚可见他所有变量的值,这使得上述的有效载荷部分。我可以在同一页面上,利用此漏洞的存在,但它变得冗长包括所有十六进制值的模板。我仍给您的十六进制值的图像。
   
下面是完整的利用代码:
   exploit.zip
f1c589e52a84fa97794337ab691b253e.zip (1.96 KB)

在这里,所有的有效载荷中的变量是非常清晰和具有自我理解的。我说的是TMPL变量的有效载荷 - TMPL是一个RTF文件有400页,页面会首先加载,然后剩下的代码被执行。让我们的抽样,并执行代码...
  
利用漏洞攻击代码已被执行。仔细观察上面的状态栏,您将看到邮件页面 1 of 399.这是伟大的,因为它显示了 399 页获取加载的只是该 tmpl 变量。
   

以上是利用TMPL用来绕过msgreen.dll的内容.

关于作者

评论11次

要评论?请先  登录  或  注册