科普:分析一个flashexploit的样本

科普:分析一个flashexploit的样本

ID:24652213

大小:53.00 KB

页数:4页

时间:2018-11-15

科普:分析一个flashexploit的样本_第1页
科普:分析一个flashexploit的样本_第2页
科普:分析一个flashexploit的样本_第3页
科普:分析一个flashexploit的样本_第4页
资源描述:

《科普:分析一个flashexploit的样本》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、科普:分析一个flashexploit的样本~教育资源库  有不少朋友一直怂恿我写这么一个马后炮分析的文章,也拖了好久,现在放出来了。  首先感谢MarkDoat    MarkDoeLabelData86  DefineBits6  DOABC82  SHOE1  其中Sing中提到的算法:  #defineENC_HIGH_BIT0x80  #defineENC_BYTE_MASK0x7f  unsignedchartemp=iENC_BYTE_MASK;  i=i>>7;  if(i>0)  temp

2、=ENC_HIGH_BIT; 

3、 解码算法:  #defineENC_BITSPERBYTE7  #defineENC_BYTEMASK0x7f  #defineENC_HIGHBIT0x80  do  {  if(shift>4*ENC_BITSPERBYTE)  break;  temp=readUInt8(f);  result

4、=(ENC_BYTEMASKtemp)<<shift;  shift+=ENC_BITSPERBYTE;  }p));  文件中的99be8ea008就是一个encoded的整数值,decode以后获得的值为:  0x08a08eb4是经

5、过计算后的OpcodeMark的位置,根据MarkDoask_address+(marker_byte–(marker_byte%4))+4  scene_count=(0x80000000

6、(address/12))  再次还原后得到的值为0x302b3928,对应flash.ocx中Marker值0xf8的索引位置。  DoABC位于文件偏移的0x463处,其中修改过的ABC(ActionByteCode)在0x5b3处。    这段ABC符合MarkDoeLabelData结构时候存在一个空指针引用的漏洞,malloc()分配内存失败返回

7、一个空指针,紧接着又会往这个指针+offset的地方写上任意的2字节的值,offset和写入的值都是可控,MarkDoarker值(如上图所示意)就可以传递一串任意的指令来达到修改栈上数据的目的。  在这里可能很多朋友会产生疑问,不用0xf8不一样能传递这些指令么,的确是能够传递,但是AVM2首先会调用alloca_probe在stack上分配一个空间来作为AVM2的虚拟栈,也就是说所有的指令都在这个栈上进行处理从而不会干扰程序原本的栈,例如get_local指令,这个指令只有一个offset的参数,而AVM2是这样解析这条指令,从虚拟栈的基地址+offs

8、et*4的地12下一页友情提醒:,特别!方取出一个des:    HookNtCreateProcess/Ntemory绕过第三方保护软件针对这2个API的保护,修复CreateProcessInternalpPathA()获取临时文件目录,调用DeleteFile删除orz.exe,并且下载新的木马文件保存为orz.exe然后调用CreateProcessInternalA执行它,shellcode这部分已经有朋友发了详细的分析文章,大家可以参靠的那篇。  还有一些通用性和稳定性的在这个exploit未被考虑的,比如flash的CWS功能,以及在shel

9、lcode中恢复进程的上下文等。上一页12友情提醒:,特别!

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。