恶意软件ADOBE WORM FAKER:通过LOLBins来“订制”你的专属payload

Change Web安全 2019年6月29日发布
Favorite收藏

导语:Cybereason近期发现了一个有趣的恶意软件样本,并将之命名为Adobe Worm Faker,它是一类利用LOLBins进行攻击的蠕虫病毒,能够根据运行的机器动态地改变其行为,以便在每台目标机器上选择最佳的漏洞利用和payload。

摘要

Cybereason近期发现了一个有趣的恶意软件样本,并将之命名为Adobe Worm Faker,它是一类利用LOLBins进行攻击的蠕虫病毒,能够根据运行的机器动态地改变其行为,以便在每台目标机器上选择最佳的漏洞利用和payload。这种恶意软件潜在的破坏性风险特别高,且能够逃避AV和EDR产品,需要人工检测才能发现一些端倪。

Adobe Worm Fakerd的主要特点

· Adobe Worm Faker利用LOLBins进行攻击,并能根据所处的环境进行动态更改。

· 该恶意软件有五层混淆,无法被AV或EDR在内的安全产品自动解码,人工干预是解码它的必要条件。

· 它通过启动程序(acme .exe或wscript.exe)来保持隐藏以及完成后续的入侵工作。

· 该恶意软件能针对特定的AV产品,这表明可能存在基于区域的针对性攻击。

· 它使用类似蠕虫的技术来传播和隐藏自己,就好像与安全团队或用户玩捉迷藏一样。

安全建议

1、隔离机器以防止蠕虫在网络中传播。

2、杀死进程:Acroup.exe\ AcroDC.exe\ WScript.exe

3、如果仍驻留在计算机上,删除以下文件二进制文件:

· %SYSTEMDRIVE%\Adobe Acrobat\Notebook.pdf, AcroDC.exe, AcroUP.exe

· %SYSTEMDRIVE%\Acrobat\Notebook.pdf, AcroDC.exe, AcroUP.exe

· %SYSTEMDRIVE%\DCIM.lnk

· %SYSTEMDRIVE%\Camera.lnk

· %SYSTEMDRIVE%\Users\All Users\Microsoft\Windows\Start Menu\Programs\StartUp

· %AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\AdobeUp.lnk

· %ProgramData%\Microsoft\Microsoft\Windows\Start Menu\Programs\Startup\AdobeUp.lnk

4、删除以下注册表项来阻止恶意软件的持久性:

· HKLM\Software\Microsoft\Windows\CurrentVersion\Run\AcroDC

· HKCU\Software\Microsoft\Windows\CurrentVersion\Run\AcroDC

· HKCU\Software\AcroDC

· HKCU\Software\Itime

· HKCU\Software\info

5、重新创建注册表字符串值:HKCR\lnkfile\isShortcut

6、将以下域名和IP地址添加到组织FW、代理、Web过滤和邮件过滤的选项中:

· simone.linkpc[.]net

· oahm.duckdns[.]org

· hlem.myq-see[.]com

· 41.105.50[.]134

· 105.98.9[.]222

7、对受感染的移动设备进行格式化

介绍

攻击者利用Windows操作系统中内置的合法工具进行恶意攻击的方式已经不是什么新鲜事了。LOLBAS(Living Off The Land Binaries and Scripts)和LOLBins都是本机Windows工具,对它们的恶意使用,使得攻击更难以通过传统的安全措施来捕获,即使发现了也很难阻止。

使用lolbin进行攻击的优势在于,如果目标组织不能彻底了解他们的系统及功能,就很可能不会注意这类方式的入侵,相对来说,高级攻击反而更能引起注意。

最近,一个利用LOLBins的恶意软件引起了我们的注意——我们将其称为“Adobe Worm Faker”。感染链始于一个zip文件,通过移动设备传送到用户的计算机。恶意zip文件包含一个启动程序(带有Adobe Acrobat Reader图标,以诱使用户信任)和一个恶意脚本。

在使用Adobe Worm Faker进行攻击时,攻击者能窃取目标计算机的数据,再根据机器及环境设计更为复杂的攻击。这种高级攻击特别危险,因为它专门针对目标机器所特有的弱点进行攻击,从而大大增加了对组织造成破坏的可能性。

在最近的一个案例中,我们发现Adobe Worm Faker恶意软件会检查目标系统是否存在特定的USB相关安全产品。当找到与这些产品相关联的文件时,恶意软件会终止其进程并删除文件,以便它可以继续畅通无阻地运行。

传统的安全措施并不总能识别合法Windows工具的恶意/非恶意使用,这里就需要经验丰富的安全分析师进行人为分析。

利用LOLBins的攻击事件在增加

今年以来,Cybereason发现恶意滥用本地Windows OS进程的事件呈现急剧增加的态势,而传统安全措施对LOLBins攻击的可见性较为有限,因为攻击者往往会利用合法的Windows进程,如PowerShell,WMI,BITSAdmin等。这类“盲区”使得攻击者可以偷偷摸摸地进行操作,在充分了解受感染计算机的特性后发起更有针对性的攻击。对于一些组织来说,LOLBins攻击可能是致命的。

攻击者可以使用LOLBins远程访问设备、泄露数据、执行代码、下载文件、转储进程、键盘记录等。然而这只是攻击的第一阶段,接下来的高级攻击才是专门针对机器弱点进行的,目的是进行横向移动,窃取客户信息、财务数据、密码、知识产权或攻击者想要的任何东西。

难以找到,难以补救

我们在对恶意样本分析后了解到,恶意VB代码是通过wscript实用程序之类的合法工具来执行的,机器信息则是通过WQL (WMI查询语言)滥用WMI任务来查询。此样本还刻意针对了两个与USB相关的安全产品——SMADAV和USB Disk Security,最终目标是根据受感染的机器的信息以下载payload。这两个USB安全产品也许能够反映出恶意软件所针对的地理区域。

添加额外payload的功能尤其危险。Adobe Worm Faker与多个地址通信,将信息发送给C2服务器,再将payload传回。

Adobe Worm Faker使用了一种独特的技术——利用Visual Basic函数完成payload从远程恶意地址传递到目标。Visual Basic是一种安装在Windows系统中的内置语言,被恶意使用时,它为攻击者提供了一个关键优势,即它没有依赖关系,因此恶意代码可以毫无阻碍地运行。

一旦攻击者获得了机器的敏感信息(例如操作系统版本,补丁更新,硬件规格等),就可以创建自定义恶意软件,为下一次攻击制定更复杂的攻击。

ADOBE WORM FAKER的独特之处

Adobe Worm Faker由两个组件构成,具有独特的特性,可与其他恶意软件区分开来:

· 启动程序(Acroup \ AcroDC.exe)。

· 恶意伪PDF文件(Notebook.pdf)。

特点:

· Adobe Worm Faker使用了自定义的wscript工具Acroup\AcroDC.exe,类似于Windows的wscript。

· 启动器的图标与Adobe Acrobat Reader相同。

· 恶意脚本(Notebook.pdf)虽然看起来是一个PDF文件,但以普通PDF打开时却会返回一个错误,原始文件实际扩展名是' vbe '。

· 它针对两种防病毒产品:Smadav和USB Disk Security,两者都是移动设备安全产品。

· 恶意软件使用VB函数与多个C2服务器通信,以向受感染的计算机提供payload。

· 恶意软件经过五层混淆,使得大多数反病毒产品都无法察觉。能够检测到这种恶意软件的AV引擎只能显示文件哈希的一般变体分类,或者将其归类为“混淆”变体——他们无法找到其精确的变体家族。

1.png

伪PDF文件在VirusTotal上的显示结果(Notebook.pdf)

以下参数用于从伪PDF文件(最初采用VBE格式)执行恶意代码:// B /e:VBScript.Encode

第一个参数(// B)以批处理模式运行脚本,能抑制脚本错误和echo方式输出行。

第二个参数(/e:VBScript.Encode)指定用于运行脚本的引擎,并支持运行使用自定义文件名扩展名的脚本。在本例中,文件以.pdf扩展名伪装自己。因此,在这种情况下需要使用/ e参数。

深入ADOBE WORM FAKER

Adobe Worm Faker在五层模糊处理中进行了大量编码,让代码看起来是不可编码的乱码形式。

2.png

第一层混淆,部分原始代码。

第一个混淆层可以由Didier Stevens编写的一个名为Decode-VBE的Python工具解码,Decode-VBE是一个强大的工具。它输出的文本可读性更强,允许我们进一步解码恶意软件。不过即使使用了这个工具,也需要很多的时间和精力来处理混淆。

3.png

使用“Decode-VBE”后解码的部分VBE恶意代码。

完全解码恶意软件需要检测其变量,将它们回显到其他文本文件,再反复检查直到所有混淆层都被剥离。最后一步是将函数和变量重写为指示名称,以便更好地理解恶意软件的操作。

4.png

恶意软件流程图。

Adobe Worm Faker首先通过可移动设备将zip文件传送到用户的计算机。 恶意zip文件包含启动程序和恶意VBE脚本。

5.png

Cybereason平台中的恶意软件的攻击树。

6.png

Zip文件内容

首次执行时,恶意脚本将PDF文件复制到多个路径,然后启动程序终止其进程,并等待创建持久性的下一次执行。

7.png

恶意VBE文件。

VBE脚本第二次执行时,它不会自行终止,而是继续在后台运行,使用多个操作来保持隐藏和持久性。

恶意软件的代码以变量声明开始,然后调用三个函数(在去混淆和重命名后)——ifMalwareExist,WriteRegistry和CleanTrace。 我们将在后续章节中解释恶意软件的操作和流程。

持久性机制

攻击者使用函数IfMalwareExist来确保恶意软件在初始执行时不会连续运行,而是先终止等待,直到下一次持久性的触发。如找到伪PDF文件(Notebook.pdf),恶意启动器会将其复制到以下路径:

%systemdrive%\ adobe acrobat

为了逃避检测,它会删除.lnk文件的Windows内置图标符号,方法是删除其中一个注册表值,然后然后运行CreateShortcuts函数(下面描述)。

8.png

函数IfMalwareExist。

确认感染状态

通过WriteRegistry函数,攻击者可以更好地了解恶意软件感染的状态。该函数用于确定恶意软件是否扩散到系统上的多个文件夹,并获取被感染机器的当前日期,以指示初始感染何时开始。所有这些都存储为注册表值,稍后将发送给攻击者的C2服务器。

9.png

函数WriteRegistry。

逃避机制

第三个函数CleanTrace负责清除恶意软件操作的证据。它能删除文件和持久性恶意软件“Run”注册表值,清空回收站,并删除驻留在“Path”系统环境变量中的多个VB扩展文件。

所有这些行为都是攻击者试图在感染期间隐藏和不被发现。就像在捉迷藏游戏中一样,安全分析必须跟上攻击者的逃避机制。通过将恶意软件从一个路径复制到另一个路径,然后删除之前的副本,攻击者可以确保普通用户不会注意到最初的感染。这就是为什么拥有正确的安全团队和环境监控是至关重要的。

10.png

CleanTrace函数。

无尽的感染循环

Adobe Worm Faker使用无限的“while”循环来调用多个恶意函数,使用这种无限循环可以使恶意软件保持隐藏和持久性。该脚本在每个循环之间休眠五秒钟。

11.png

while循环。

蠕虫核心

攻击者使用相对知名的蠕虫类技术在受感染的机器中传播,并使恶意软件持续存在,更难被安全团队修复。这是通过使用CreateShortcuts函数实现的,它负责以下工作:

· 创建包含恶意cmdline的快捷方式来重复运行恶意软件。

· 将伪造的Acrobat启动器和PDF文件复制到每个驱动器。

· 删除证据。

· 创建持久性。

12.png

CreateShortcuts子函数。

13.png

伪Acrobat Reader文件夹。

14.png

伪文件夹的内容。

15.png

包含执行VBE文件的恶意cmdline的伪快捷方式,位于:(%drive%\%fakename%.lnk)。

16.png

伪快捷方式cmdline的示例:

%SYSTEMDRIVE%\ Adobe Acrobat \ AcroUP.exe // B /e:VBScript.Encode%SYSTEMDRIVE%\ Adobe Acrobat \ Notebook.pdf。

保持持久性

恶意软件使用CreatePersistence函数:

· 通过Startup文件夹创建持久性。

· 通过注册表创建持久性。

· 删除(.lnk)文件的内置Windows图标。

· 将文件夹选项更改为* SuperHidden模式。

17.png

CreatePersistence子函数。

18.png

CreateFile和WriteFile存证。

19.png

注册表存证。

20.png

激活SuperHidden模式 – 隐藏受保护的操作系统文件。

针对的AV产品

该恶意软件针对两种特定的反病毒产品,此行为可能表明可能存在针对区域的攻击。恶意脚本使用TargetAvProducts函数检查系统中是否存在Smadav和USB Disk Security,如存在,则恶意软件会终止其进程并删除其文件。

21.png

TargetAvProducts子函数。

22.png

查询有关SMADAV和USB Disk Security的信息。

23.png

使用TaskKill cmdline杀死SMADAV和USB Disk Security进程。

24.png

删除SMADAV和USB Disk Security文件夹和文件。

PAYLOAD

远程交付payload是恶意软件最有效也最轻松的交付技术之一。攻击者能利用Windows本机进程悄悄地传递这些payload。通过ConnC2函数,恶意软件建立与C2的连接,然后从页面的源代码中导入payload。此函数还将机器信息作为“User-Agent”值发送。

25.png

ConnC2函数。

26.png

创建恶意连接。

侦查阶段

此恶意软件包含额外的侦察和信息收集功能,使攻击者更好地了解计算机。下面两个例子说明如何实现。

操作系统版本及补丁更新的信息可能会暴露机器已知的漏洞。GetOS函数负责查询操作系统上的信息,并将其存储在注册表值中。

27.png

GetOS函数。

函数AVProduct可能与之前的TargetAvProducts函数有关,用于查询机器上现有AV产品的信息。如果找到AV产品,则将产品名称写入注册表值。如果没有找到产品,则存储的注册表值“Not found”。

28.png

AVProduct函数。

恶意软件使用了一种名为WMI Tasks的WMI方法,该方法提供了到WMI类的链接,用于查询关于受攻击机器的几乎任何类型的信息,其中一些信息是使用Windows环境变量和VB函数查询的。

攻击者使用多个WMI查询,收集硬盘信息、计算机和用户名、操作系统、处理器模型、物理内存总量、GPU模型、已安装的AV产品,甚至目标机器的日期等信息。

29.png

在Visual basic中调用WMI任务和查询AV产品的例子。

WMI查询的大量使用显示了攻击者执行时的精确度。

下面是收集并传输到攻击者的C2服务器的数据示例。

30.png

发送到恶意地址的用户代理值包含了机器信息。

运行这些函数之后,前面说到的无限While循环会向C2发送连接检查。 如果这些URL地址已启动,则返回200 OK的状态。然后,恶意软件从服务器获取数据并执行远程payload。

结论

本文展示了ADOBE WORM FAKER如何通过合法的内置Windows OS进程来执行未被检测到的恶意活动,并深入研究了它交付payload的过程,同时展示了它能逃避大多数AV引擎的复杂的混淆机制。对该恶意软件使用的工具和技术的分析表明,在逃避反病毒产品方面,利用LOLbins是非常有效的。

今年早些时候,我们曾预计过利用LOLbins进行攻击的事件会呈现增长态势。这是由于对本机进程的恶意利用藏有巨大的潜力,在将来可能会有更多的攻击者使用此方法传递payload。

IoC

1.png

本文翻译自:https://www.cybereason.com/blog/adobe-worm-faker-uses-lolbins-and-dynamic-techniques-to-deliver-customized-payloads如若转载,请注明原文地址: https://www.4hou.com/web/18818.html
点赞 8
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论