使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

admin 2023年10月21日18:41:37评论28 views字数 2729阅读9分5秒阅读模式
使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

使用 CyberChef 解码 .hta 脚本并使用 SpeakEasy 模拟器分析 Shellcode。

在这篇文章中。我将演示解码用于加载 cobalt Strike shellcode 的简单 .hta 加载程序的过程。我们将使用文本编辑器进行初步分析,并使用CyberChef提取嵌入的shellcode。从这里,我们将使用模拟器 (SpeakEasy) 验证 shellcode,并使用 Ghidra 执行一些基本分析。

哈希:

2c683d112d528b63dfaa7ee0140eebc4960fe4fad6292c9456f2fbb4d2364680

恶意软件集合:

https://bazaar.abuse.ch/sample/2c683d112d528b63dfaa7ee0140eebc4960fe4fad6292c9456f2fbb4d2364680/?ref=embee-research.ghost.io

分析

分析可以首先将 zip 文件下载到安全的虚拟机中并使用密码解压缩infected

这将显示一个.hta文件。文件本质上.hta是一个嵌入脚本的 html 文件。我们的目标是定位并分析嵌入的脚本。

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

由于 .hta 是基于文本的格式,因此我们可以直接在文本编辑器中打开该文件。

使用文本编辑器进行分析
在文本编辑器中打开文件将显示一小段混淆的代码,后面跟着一个大的base64 blob。

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

出于本博客的目的,我们不需要解码初始片段,因为可以安全地假设它只是执行包含 base64 blob 的 PowerShell 命令。

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

我们可以通过 PowerShell 命令和损坏的wscript.shell. 它通常用于从 javascript 执行命令。

利用初始脚本仅执行 Base64 Blob 的理论,我们可以直接解码 Base64。

如果 Base64 blob 无法解码,我们始终可以返回到初始部分以进一步调查。

解码 Base64
我们可以继续突出显示整个 Base64 blob 并将其复制到 cyberchef 中,从这里我们可以尝试对其进行解码。

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

将 Base64 内容复制到 CyberChef 中,我们可以看到字符之间带有空字节的明文。

这通常表示 utf-16 编码,很容易通过“解码文本”或“删除空字节”来删除

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

通过在配方中添加“删除空字节”,我们可以获得看起来像PowerShell脚本的解码内容。

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

使用“解码文本”和“utf-16”也可以很好地工作。

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

这些选项中的任何一个都会生成一个解码的 powershell 脚本,我们可以突出显示该脚本并将其复制到新的文本编辑器窗口中。

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

PowerShell脚本分析
现在将 PowerShell 脚本放入文本编辑器中,我们可以继续扫描关键字或任何可能指示我们下一步可以去哪里的内容。

对我来说,有两件事是最突出的。这是脚本中间的一大块十六进制字节,以及对 api 的大量引用,可用于在内存中分配(VirtualAlloc)、写入(memset)和执行(CreateThread)某些内容。

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

脚本底部有一些小东西,但这些并不那么重要。该脚本会休眠 60 秒,如果初始脚本失败,它似乎会尝试切换到 64 位版本的 Powershell。
现在,我们假设十六进制字节包含将要执行的内容。

使用 CyberChef 解码十六进制字节
要分析十六进制字节,我们可以将它们复制出来并尝试使用 CyberChef 对其进行解码。

我们可以通过复制以下字节并将它们移动到 CyberChef 来做到这一点。

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

复制后,可以通过简单的“从十六进制”操作对字节进行解码。在这种情况下,逗号,and0x会被自动识别。

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

我们还可以看到,虽然内容被“解码”了,但看起来仍然不太好。它看起来就像一团无法解码的垃圾。

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

使用 CyberChef 验证 ShellCode
此时,我们需要验证我们的假设,即解码后的内容是 shellcode。乍一看,它就像一团垃圾。

一种常见的方法是在 shellcode 中查找纯文本值(ip、api 名称),但这对我们没有帮助。我们需要做额外的分析

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

使用CyberChef,我们可以通过尝试反汇编字节来验证我们的理论,即内容是 shellcode。

为此,我们需要将值转换为十六进制,然后使用 CyberChef 的反汇编 x86 操作。

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

在这里我们可以看到字节已成功反汇编,我们可以主要判断这一点,因为有。

  • 没有明显的红色部分表明拆卸失败
  • CLD- (明确方向) - 这是 shellcode 执行的常见第一个命令。

还有一些其他指标,例如早期call操作和ror 0DCobalt Strike shellcode 常见的操作。这些模式很奇怪,但在您看过一些 shellcode 示例后就很容易识别。

现在,我们可以更有把握地假设数据是 shellcode,并通过尝试执行它来进行进一步的验证。

此时,您可以继续分析反汇编字节以查找“有趣”的迹象,但这通常很困难,并且需要熟悉 x86 指令。尝试并执行代码通常要容易得多。特别是对于较大的 shellcode 样本。
通过在模拟器内执行来验证 ShellCode
为了进一步验证数据是否为 shellcode 并尝试确定其功能,我们可以将其保存到文件中并尝试在模拟器或调试器中运行它。

在本例中,我将使用FireEye 的SpeakEasy工具。您可以在此处阅读有关 SpeakEasy 的信息并从 GitHub 下载

在运行 SpeakEasy 之前,我们可以首先下载可疑 shellcode 的原始字节。(确保删除to hex和disassemble x86操作)

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

你可以给文件命名任何你喜欢的名字,我已经命名为shellcode.bin.

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

从这里,可以在使用以下命令执行的 SpeakEasy 工具中打开命令提示符。

  • -t- 要模拟的目标文件
  • -r- 告诉 SpeakEasy 该文件是 shellcode
  • -a x86 - 告诉 SpeakEasy 接受x86指令。(这几乎总是x86或x64。如果其中一个失败,请尝试另一个)

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

按 Enter 键,SpeakEasy 成功模拟代码。在这里我们可以看到进行了大量的 api 调用来尝试从51.79.49[.]174:443

使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

结论

此时,可以安全地假设整个脚本和 shellcode 的主要目的是充当下载程序。

此时,我将调查与该 IP 地址的连接并确定是否成功下载并执行了任何内容。您还可以调查Cobalt Strike的任何最新恶意软件警报,或者对 .hta(mshta.exe 父进程)到 powershell.exe(子进程)的初始执行执行一些搜索。

原文地址:
https://embee-research.ghost.io/malware-analysis-decoding-a-simple-hta-loader/

原文始发于微信公众号(Ots安全):使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月21日18:41:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   使用 CyberChef 和仿真解码 Cobalt Strike .hta 加载程序http://cn-sec.com/archives/2133440.html

发表评论

匿名网友 填写信息