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的有力证据。

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

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

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

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

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

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

apt28组织新的flash漏洞利用包dealerschoice分析的更多相关文章

  1. msf客户端渗透(二):PDF漏洞、恶意网站、flash漏洞、IE漏洞、java漏洞、android漏洞、VBScript感染payload

    这个漏洞利用只在XP上有效 利用pdf漏洞利用payload exploit生成一个pdf文件 传到被攻击机上 启动msf侦听 exploit -j XP上双击运行这个pdf时,kali获取到一个sh ...

  2. SMB协议利用之ms17-010-永恒之蓝漏洞抓包分析SMB协议

    SMB协议利用之ms17-010-永恒之蓝漏洞抓包分析SMB协议 实验环境: Kali msf以及wireshark Win7开启网络共享(SMB协议) 实验步骤: 1.查看本机数据库是否开启,发现数 ...

  3. Kali Linux渗透基础知识整理(三):漏洞利用

    漏洞利用阶段利用已获得的信息和各种攻击手段实施渗透.网络应用程序漏洞诊断项目的加密通信漏洞诊断是必须执行的.顾名思义,利用漏洞,达到攻击的目的. Metasploit Framework rdeskt ...

  4. LFI漏洞利用总结

    主要涉及到的函数 include(),require().include_once(),require_once() magic_quotes_gpc().allow_url_fopen().allo ...

  5. FCKeditor漏洞利用

    FCKeditor漏洞利用 查看编辑器版本 FCKeditor/_whatsnew.html fckeditor/editor/dialog/fck_about.html —————————————— ...

  6. ewebeditor编辑器ASP/ASPX/PHP/JSP版本漏洞利用总结及解决方法

    这个编辑器按脚本分主要有4个版本,ASP/ASPX/PHP/JSP 每个版本都有可以利用的漏洞.判断网站是否使用了eWebEditor查看程序源代码,看看源码中是否存在类似”ewebeditor.as ...

  7. Nmap备忘单:从探索到漏洞利用(Part 2)

    这是我们的第二期NMAP备忘单(第一期在此).基本上,我们将讨论一些高级NMAP扫描的技术,我们将进行一个中间人攻击(MITM).现在,游戏开始了. TCP SYN扫描 SYN扫描是默认的且最流行的扫 ...

  8. Nmap备忘单:从探索到漏洞利用 Part1

    在侦查过程中,信息收集的初始阶段是扫描. 侦查是什么? 侦查是尽可能多的收集目标网络的信息.从黑客的角度来看,信息收集对攻击非常有帮助,一般来说可以收集到以下信息: 电子邮件.端口号.操作系统.运行的 ...

  9. LFI漏洞利用总结(转载)

    主要涉及到的函数include(),require().include_once(),require_once()magic_quotes_gpc().allow_url_fopen().allow_ ...

随机推荐

  1. 在Android中Intent的概念及应用(二)——Intent过滤器相关选项

    一.如果多个Activity拥有同一个Intent Action,启动时用同一个Action启动会是什么情况? 如何指定某一个Activity启动? 在多个Activity拥有同一个Intent Ac ...

  2. java程序员快速掌握python系列——概述

    这一系列主要是总结学习python过程中的方方面面(已经学完,时间大概是一周左右).当然限于个人水平java也就是够用,python短时间内也不可能深入到哪里去.所以这次的分享的目的是能够快速使用py ...

  3. eclipse中的classes文件夹同步问题

    问题: 在同步项目时,由于误操作将classes文件夹加入到了同步版本中,这样会导致每次更新程序编译后,会有很多class文件显示在同步清单中. 解决方案: 将classes文件不设置为同步. 1. ...

  4. VB常用字符串操作函数

    1. ASC(X),Chr(X):转换字符字符码 [格式]: P=Asc(X) 返回字符串X的第一个字符的字符码 P=Chr(X) 返回字符码等于X的字符 [范例]: (1)P=Chr(65) ‘ 输 ...

  5. C和指针 第十五章 错误报告perror和exit

    15.1 错误报告 perror 任何一种程序都存在出错的可能,包括系统的函数库,当出现错误时,系统提示发生错误,标准库函数在一个外部整型变量中保存错误代码,然后把错误代码传给用户程序,提示错误原因. ...

  6. javascript学习笔记(2)————this

    //简单的学习JavaScript中this关键词 //this在于我简单的理解就是谁调用了当前方法(函数),this就指向谁 var a = 20; function fn1(){ this.a = ...

  7. 委托、Lambda表达式和事件

    1.1 引用方法      委托是寻址方法的 .NET 版本.委托是类型安全的类.它定义了返回类型和参数的类型.委托类不仅包含对方法的引用,也可以包含对多个方法的引用.      Lambda 表达式 ...

  8. spring中InitializingBean接口使用理解

    InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候会执行该方法. 测试程序如下: imp ...

  9. 【Network】OVS、VXLAN/GRE、OVN等 实现 Docker/Kubernetes 网络的多租户隔离

    多租户隔离 DragonFlow与OVN | SDNLAB | 专注网络创新技术 Neutron社区每周记(6.25~7.6)| OVS将加入Linux基金会?OVN或抛弃ovsdb? | Unite ...

  10. Java的Json解析包FastJson使用

    阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser. ...