正如之前的博客中所讨论的,自2016年下半年以来,Exploit Kit的活动一直在下降。但我们仍然定期观察这一领域的重大进展,并且一直在观察涉及RIG Exploit Kit(EK)的持续活动。虽然在野外观察到的数量一直在下降,但RIG EK仍然活跃,而且相关的犯罪软件有效载荷范围广泛。
在最近的一起发现中,RIG EK使用了一种名为Grobios的木马。本文将深入讨论此特洛伊木马,重点关注它的逃避和反沙盒技术,首先让我们快速看一下攻击流程。图1显示了观察到的活动的整个感染链。
图1:感染链
首先在2018年3月10日观察到受控域名latorre[.]com[.]au重定向到RIG EK,该域名被注入了恶意iframe(图2)。
图2:latorre[.]com中注入的恶意Iframe
iframe加载一个通过SSL进行通信的恶意域名(证书如图3所示),并导航至加载恶意Flash文件的RIG EK登录页面(图4)。
图3:恶意SSL流量
图4:RIG EK SWF下载请求
打开Flash文件时会投放Grobios木马。图5显示了Grobios木马的通信流量。
图5:Grobios回调
一、分析投放的恶意软件
Grobios使用各种技术来逃避检测并获得在机器上的持久性,这使得它很难被卸载或在受害机器上停用。它还使用多种反调试、反分析和反VM技术来隐藏其行为。在受害者机器上成功安装后,它将连接到其命令和控制(C2)服务器,该服务器会响应命令。
为了逃避静态检测,作者用PECompact 2.xx对样本加壳。解压后的样本在导入表中没有函数项。它使用API哈希来模糊它调用的API函数名,并分析DLL文件的PE头以匹配函数名和哈希。恶意软件也使用堆栈字符串。图6显示了恶意软件使用哈希调用WinApi的一个示例。
图6:使用哈希调用WinAPI的示例
加载
恶意软件样本启动自身副本,根据用户权限将其代码注入到svchost.exe或IEXPLORE.EXE中。注入完成后,父进程和子进程都会终止。只有svchost.exe / IEXPLORE.EXE继续运行。图7显示了进程树。
图7:恶意软件的进程树
持久性
恶意软件具有侵略性的持久性方法。它采用以下技术:
· 将其自身副本释放到%APPDATA%文件夹,伪装成安装在受害机器上的合法软件。它会在Windows启动文件夹中创建一个自动运行注册表项和一个快捷方式。在分析过程中,它释放自身到如下路径:%APPDATA%\Google\v2.1.13554\<RandomName>.exe。路径可能因恶意软件在%APPDATA%中的子文件夹而异。
· 它将自身的多个副本放在%ProgramFiles%/%PROGRAMFILES(X86)%路径的子文件夹中,再次伪装成已安装程序的不同版本,并设置自动运行注册表项或创建计划任务。
· 它将副本放入%Temp%文件夹中,并创建一个计划任务来运行它。
在受感染的系统上,恶意软件会创建两个计划任务,如图8所示。
图8: 恶意软件创建的计划任务
恶意软件会将其所有已释放副本的文件创建时间、修改时间和访问时间更改为ntdll.dll的上次修改时间。为绕过“文件从Internet下载”警告,恶意软件会使用DeleteFile API删除Zone.Identifier标志,如图9所示。
图9:调用DeleteFileW从释放的副本中删除Zone.Identifier标志
有意思的是,此恶意软件使用EFS(Windows加密文件系统)保护其在%TEMP%文件夹中的副本,如图10所示。
图10:Cipher命令显示EFS保护恶意软件复制
二、检测VM及恶意软件分析工具
在连接到C2之前,恶意软件会执行一系列检查以检测VM和恶意软件分析环境。它可以检测几乎所有知名的VM软件,包括Xen、QEMU、VMWare、Virtualbox、Hyper-V等。以下是它在受害者系统上执行的检查列表
· 使用FindWindowEx API,检查系统上是否正在运行表1中的分析工具。
表1:恶意软件检测的分析工具
· 恶意软件包含列入黑名单的进程名的哈希列表。它检查任何正在运行的进程的哈希是否与黑名单上的哈希匹配,如图11所示。
图11:检查列入黑名单的进程
我们能够破解出的黑名单进程的哈希值如表2所列。
表2:列入黑名单的进程
· 恶意软件枚举以下路径中的注册表项以查看它们是否包含xen或VBOX:
HKLM\HARDWARE\ACPI\DSDT HKLM\HARDWARE\ACPI\FADT HKLM\HARDWARE\ACPI\RSDT
· 它检查系统上安装的服务是否包含表3中所列的关键字:
表3:列入黑名单的服务
· 它会检查用户名是否包含以下任何一个词:MALWARE, VIRUS, SANDBOX, MALTEST
· 它有一个驱动名的哈希列表黑名单。它使用FindFirstFile / FindNextFile API遍历Windows驱动目录%WINDIR%\system32\drivers\以检查任一驱动名的哈希是否与黑名单中驱动名的哈希匹配,如表4所示。
表4:列入黑名单的驱动的哈希
· 它计算ProductId的哈希值,并将其与三个列入黑名单的哈希进行匹配,以检测公开沙箱,如表5所示。
表5:列入黑名单的产品ID
· 恶意软件计算所加载模块(DLL)的哈希值,并将它们与表6中列出的模块名的哈希列表黑名单进行比较。这些DLL通常加载到正在调试的进程中,例如dbhelp.dll和api_log.dll 。
表6:列入黑名单的模块的散列
图12:检查列入黑名单模块哈希的代码
· 它会检查HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum和HKLM\SYSTEM\ControlSet001\Services\Disk\Enum中的注册表项是否包含以下单词:QEMU、VBOX、VMWARE、VIRTUAL
· 它会检查HKLM\SOFTWARE\Microsoft, HKLM\SOFTWARE 中的注册表项是否包含以下单词:VirtualMachine, vmware, Hyber-V
· 它会检查HKLM\HARDWARE\DESCRIPTION\System\SystemBiosVersion中是否包含以下单词:QEMU, BOCHS, VBOX
· 它会检查HKLM\HARDWARE\DESCRIPTION\System\VideoBiosVersionco中是否包含VIRTUALBOX
· 它会检查HKLM\HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 0\Logical Unit Id 0\Identifier中是否包含以下单词: QEMU,vbox, vmware
· 它会检查HKLM\SOFTWARE\Oracle\VirtualBox Guest Additions是否存在
三、网络通信
恶意软件包含两个硬编码混淆的C2。在对C2 URL进行反混淆后,它会生成一个20个字符的随机字符串,将其附加到URL的末尾,然后发送命令请求。在执行命令之前,恶意软件会验证C2的身份。它使用CALG_MD5算法计算数据中4个字节的散列。然后使用来自CERT命令的Base64数据作为CryptVerifySignature中的公钥来验证散列签名(图13)。如果签名验证通过,恶意软件将执行命令。
图13:恶意软件验证C2 hash
初步分析,发现该恶意软件支持表7中的命令。
表7:恶意软件支持的命令
图14:C2服务器发出的命令
四、总结
尽管活动减少,但exploit kit仍然使用户处于危险之中,尤其是那些运行旧版本软件的用户。企业需要确保他们的网络节点全都打好补丁。
IOCs
· 30f03b09d2073e415a843a4a1d8341af
· 77d5f1d45cd9c8af67eadc490967da35
· a43404b5ae1aee40ee98c9fd152d565c
· 99787d194cbd629d12ef172874e82738
· 169.239.129[.]17
· 104.144.207[.]211
· grobiosgueng[.]su
还没有评论,来说两句吧...