Jirairya

Payment_Advice.ppsx

2017-09-11

Payment_Advice.ppsx的ppt文件是Poison Ivy木马的变种,该文件为OOXML格式,一旦受害者利用office办公软件打开此文件,文件中的恶意代码就会执行,它会下载Poison Ivy恶意软件到受害者主机上运行

实验环境

系统环境:Windows 7 , Vmware Station Pro 12.5 软件环境:office 2013

实验影响的office有:office 2010,office 2013,office 2016

分析

下载&文件结构分析

下载目标样本e7931270a89035125e6e6655c04fee00798c4c2d15846947e41df6bba36c75ae,使用tree初步分析其文件结构:

tree分析结构

tree分析

.\ppt\slides\子目录下看到,slide1.xml是图1中自动展示的幻灯片,.\_rels\slide1.xml.rels文件是关系文件,定义了slide1.xml用到的资源.

打开两个相关文件,关系如下:

xml文件和xml.rels的关系

运行

,更改文件后缀名为ppsx,其表示为PowerPointShow,运行,以演示模式打开,这允许恶意代码自动执行,弹出消息框警告,继续运行:

运行ppsx

运行之后,开始菜单的启动项出现了thumbs.vbs文件:

启动项的vbs脚本

分析

为开机自启动项的Thumb.vbs从http://203.248.116.182/images/Thumbs.bmp下载了一个bmp文件,并通过微软的msiexec.exe程序执行(.MSI文件的默认句柄)。MSI文件包含了一个PE文件,这个PE在msiexec.exe加载时执行,通过此方法绕过AV的检测。

木马的msi程序形态

使用压缩软件/文件查看器查看该文件,从文件包中提取出PE文件

bmp文件包含内容

并分析得到其为.NET文件,使用dnspy分析:

Main()函数

rGHDcvkN.Exec()函数

rGHDcvkN.Exec()函数

该代码显示了.Net程序在大数组中运行一个线程来执行代码。从内存空间动态加载恶意软件代码到新分配的内存缓冲区,然后根据新基地址修复重定位问题并修正代码主体的API偏移,最后才调用主体代码的入口函数。

该木马所有API是加密的,得到调用的时候才会恢复:

sub_1B0E6122proc near      

   mov  rax, 0FFFFFFFF88E23B10h

   neg  rax

   jmp  rax  ;; CreateRemoteThread

sub_1B0E6122endp

所有字符串均经过加密,使用前才解密,比如以下是加密的ntdll字符串:

unk_1AFD538C  db 54h, 0B2h, 9Bh, 0F1h, 47h, 0Ch  ; ==> "ntdll"

通过动态分析,该木马会自动检测命名管道\\.\Regmon\\.FileMon等,若无法创建命名管道,则表示有分析工具在运行,该程序就会立即终止进程。

其也会检测所有运行的windows程序是否有包含特殊字符的windows类名来判断有没有运行中的分析工具。 其通过检测Wireshark-is-running-{…}进行反抓包,通过IsDebuggerPresent函数的返回值是否为1判断是否在被调试,若在被调试自动退出进程。

该恶意程序加密了6个不同的模块,并创建一个双链接列表保存管理加载的模块,这些模块中隐藏了其主要的功能,该方式给动态调试增大了难度。

该程序会注入代码和数据到svchost.exe中,注入的代码和数据是恶意程序的核心功能,会跟随svchost.exe的重新运行而重复进行反调试,加解密运行等步骤。

后因保存在Pastbin上的C&C服务和IP的页面已经不存在,无法继续进行分析。

参考:http://blog.fortinet.com/2017/08/23/deep-analysis-of-new-poison-ivy-variant


上一篇 Linux命令行

Comments

Content