概要

Carbon Black ThreatSight团队研究人员发现一起攻击活动,如果攻击成功,可以同时感染Ursnif恶意软件和GandCrab勒索软件。整个攻击活动使用多种不同的方法,其中包括红队、大量网络犯罪分子常用的技术。

攻击活动最开始通过含有word附件的钓鱼邮件,word附件中嵌入了宏文件,研究人员一共发现了180个变种。宏可以调用编码的PowerShell脚本,然后使用一系列技术来下载和执行Ursnif和GandCrab变种。整个攻击活动的攻击链如图1所示:

图1: 攻击概览

技术分析

承载文件

攻击活动中攻击者用.doc格式的word文档进行初始阶段传递。研究人员一共发现大约180个word变种,这些文档最大的区别在于恶意宏中的metadata和junk data。Metadata可以看出文档最早是2018年12月17日保存的,并且在2019年1月21日更新过一次。许多metadata域使用的是常见的数据集,比如样本的subject就是美国的州和常见的姓名。

表1: 分析的样本
该文档含有一个VBS宏,解压后大概是650行代码。但大多数的代码都是垃圾代码。

图2: VBScript概览
从VB脚本中移除垃圾代码,大约有18行的相关代码,最终会在当前文档中调用shape box。变量名本身是不相关的,但下图中的黑体字可以从特定的shape中提取出AlternativeText域,然后执行。

Sub AutoOpen()
  Set QWxwqfqgHttm = ThisDocument
  Set FXpVcBPxzVsJ = QWxwqfqgHttm.Shapes(“4obka2etp1318a”)
  faaQXNtRqmxB = FXpVcBPxzVsJ.AlternativeText
  npNsCwDavJ = Array(HpTNHpSpmZgp, BlmmaRvZMLP, tRzpZFwJWJcCj, tPJRanNbKWZPrd,[email protected](CleanString(faaQXNtRqmxB), 231 * 2 + -462), RfjXGpzMtcrz, hfbZCRXCJQPJQ)

表2: 相关的VBScript代码
可选的文本很容易就可以出现在office文档的body中。下图中蓝色框中的内容是定位的shape名,文本内容是红色框中的内容。可以看出文本是base64编码的命令,然后由上面的VB脚本执行。

图3: 可选的文本

第二阶段

PowerShell脚本首先会创建一个.Net Webclient类的实例,然后用GetMethods()调用来枚举可用的方法。枚举的方法首先会被保存,然后第一个for循环会寻找名为DownloadString的方法。

定位了DownloadString方法后,联系硬编码的C2来请求文件,文件会被下载和调用,如图中蓝色部分。因为请求的资源会以字符串的形式保存和执行,而且都发生在内存中。

循环会找寻一个名为DownloadData的方法,如果找到,就从第二个C2下载资源。请求会以硬编码的文件名(图中绿色框)保存在CommonApplicationData目中(在Vista及之后版本是C:\ProgramData)。脚本会使用硬编码的DCOM对象C08AFD90-F2A1-11D1-8455-00A0C91F3880,这也是ShellBrowserWindow的ClassID。enigma0x3的文章详细描述了如何使用CLSID来实例化ShellBrowserWindow 对象和调用ShellExecute方法,攻击者也采用了同样的方法。

图4: PowerShell脚本

Payloads

上述步骤中下载的payload会在系统中执行。

GandCrab Cradle

第一个通过DownloadString方法下载的payload是一个一行的PowerShell,使用IF语句来评估被入侵系统的架构,然后从pastebin.com下载额外的payload。然后其他的payload会在内存中执行。下图描述了o402ek2m.php文件的内容。需要说明的是文件的内容是由攻击者更新的以引用不同的pastebin upload。更新的被调用的函数名如下图所示,但函数名也会动态调整来与下载的pastebin文件的函数名相匹配。

图5: PowerShell Cradle

一旦从pastebin.com post中下载到原始的内容后,数据也会在内存中执行。在分析的变种中,研究人员发现文件中含有一个大约2800行的PowerShell脚本。该脚本是Empire Invoke-PSInject模块的一个变种,对部分内容做了修改。修改的主要部分是移除注释和重命名变量。脚本将一个base64编码的嵌入的PE文件注入到当前的PowerShell进程中。下图是调用的main函数返过来调用负责注入嵌入的PE文件的函数。

图6: PowerShell反射型注入脚本

Base64编码的PE可以从上图的2760行代码中看出是一个GandCrab变种,通过metadata数据可以看出版本为Gandcrab version 5.0.4。

File Name       : krab5

File Size       : 133,632 bytes

MD5             : 0f270db9ab9361e20058b8c6129bf30e

SHA256          : d6c53d9341dda1252ada3861898840be4d669abae2b983ab9bf5259b84de7525

Fuzzy           : 1536:7S/0t4vMd+uEkJd4a7b+KqeaiMGFzj92URuVSuKhsWjcdRIJXNhoJwyvZaX:m/fMb7t/JqNi5+VSuKORIJXmaX

Compiled Time   : Mon Oct 29 17:39:23 2018 UTC

PE Sections (5) : Name       Size MD5

                 .text 73,728    019bc7edf8c2896754fdbdbc2ddae4ec

                 .rdata 27,136    d6ed79624f7af19ba90f51379b7f31e4

                 .data 26,112    1ec7b57b01d0c46b628a991555fc90f0

                 .rsrc 512    89b7e19270b2a5563c301b84b28e423f

                 .reloc 5,120    685c3c775f65bffceccc1598ff7c2e59

Original DLL    : krab5.dll

DLL Exports (1) : Ordinal  Name

                 1 _ReflectiveLoader@0

Magic           : PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit

表3: Gandcrab metadata

Ursnif

图4中高亮表示的就是通过DownloadData方法下载的第二个payload,是一个Ursnif可执行文件。在实例中,文件会以随机名保存在C:\ProgramData目录中。Ursnif样本执行后,会进行凭证获取、系统和进程信息收集以及其他Ursnif样本都会进行的动作。在本次攻击活动中,大量的Ursnif变种都位于bevendbrec.com站点上。Carbon Black在iscondisth.com和bevendbrec.com上一共发现大约200个不同的Ursnif变种。

表4: Ursnif metadata

攻击活动详情

研究人员共发现与本次攻击活动相关的大约180个变种,使用VirusTotal Graph功能将这些变种根据metadata或文档结构等进行分组(类),结果如图8所示。

图7: 与攻击活动相关的word文档
图中可以看出位于bevendbrec[.]com站点一共有3个不同种类的Ursnif变种,PowerShell cradle和PS Empire都回注入Gandcrab样本到内存中,如图8所示。

图8: 根据隔离关系分析的样本
下图中的变种主要是根据C2基础设施进行分类的,样本之间虽然有一些小的改变,这也是攻击者为了应对根据hash的检测方法。

图9: 与攻击活动相关的Ursnif样本
https://www.carbonblack.com/2019/01/24/carbon-black-tau-threatsight-analysis-gandcrab-and-ursnif-campaign/

源链接

Hacking more

...