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

  • 相关阅读:
    最大熵原理
    python单引号、双引号和三双引号的区别
    python的字典
    hadoop jar xxxx.jar 执行的流程
    java 正则表达式
    secureCRT中vim个性化设置
    python关系运算符的全称
    C# 分割字符
    委托(delegate)
    在C#中,委托(delegate)
  • 原文地址:https://www.cnblogs.com/goabout2/p/5982979.html
Copyright © 2011-2022 走看看