记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

针对Mac OS X和Windows两大系统的恶意word文档分析

2017-03-30 05:05

针对Mac OS X和Windows两大系统的恶意word文档分析。3月16日,FortiGuard实验室捕获了一个新的Word文件,它可以通过执行恶意VBA(Visual Basic for Applications)代码来传播恶意软件。该样本的目标是针对苹果 Mac OS X和微软 Windows系统。随后我们分析该样本,在本文中,将会逐步解释它的工作原理。

当Word文件打开时,它显示一个通知受害者启用宏的安全选项,这将会允许执行恶意的VBA代码。

恶意Word文件被打开

\

图1.要求受害者启用宏安全选项

恶意VBA代码一旦被执行,AutoOpen()函数就会被自动调用。它首先做的是从Word文件的“注释”属性中读取数据。

\

图2. Word文件的“注释”属性

“注释”的值是一个base64编码,可以通过以下VBA代码读出和解码:

\

在base64解码之后,我们可以获得明文代码,可以看出是一个python脚本,如下所示。

\

接下来,代码将根据操作系统类型(苹果Mac OS或微软Windows)执行不同的路由,这点你可以在图3的流程图中看到。

\

图3.根据OS类型调用不同的路由

我们发现这个恶意的VBA代码是在使用metasploit框架获取的代码基础上进行了略微修改,你可以在https//github.com/rapid7/metasploit-framework/blob/master/external/source/exploits/office_word_macro/macro.vba 中找到它们。

在苹果Mac OS X中如何工作

你可能知道,Mac OS X附带了苹果预装的Python环境,这允许它默认执行python脚本。如上所述,base64解码的python脚本被传递到将在函数底部执行的ExecuteForOSX函数上(参见图3)。

python脚本比较简单,它从base64编码的字符串中提取代码并执行。如下,你可以看到它被解码后的情况,这是一个很清晰的python脚本。

\

当执行python脚本时,它会从“hxxps://sushi.vvlxpress.com:443/HA1QE”下载一个文件,并执行它。下载的python脚本是 Python meterpreter文件稍微修改后的版本,它也是Metasploit框架的一部分。项目的源代码可以从以下URL下载:https://github.com/rapid7/metasploit-payloads/blob/master/python/meterpreter/meterpreter.py 。

下载的文件(HA1QE)和原始文件之间的主要变化如下:

\

图4. HA1QE和meterpreter.py之间的差异

HTTP_CONNECTION_URL常量(hxxps://sushi.vvlxpress.com:443/TtxCTzF1Q2gqND8gcvg-cwGEk5tPhorXkzS0gXv9-zFqsvVHxi-1804lm2zGUE31cs/)被设置为脚本将要连接的Metasploit目标端点。

PAYLOAD_UUID常量用作客户端的标识符,我们认为这些常量也被攻击者用于活动跟踪。

脚本一旦执行后,便会尝试连接到主机“sushi.vvlxpress.com” 的 443端口上。但是在分析过程中发出请求时,服务器没有回答客户端请求。

\

图5. Wireshark显示连接到服务器时TCP重传错误

在尝试连接到可到达的服务器时,python进程在系统上保持活动状态。

\

图6.尝试连接到服务器的Python脚本

在微软Windows中如何工作

尽管ExecuteForWindows函数的参数与ExecuteForOSX函数相同,但代码并没有使用它。取而代之,使用cmd.exe通过DOS样式的命令字符串来启动。当命令执行时,powershell.exe被静默(-w隐藏窗口)启动,并且它执行base64编码的代码(-e base64编码的代码。)更多的详细信息,请参阅以下屏幕截图。

\

图7. Dos样式命令

依旧是base64,这个恶意软件的作者喜欢使用base64对敏感代码进行编码。我们将在其余的分析中看到更多的base64编码数据。

解码base64编码的数据,我们得到以下powershell脚本:

\

上述PowerShell脚本的主要工作是解压缩一段基于base64编码的gzip数据,以获取另一个PowerShell脚本(通过调用FromBase64String()和GzipStream())并执行它(通过调用Start($ s))。

接下来,我们继续看看解压缩的powershell代码。为了更好理解,我修改了一些函数和变量名。

以下是代码段:

\

从上面的PowerShell代码,我们可以看到它首先解码了base64编码的数据。实际上,这是随后要执行的64位二进制代码。然后,它在当前进程(powershell.exe)中分配了一个缓冲区,并通过调用VirtualAlloc和拷贝函数将64位代码复制到缓冲区中。最后,它调用CreateThread函数,其线程函数指向新缓冲区。这意味着64位代码是线程函数并可以被执行。根据我们的分析,这个恶意软件只影响64位Windows。

\

图8. 64位ASM代码

我们分析了IDA Pro中的64位代码,如上图所示。一旦启动,它将从“hxxps://pizza.vvlxpress.com:443 / kH-G5”下载文件到新分配的缓冲区中。下载的文件实际上是一个64位的DLL文件。在线程函数完成之前,它的堆栈返回地址被设置为下载的64位DLL缓冲区地址。这意味着64位DLL在线程函数返回时被执行。

接下来,我们看到DLL可以与其服务器通信,例如“hxxps:// pizza.vvlxpress.com:443/5MTb8oL0ZTfWeNd6jrRhOA1uf-yhSGVG-wS4aJuLawN7dWsXayutfdgjFmFG9zbExdluaHaLvLjjeB02jkts1pq2bR/”。我们可以在调试器中看到它,如下所示。

\

图9.与其服务器的通信

在这一点上,我们仍在努力分析下载的DLL,并尝试从中收集更多信息。我们稍后会分享有关此恶意软件的更多详细信息,因为我们发现了更多有趣的细节。

缓解措施

原始Word样本文件已被FortiGuard 反病毒服务检出为“WM/Agent.7F67!tr”。

IoCs

URL:

hxxps://sushi.vvlxpress.com:443/HA1QE

hxxps://pizza.vvlxpress.com:443/kH-G5

hxxps://pizza.vvlxpress.com:443/5MTb8oL0ZTfWeNd6jrRhOA1uf-yhSGVG-wS4aJuLawN7dWsXayutfdgjFmFG9zbExdluaHaLvLjjeB02jkts1pq2bR/

hxxps://sushi.vvlxpress.com:443/TtxCTzF1Q2gqND8gcvg-cwGEk5tPhorXkzS0gXv9-zFqsvVHxi-1804lm2zGUE31cs/

样本SHA256:

Sample.doc 06A134A63CCAE0F5654C15601D818EF44FBA578D0FDF325CADFA9B089CF48A74

HA1QE.py 3A0924D55FB3BF3C5F40ADCE0BD281D75E62D0A52D8ADFA05F2084BA37D212C8

kH-G5.dll C36021A2D80077C2118628ED6DB330FEF57D76810FF447EF80D2AB35B95099BC

知识来源: www.2cto.com/article/201703/618537.html

阅读:112070 | 评论:0 | 标签:无

想收藏或者和大家分享这篇好文章→复制链接地址

“针对Mac OS X和Windows两大系统的恶意word文档分析”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云

本页关键词