Karmi7832/malware-analysis-group1
GitHub: Karmi7832/malware-analysis-group1
一个面向恶意软件分析的轻量研究框架,解决样本行为追踪与IOC关联的痛点。
Stars: 0 | Forks: 0
# 恶意软件分析小组1
技术摘要
本报告包含了对以 PDF 文件形式传递的恶意软件样本的静态和动态分析文档。分析表明,该 PDF 旨在作为诱饵,用于传递隐藏的恶意组件。
虽然该 PDF 被伪装成一份合法文档(因为其标题为 "Conda Cheat Sheet",并且包含有效的内容和链接),但对文档的进一步检查表明其包含恶意行为。
静态分析显示该文件是一个 PDF 文件;然而,当使用 strings 和 pdf-parser 等其他工具时,我们确定该文件具有可疑属性。例如,该 PDF 包含多个引用合法网站的嵌入式 URI 对象,可能是为了增加其表面上的合法性,并协助进行社会工程学攻击。最重要的是,全面的静态分析表明,PDF 中包含一个嵌入式可执行文件 (group1.exe)。这证实了该 PDF 充当一个释放器 (dropper),用于传递恶意软件。
然而,对提取出的嵌入式可执行文件进行单独分析表明它是 64 位 PE 文件;这对于 PDF 文件来说是不寻常的。在 VirusTotal 上将该 payload 的哈希值与现有资源文件进行比对后,没有发现任何结果,这表明该文件要么从未被提交过,要么可能尚未被广泛知晓。通过 DIE 的进一步分析表明存在加壳的可能性;这表明它采用了混淆方法来掩盖文件的真实意图。
字符串分析也证实了许多迹象表明该可执行文件具有恶意企图。具体来说,VirtualProtect API 的使用表明了内存操作,这是执行隐藏/注入代码的典型方法。关键字 PAYLOAD 后面跟着编码数据;这表明存在很可能在运行时被解密的加密 shellcode。其他事实包括导入的 wininet 模块和模仿浏览器的 user-agent 字符串,这必定表明该可执行文件希望在外部进行连接,同时伪装成合法的浏览器流量。此外还有硬编码的 IP (212.11.1.3) 和 URL;从而进一步暗示了其与命令控制 (C2) 服务器的通信功能。
对节区的分析表明,存在一个自定义的可执行节区 (.XXBT),这种节区通常出现在与恶意软件相关的代码中,表明该程序意图隐藏其功能并具有恶意性质。
动态分析的结果证实了初始静态分析的推测。测试环境已搭建完成,当可执行文件启动时,它是通过 CMD.EXE 派生的,这在正常情况下是不应该发生的。该恶意软件似乎还是一个基于 sleep 的加载器,它会等待(睡眠)直到启动后的任意时间再执行,以避免被检测。此外,在恶意软件执行后不久,Windows 注册表就发生了更改,这表明该恶意软件可能会保持持久化或对系统进行修改。没有活动网络连接的迹象,这可能是由于执行被延迟或采用了反分析技术。
综上所述,有证据表明该样本是一个隐蔽的多阶段恶意软件,它利用社会工程学技术、混淆和延迟执行来逃避检测。该样本将被归类为木马加载器,旨在安装其他恶意 payload,或允许恶意软件作者与其命令控制中心进行通信。
基础静态分析
### 图 1:文件类型

我们使用 file 命令来识别样本类型。该样本被确认为一个 PDF 文档。
### 图 2:哈希生成

我们为该 PDF 生成了哈希值以进行威胁情报查询。在 VirusTotal 上检查时未找到结果,这可能表明它是一个新样本或未被广泛分析的样本。
### 图 3:Strings 命令

我们使用 strings 命令从 PDF 中提取可读内容。识别出嵌入到文件中的许多外部链接,其中许多是合法域名。这些链接在 PDF 中以 /URI 对象的形式存储,表明它们是文档内的可点击元素。
### 图 4:PDF 文件

我们在受控环境中打开了样本以检查可见内容。该文档看起来像是一份合法的“Conda Cheat Sheet”。它包含常规内容,例如命令、使用说明、Anaconda 的其他品牌标识,以及用于 Anaconda 文档和社区资源的合法网站和链接。
高级静态分析
### 图 5:PDF Parser

使用 pdf-parser 对该 PDF 进行了分析,结果显示其中存在一个嵌入式文件对象。该嵌入对象是一个名为 “group1.exe” 的文件,这证实了隐藏 payload 的存在。该 PDF 潜在地被用作释放器来传递这个可能具有恶意的 payload。最终名称也可以看到是以 unicode 编码格式存储的。这可能是混淆的一种形式。/Filespec 和 /EF 表明该可执行文件可以被系统提取或访问。
### 图 6:PDF Parser

可以识别出多个 /URI 对象,它们代表了 PDF 中的所有链接,但都指向合法网站,可能在文档中使用只是为了让它看起来更合法,并支持某种形式的社会工程学。
### 图 7:提取的 Payload

我们使用 pdfdetach 从 PDF 中提取了嵌入的可执行文件 (group1.exe)。如前所述,这个隐藏可执行文件的出现表明该 PDF 被用作传递恶意软件的诱饵。
### 图 8:可执行文件类型

对提取的 payload 运行 file 命令,确认它是一个 64 位 Windows 可移植可执行文件 (PE),这表明该 PDF 包含一个可运行程序,这对于 PDF 文件来说是可疑的。
图 9:Payload 的哈希值
这次我们为 payload 生成了哈希值并在 VirusTotal 上进行了检查,未发现任何结果,这同样可以表明它是一个新样本或未被广泛分析的样本。
### 图 10:可执行文件分析 (DIE)

我们使用 Detect it Easy (DIE) 分析了该可执行文件。该文件被识别为使用 Microsoft Visual C++ 编译的 64 位 PE 文件。Detect it Easy 还显示该二进制文件是加壳的,这表明该恶意软件可能正在使用某些混淆技术来隐藏其恶意功能。
### 图 11:Strings 提取(可执行文件)

该可执行文件的字符串揭示了恶意行为的多个指标。VirtualProtect API 表明该程序会修改内存权限,这是恶意软件常用的手段。它使用了关键字 PAYLOAD,后跟不可读的数据,表明这是在执行期间被解码的编码 shellcode。它还引用了用于互联网通信的 wininet 库,其后是一个典型的浏览器 User Agent,这意味着该恶意软件可能试图在伪装成合法流量的同时与外部源进行通信。此外还有一个硬编码的 IP 212.11.1.3 和编码的 URL 路径,这强烈暗示了它与命令控制服务器的通信。总体而言,所有这些发现表明该可执行文件具有隐藏的代码并试图建立网络通信,这些都是木马和加载器类型恶意软件的共同特征。
### 图 12:DLL 分析

Objdump 显示该可执行文件从 KERNEL32.dll 导入了函数,其中包括前面看到的 VirtualProtect。这些 API 通常被恶意软件用于操纵内存和执行隐藏代码。
### 图 13:节区分析

Objdump 揭示了二进制文件中的标准和非常规节区。这个非常规节区是 .xxbt,它被标记为具有可执行权限 CODE,表明它可以包含在运行时执行的指令。这是不寻常的,通常与恶意软件相关联。攻击者经常使用非常规节区来存储隐藏的混淆 payload。
基础动态分析
### 图 14:Kali IP 与网络检查

这是为了复制一个安全的环境,我确保将 Windows 虚拟机与我自己的网络隔离,而是与 Kali Linux 虚拟机处于同一个本地网络中。在此过程中,我使用 Kali 模拟了诸如 “inetsim” 之类的网络流程。
### 图 15:可疑的执行链

这显示 “group1.exe” 文件作为 cmd.exe 的子进程被执行,这对于正常文件来说是极不正常的行为。
### 图 16:基于 Sleep 的加载器

这显示这是一个基于 sleep 的加载器,它在被执行后会进入睡眠状态,然后停止该进程。
### 图 17:注册表活动

这是在 “group1.exe” 文件被激活后立即观察到的,这表明该可执行文件在进入睡眠状态之前更改了注册表中的某些内容。
### 图 18:无可疑连接

在可执行文件进入睡眠状态后,我们检查了是否有任何打开的连接,结果发现没有。这表明恶意软件为了尽可能保持低调,已将自身完全清除。
高级动态分析
### 图 19:线程分析

这再次表明存在基于内核的 sleep 以及延迟执行,这证明了该恶意软件具有反分析特性,因为它使得追踪变得困难,并且当执行发生时,它会在未知的延迟时间之后发生。
### 图 20:检查字符串

有一个看起来是经过编码的特别长的字符串,它可能是 payload 或另一个脚本;另一个字符串是恶意软件在其中伪造 Web user agent 以便看起来像正常流量,这表明该恶意软件可能正试图通过网络与另一台服务器通信;证明这是恶意软件的另一个明显迹象是其中包含一个字符串写着 “PAYLOAD”,因此这确切地暗示了这个小型可执行文件是一个恶意软件。
### 图 21:对机器资源的低影响

对于正常文件而言,如此低的影响以及极短的运行时间是非常可疑的,这表明该 payload 试图潜伏并且不被检测到;非常短的运行时间是一个迹象,表明它试图加载 payload 或者正在睡眠并保持隐藏,直到特定操作触发它。
结论
本项目的分析表明,所检查的样本是一个恶意文件,旨在通过多种形式的欺骗和混淆来逃避检测。最初被视为无威胁的 PDF 文档,在深入探查后,最终被证明是隐藏的可执行 payload,这确定了该文档是一个恶意软件释放器。
静态分析揭示了多个充分的危害指标,包括嵌入式可执行文件、编码的 payload 数据、应用程序编程接口 (API) 的异常使用以及硬编码的网络指标。该可执行文件被识别为加壳的二进制文件,这表明使用了混淆技术来掩盖文件签名。诸如 VirtualProtect 等 API 的发现以及 payload 编码的存在,表明该恶意软件可能会将其隐藏代码直接执行到内存中。
分析结果表明,恶意软件在动态分析期间表现出了异常的执行行为,这支持了上述结论。该恶意软件表现出的行为包括加载器类型的特征,例如通过命令行进程执行、修改注册表以及通过 sleep 机制延迟执行。所有这些行为都表明使用了旨在逃避沙箱检测的反分析机制。
虽然该恶意软件的执行没有任何相关的活动网络连接,但考虑到网络库的存在、硬编码的 IP 地址以及与浏览器类似的 user agent,该恶意软件极有可能会发出外部命令,并与其命令控制服务器进行通信。这也支持了该恶意软件多阶段运行的假设,并且可能被设计为仅在接收到特定的触发事件后才完全激活其恶意功能。
因此,该样本表现出了与木马加载器恶意软件一致的特征;它利用社会工程学诱骗用户打开看似合法的文档,同时部署隐藏在文档内部的可执行文件,旨在执行动态混淆的 payload,并可能建立远程通信。结合静态和动态分析技术对于揭示这些行为是必不可少的,这也说明了采用多种方法分析现代恶意软件的必要性。
标签:DAST, DNS 反向解析, 云安全监控, 云资产清单, 动态分析, 威胁情报, 开发者工具, 恶意软件分析, 搜索语句(dork), 网络信息收集, 逆向工程, 静态分析