zoukankan      html  css  js  c++  java
  • apt28组织新的flash漏洞利用包dealerschoice分析

    17号paloalto发布了文章dealerschoice-sofacys-flash-player-exploit-platform,文中提到apt28正在编写adobe flash player的利用工具包,遂将样本下下来分析了一番。

    和之前很多的flash漏洞利用不同,这次apt28将自身的漏洞利用工具作为ole的一部分捆绑到rtf文件中,运行结果如下,可以看到运行之后,直接显示的是一个word文档,内容是关于俄罗斯的,看来这次是要搞老毛子咯。。。。。。

    Rtf文件处理

    直接通过officeMalScanner跑显示是一个rtf文档。

     

    那就使用REFScan解包咯,结果是两个OLE。

     

    解压之后发现这两个ole文件中有一个即为swf文件。

     

    Swf分析

    反编译之后,符合paloalto文中提到的Main,ExtSwf,ExtSwf1,ExtSwf2的结构

     

    具体的main函数如下分别解密shellcode,和exp.swf。

     

    获取flash版本,根据版本返回对应的exp。

    直接在loadBytes前通过trace将解密的swf输出。

     

    这个地方报错了,主要是一开始使用的flash版问题,此时使用的是flash10,使用18以上就没有问题了。

     

    换成高版本flash之后,可以看到log记录下的swf文件。

     

    反编译解密之后的swf文件,结果不论是as3,还是ffdec都出问题了,尤其是AS3中报的错为zlib解压失败,通常的swf文件是FWS和CWS两种格式,CWS是压缩格式,flash在运行的时候通过文件头的标记判断,如果是CWS格式,则从偏移0x8的位置开始通过zlib解压,这个地方报错的话,说明我们的log中的文件出了问题。

    在010中跑模板之后,可以看到这个地方UncompressedSize的长度确实是有问题(太大了。。。。。)

     

    Windbg dump

    这样的话就只好通过调试,使用我自己编写的监控工具,可以看到flash运行起来后的函数调用,如下图所示,对flash漏洞熟悉的话,就会知道这个地方是CVE-2015-7645的利用代码。

     

    直接在LoayBytes的jit函数下断点,运行之后断下。

    此时内存中的解密之后的exp.swf,可直接dump。

    漏洞exp.swf触发后使用的shellcode。

     

    此时再反编译dump出的exp,可以看到,这是一个标准的CVE-2015-7645利用。

     

    在利用代码里还可以看到apt28准备将该工具实现跨平台的野心。

     

    漏洞触发之后,shellcode会解压出对应的nshwmpfs.dll,熟悉apt28的都知道,nshwmsf.dll是近年apt28组织漏洞触发之后用于常驻的木马,该木马改编自13年泄露源码的carberp木马,这也是paloalto将这个样本归属为apt28的有力证据。

     

    之后会通过设置HKCUSoftwareMicrosoftOffice testSpecialPerf:来实现常驻自启动,这个键值会在用户打开office的时候实现该恶意dll的自动加载,和通常的开机加载有很大的区别,这样做的好处就是一般的沙盒无法直接跑这一类的样本,而这样的做法也是apt28在今年早些时候使用的一种技巧,这也是将样本归属为apt28的有力证据,

     

    具体导致加载的dll为wwlib.dll,其会加载该键值下的dll,并调用该dll导出的函数_GetPerfhostHookVersion@0,_InitPerf,_PerfCodeMarker,_UnInitPerf,覆盖版本2007,2010,2013,2015,2016的word,ppt,excel,outlook,onenote。

    当然在你的机器上可以通过创建HKCUSoftwareMicrosoftOffice test,并移除当前用户对此键值的写权限来避免此类攻击。

    实际上该键值是微软开发时的一个类似调试使用的键值,正常安装的时候根本不会使用,结果被apt28使用了。。。。。。

    目前来看apt28的该工具包还不够成熟,虽然使用的漏洞确实够了,但是对于样本的保护相比于成熟的exploitkit还有很大的差距,paloalto中提到的dealerschoice2,在该版本中将exp代码移到了服务端,但是具体还处于测试阶段,而这种做法也确实是很多成熟flash exploitkit使用的技巧,后期会持续关注这个exploitkit的成长。。。。。。。

    参考自:http://researchcenter.paloaltonetworks.com/2016/10/unit42-dealerschoice-sofacys-flash-player-exploit-platform

  • 相关阅读:
    51 Nod 1086 多重背包问题(单调队列优化)
    51 Nod 1086 多重背包问题(二进制优化)
    51 Nod 1085 01背包问题
    poj 2559 Largest Rectangle(单调栈)
    51 Nod 1089 最长回文子串(Manacher算法)
    51 Nod N的阶乘的长度 (斯特林近似)
    51 Nod 1134 最长递增子序列(经典问题回顾)
    51 Nod 1020 逆序排列
    PCA-主成分分析(Principal components analysis)
    Python中cPickle
  • 原文地址:https://www.cnblogs.com/goabout2/p/5982979.html
Copyright © 2011-2022 走看看