未加星标

从测试到武器化:OliRig组织Tempo恶意活动分析

字体大小 | |
[系统(windows) 所属分类 系统(windows) | 发布者 店小二05 | 时间 2018 | 作者 红领巾 ] 0人收藏点击收藏

一、概述

在攻击的早期阶段,我们其实很难深入了解攻击者的节奏。通常,在侦查(Reconnaissance)和武器化(Weaponization)阶段,如果研究人员想要确定攻击者大致需要多久才能与目标直接进行交互,他们用于分析的数据少之又少。我们在对2018年8月攻击中东地区政府并投递BONDUPDATER恶意软件的组织进行持续分析的同时,观察到OliRig的一系列测试活动。我们有证据表明,这些测试活动与攻击中所使用的武器化交付文件具有关联性。

由于我们此前已经观察到OilRig在他们的交付文档和TwoFace WebShell上进行测试活动,因此这次也成功发现,OilRig在他们的开发过程中使用了一个测试组件。这一测试组件用于对其交付文档进行部分修改,并将其提交到在线反病毒扫描工具,从而确定所提交文件的被检测情况,从而找出规避检测的方法。利用这些在线扫描程序,攻击者可以迅速了解哪些反病毒引擎能够检测到恶意软件,在侧面为攻击者提供了一个“质量保证服务”。

为了确定OilRig恶意组织的时间线,我们比较了测试文件的创建时间、交付文档的创建时间以及攻击过程中鱼叉式网络钓鱼邮件的发送时间。我们发现,OilRig在对目标发起攻击的6天前就开始进行测试工作,并且在8月20日、21日和26日尝试进行了三次测试。测试人员在交付文档创建的8小时前创建了最终的测试文件,随即在20分钟后将交付文档通过鱼叉式网络钓鱼邮件发出。

二、测试活动

在调查OilRig组织利用最新版本的Boudupdater进行攻击的过程中,研究人员查找了OilRig利用过的其他Microsoft Office文档,从而希望找到在同一时期内用于其他攻击的恶意软件。我们找到OilRig制作的原始Microsoft文档后,重点对其进行了功能性分析。

我们的研究人员共计发现了11个额外的样本,这些样本分别在几个反病毒测试平台提交,如下表所示。这些样本似乎都是OilRig在开发和测试阶段创建的,所有这些文件都与最终的交付文档有众多相似之处。此外,下表中也包含了OilRig最近针对中东政府攻击所使用的文件N56.15.doc(7cbad6b3f505a199d6766a86b41ed23786bbb99dab9cae6c18936afdc2512f00)。在此测试期间,我们发现文档的名称中包含我们在此前攻击中见过的C&C,特别是文档XLS-withyourface.xls和XLS-withyourface test.xls。由于这些文档在元数据、宏代码和包含C&C域名的文件名中具有高度相似性,因此我们认为,这些文件实际上是OilRig在8月26日发动攻击前的测试文件。有趣的是,尽管所有测试文件都是Microsoft Excel文档,但在实际攻击中使用的是Microsoft Word文档。


从测试到武器化:OliRig组织Tempo恶意活动分析

根据上述表格中的元数据,可以看出OilRig开发人员在针对目标发动攻击的6天前(8月20日)就开始创建这些测试文档。OilRig进行的所有测试活动都发生在8月26日的攻击之前。我们通过查看测试活动和攻击活动中相关文件的“上次修改日期”,很容易绘制出完整恶意活动的时间轴,如下图所示。


从测试到武器化:OliRig组织Tempo恶意活动分析

8月20日,有22个反病毒引擎检测到XLS-withyourface.xls的第一次迭代版本存在威胁,如下面的图表所示。在接下来的7分钟内,测试人员创建了另外两个样本,其检出数量降低了16,仅有6个反病毒引擎能够成功检出。测试过程中,检测率的最低值出现在测试阶段的早期,也就是8月21日。在上图的时间轴中,展示了测试活动的详细情况。最后一次测试迭代发生在实际攻击所使用的Word文档创建前不到8个小时。


从测试到武器化:OliRig组织Tempo恶意活动分析

上图的图表展现了在每次测试迭代期间,测试人员修改Excel文档时检测率的升降趋势。检测率的这些变化,能够让测试人员清楚的了解这些对文件的修改是否能避免被检出。在分析他们的测试活动时,我们将每次迭代中执行的更改数量(基于GitHub文件的修改记录,主要关注插入和删除的行数)与检测率进行比较,从而确定改动的多少是否与检测率的升降有关。结果表明,迭代1和迭代2之间只有很小的变动,然而检测率却发生了大幅下降。而迭代3和迭代4都进行了大量改动,检测率分别小幅下降和大幅增加。

站在一个较高的层面上来看,改动的代码量对于测试者来说并不重要,他们真正关注的是这一改动是否能够带来检测率的降低,以及是否能够提供有关如何规避检测的有用信息。其中的一个例子是,在迭代2中他们删除了使用“wscript”运行已经交付的VBScript的代码行,从而将检测率从16降低到6。最终,测试人员使用了这些测试迭代过程中获得的知识,创建了一个更难检测且能够成功实现攻击的交付文档。

三、测试过程中的迭代分析

我们对该恶意组织测试过程中的每次迭代版本进行了分析。我们进行分析的大致思路如下:

1、文件变化:比较两个文件的SHA256哈希值,以确定恶意组织对文件是否做出了更改。

2、文件名变化:比较两个文件的文件名。

3、时间差:在每个文件的元数据中,找到“已修改”的时间戳,并比较其时间差。

4、检测率变化:比较两个文件的检测率,从而发现测试迭代之间的变化对整体检测所产生的影响。

在每个迭代版本的分析中,重点关注针对交付文档中宏所做的更改。在比较文件代码差异的截图中也能直观的看到这些变化,红色背景的代码是删除的部分,绿色背景的代码是添加部分。

3.1 迭代0 在测试过程中,我们所监测到的第一个文档似乎不是由恶意组织创建的原始文档。因为,该Excel中包含名为__SRP_0的流,该流中似乎包含交付文档早先版本中的工件。__SRP_0流中包含工件,特别是一系列Base 64编码的字符串。将这些字符串进行解码之后,我们发现它几乎就是名为“AppPool.ps1”的Boundupdater PowerShell Payload脚本,该脚本在此前OilRig对中东政府发动攻击时,作为恶意软件((7cbad6b3f505a199d6766a86b41ed23786bbb99dab9cae6c18936afdc2512f00))的交付脚本。我们将__SRP_0中解码后的Base 64字符串与之前分析过的AppPool.ps1文件进行了比较,二者完全相同(包括withyourface[.]com这一C&C域名),唯一的区别是换行符和空格。
从测试到武器化:OliRig组织Tempo恶意活动分析

当我们分析这个特定的样本时,我们注意到测试人员已经对PowerShell Payload进行了修改。与之前由宏写入AppPool.ps1文件不同,在这里,恶意Excel文档中的宏只负责写入AppPool.vbs,随后将使用“wscript”运行宏。随后,VBScript负责将AppPool.ps1写入到系统之中。这一点,与我们之前分析的Word文档有很大不同。

此外,测试人员似乎彻底从样本中删除了Boundupdater Payload。AppPool.vbs脚本使用一个名为“mysrc”的空变量,该变量将用于存储Base 64编码后的Payload,该内容将会被解码,随后保存到AppPool.ps1文件中。

如前所述,我们认为这一测试活动先于我们此前分析的Word交付文档。此外,我们还认为这不是恶意组织进行的第一轮测试,因为__SRP_0流中存在的Boundupdater工具表明,测试人员在此之前已经创建了一个包含Payload的恶意文档。测试人员可能对PowerShell Payload进行了测试,并将其删除,从而防止交付文档中的宏被检测。

3.2 迭代1

文件变化:

6f522b1be1f2b6642c292bb3fb57f523ebedeb04f0d18efa2a283e79f3689a9f

9b6ebc44e4452d8c53c21b0fdd8311bac10dc672309b67d7f214fbd2a08962ce

文件名变化:XLS-withyourface.xls -> XLS-withyourface.xls

时间差:1分钟41秒

检测率变化:22 -> 16

在此迭代中,测试人员进行了一次简单的更改,其中包括删除字符串“powershell.exe”,使其不被写入到AppPool.vbs文件中。这一更改实质上会破坏安装过程,因为VBScript将无法再正确运行AppPool.ps1。测试人员之所以进行这样的更改,是想要测试删去该字符串是否能有效降低检测率。下图没有直观展现出“powershell.exe”字符串的变化,但仔细观察第24行Shell0的位置,可以在左侧看到“powershell.exe -exec bypass”(红色)和“-exec bypass”(绿色)字样。


从测试到武器化:OliRig组织Tempo恶意活动分析
3.3 迭代2

1、文件变化:

9b6ebc44e4452d8c53c21b0fdd8311bac10dc672309b67d7f214fbd2a08962ce

a5bec7573b743932329b794042f38571dd91731ae50757317bdaf9e820ec8d5e

2、文件名变化:XLS-withyourface.xls -> XLS-withyourface.xls

3、时间差:6分钟57秒

4、检测率变化:16 > 6

在这一迭代中,测试人员删除了运行AppPool.vbs脚本的代码,如下图所示。


从测试到武器化:OliRig组织Tempo恶意活动分析
3.4 迭代3

1、文件变化:

a5bec7573b743932329b794042f38571dd91731ae50757317bdaf9e820ec8d5e

a5bec7573b743932329b794042f38571dd91731ae50757317bdaf9e820ec8d5e

2、文件名变化:XLS-withyourface.xls -> XLS-withyourface.xls

3、时间差:10小时46分钟1秒

4、检测率变化:6 -> 4

在此迭代中,测试人员对宏进行了相当重要的更改。首先,他们加入了一行代码,在创建C:\ProgramData\windowsAppPool文件夹后、将AppPool.vbs写入该文件夹前将睡眠10秒,这一变动可以在下图的第12行看到。此外,还将Base 64编码后的Boudupdater PowerShell Payload添加到DDDD变量中,而不是先前版本所看到的VBScript。在这里,Base 64编码后的Boudupdater与迭代0中提及的第一个测试样本缓存__SRP_0流中的Boudupdater完全相同。最后,这一版本还删除了设置Shell0变量以包含“wscript.shell”对象的相应行,这一行理论上是用来运行VBScript。

添加了Sleep代码:


从测试到武器化:OliRig组织Tempo恶意活动分析

对用于存储VBScript的变量进行更改:


从测试到武器化:OliRig组织Tempo恶意活动分析

删除了“wscript.shell”对象:


从测试到武器化:OliRig组织Tempo恶意活动分析
3.5 迭代4

1、文件变化:

6719e80361950cdb10c4a4fcccc389c2a26eaab761c202870353fe65e8f954a3

056ffc13a7a2e944f7ab8c99ea9a2d1b429bbafa280eb2043678aa8b259999aa

2、文件名变化:XLS-withyourface.xls -> sss.xls

3、时间差:1小时33分钟24秒

4、检测率变化:4 -> 18

在此迭代中,测试人员使用上一次迭代中替换的VBScript,来替换宏中Base 64编码后的PowerShell脚本。此外,还删除了一些实例化的Scripting.FileSystemObject以及Wscript.Shell对象(参见下图的第17-18行)。

下图展现了已经将VBScript:


从测试到武器化:OliRig组织Tempo恶意活动分析

在这一版本中,似乎测试人员将VBScript重新引入宏,并且略做修改。存储在DDDD变量中的VBScript有两处进行了修改,目的是模糊脚本中两个字符串的出现方式,特别是“powershell”(下图中第24行)和“cmd.exe”(下图中第25行)。这两个字符串使用每个字符的十六进制值,一次只构造一个字符,并且连接在一起。例如:“powershell”字符被替换成如下内容

Chr(CLng("&H70")) & Chr(CLng("&H6f")) & Chr(CLng("&H77")) &
Chr(CLng("&H65")) & Chr(CLng("&H72")) & Chr(CLng("&H73")) &
Chr(CLng("&H68")) & Chr(CLng("&H65")) & Chr(CLng("&H6c")) &
Chr(CLng("&H6c"))

测试人员还添加了一行(下图中第29行),使用内置的Shell函数,利用wscript应用程序运行“AppPool.vbs”脚本。在调用Shell函数时,使用了“vbHide”标志,该函数会在隐藏窗口中运行该命令。

下图展现了字符串混淆和内置Shell函数的使用:


从测试到武器化:OliRig组织Tempo恶意活动分析
3.6 迭代5

1、文件变化:

056ffc13a7a2e944f7ab8c99ea9a2d1b429bbafa280eb2043678aa8b259999aa

216ffed357b5fe4d71848c79f77716e9ecebdd010666cdb9edaadf7a8c9ec576

2、文件名变化:sss.xls -> sss.xls

3、时间差:5分钟6秒

4、检测率变化:18 -> 5

在这一迭代版本中,测试人员使用他们在上一次迭代中引入的wscript,替换对内置Shell函数的调用,该函数运行“AppPool.vbs”脚本。下图展示了新迭代用空行替换了第29行的代码。


从测试到武器化:OliRig组织Tempo恶意活动分析
3.7 迭代6

1、文件变化:

216ffed357b5fe4d71848c79f77716e9ecebdd010666cdb9edaadf7a8c9ec576

687027d966667780ab786635b0d4274b651f27d99717c5ba95e139e94ef114c3

2、文件名变化:sss.xls -> sss.xls

3、时间差:5分钟14秒

4、检测率变化:5 -> 17

在此迭代中,测试人员重新引入对先前迭代中删除的内置Shell函数的调用。但是,

本文系统(windows)相关术语:三级网络技术 计算机三级网络技术 网络技术基础 计算机网络技术

分页:12
转载请注明
本文标题:从测试到武器化:OliRig组织Tempo恶意活动分析
本站链接:https://www.codesec.net/view/620759.html


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(windows) | 评论(0) | 阅读(9)