复杂的混淆?没啥…(1/2) – Avast

最近,我们一直在监测一种新的恶意程序变种,我们称之为“Meh”(我们稍后会解释原因)。这一切始于我们发现大量文件,在它们的开头有随机生成的字符串,后面接着一个编译好的
AutoIt 脚本……自那以后,这一路真是不平凡。在这系列博客中,我们将描述我们是如何剥离 Meh 的混淆层并发现其背后秘密的。

分析

Meh 主要由两个部分组成。第一部分是我们称之为 MehCrypter 的加密工具,它由多个阶段组成,并以一个带有随机生成字符串序列的编译 AutoIt脚本的形式分发。这个字符串序列会被 AutoIt 解释器跳过,解释器会扫描文件以查找确定文件格式的魔术字节,从而有效地对文件进行混淆,而不影响其功能。

第二部分是一个密码窃取程序,命名为
Meh。这个窃取程序是恶意软件的核心,具有多种功能。它能够窃取剪贴板内容、记录键盘输入、窃取加密货币钱包、通过种子下载额外文件等等。几乎所有功能都是在子线程中执行的,从注入的进程中运行。我们将在下一篇博文中集中讨论这个密码窃取程序。

MehCrypter

首先,Meh 是一个密码窃取程序/键盘记录器。但在深入了解之前,我们需要掩盖 MehCrypter的几个层次。首先,让我们从高层次上看一下实际加密工具的代码片段:

一个 MehCrypter AutoIt 脚本的片段

文件开头的字符串是随机生成的,其长度也各不相同。我们见过一些样本在这个区域有几 MB 的数据,也见过几乎没有数据的样本。

但仔细看一下,文件还包含实际的编译 AutoIt 脚本代码,可以被 AutoIt 解释器解析。解释器的设计是扫描整个文件内容,直到找到字符串
AU3!EA06。因此,整个前缀字符串会被完全跳过,只作为一种混淆技术来避免检测。

反编译后得到的脚本可读性很高,只有一个目的:拼接硬编码的十六进制字符串,解码它们,并通过自定义 AutoIt PE 加载器使用反射加载结果 PE。

一个 AutoIt PE 加载器的代码片段

请注意,到目前为止,加密工具非常通用,我们已经见过至少五个不同的家族使用它,其中最著名的是 Agent Tesla 和 XMRig。

MehCrypter 投放者

通过上述脚本,我们可以手动提取出二进制文件。这个二进制文件是一个非常简单的投放者,用 Borland Delphi 编写,它向 C&C 服务器发送多个
HTTP POST 请求以下载三个附加文件:

  • http://83[.]171.237.233/s2/pe.bin
  • http://83[.]171.237.233/s2/base.au3
  • http://83[.]171.237.233/s2/autoit.exe

在下载这些文件后,它们将被保存在 C:\testintel2\ 目录中,并执行文件 base.au3(即由 autoit.exe
解释)。pe.bin 是一个加密的 Meh 密码窃取程序二进制文件,但我们会稍后详细介绍。

此外,投放者还试图清理环境中的 Meh 密码窃取程序的先前安装版本,我们将在本系列博客的下一部分对此进行深入讨论。具体来说,它尝试终止以下几个进程:

  • notepad.exe
  • werfault.exe
  • vbc.exe
  • systeminfo.exe
  • calc.exe

这些进程被 Meh 用于后续的 PE 注入。在这一阶段,它还会删除其安装文件夹 C:\programdata\intel\wireless

我们想提到 Meh 投放者还会创建一个文件: C:\testintel2\a.txt
该文件仅包含三个字节:meh。我们第一次看到时觉得非常可笑,因此决定将整个家族命名为 Meh,包括它的加密工具 MehCrypter。

base.au3 使用与原始样本相同的加密工具(MehCrypter)。但是,它只包含一个 shellcode,而不是整个 PE二进制文件。因此,它省略了 PE 加载部分,并使用 CallWindowProc API 函数执行。

base.au3 shellcode

base.au3 shellcode 有两个部分。在第一部分,shellcode 在堆栈上构建了另一个 shellcode。我们可以在地址
0x00000025 看到它的开始。第二个 shellcode 会在稍后通过间接跳转执行。

显示 base.au3 shellcode 和第二个 shellcode 开头的汇编

第二部分是一个未加密的二进制文件。MZ 头开始于地址 0x0000168A

![](https://lh5.googleusercontent.com/umLxwtQCz1twiHq7wwVFiAJFp72PuTHJ1rvavoovjs_OpvLIQkKolDdF1ymdColLR-

MNRKWcMXY4mQpRd_OqiHb6SeDPyU_eYb1bZf_aERXmy74TUsZPQxNs6x10lpG4RuzmAaLh)

显示 base.au3 shellcode 和二进制文件开头的汇编

我们可以猜测,第二个(构建的)shellcode 实际上是另一个 PE加载器,它只是加载并执行硬编码的二进制文件。这个二进制是加密工具封装的最后一个阶段,并且是 Meh 密码窃取程序的启动程序。

Meh 启动程序

在经历了剥离 MehCrypter 的多层后,我们终于到达了 Meh 启动程序,它用 Borland Delphi编写。这个启动程序是第三个(也是最后一个)PE 加载器,它使用非常简单的 XOR 密码解密上述的 pe.bin 文件。

pe.bin 解密

解密函数需要两个输入——一个 base64 编码的密文和一个密钥。幸运的是,这两者都包含在 pe.bin 中。

pe.bin 文件的内容可能如下所示:

![](https://lh3.googleusercontent.com/s83eZkTjZ5rZRhMMufyrmLtFO04Ub86kBaHexDrPeA9JjIzZpveQnh1tCrmeju9R3nYQknW1pZD3jRQQsrP_0oAtgnSFLbkGfHxrna0JdrDfPtY_lu9ahKu8kn27tDAl-

PtVpQUv)

带有高亮显示的 XOR 密钥的 pe.bin 文件内容

如上图所示,文件开头有一个随机生成的字符串,类似于初始的 AutoIt 脚本。在一系列随机字母之后,我们可以看到一个由管道分隔的字符串,后面跟着一个
base64 字符串。这正是解密函数所需的参数。以下是用 Python 编写的相应解密器。

如上所示,密钥并不是直接以这种形式使用。恶意软件用“a”替换密钥字符串的第一个字符,并省略最后一个字母。因此,实际的密钥是 asUzmbiYd

之后,base64 字符串被解码,并从 XOR 密钥字符串派生出一个一字节密钥:

位反转的这个一字节密钥随后被用于解密文件内容。如前所述,密码是一个简单的 XOR 密码:

![](https://lh3.googleusercontent.com/o5e_qKchRTZpfha4dIlqWIaCgd-w4Vqu_A5wFKlLelsw3Rx-

QZYmB2UbZuVvRCLFiVyjVaY-

SuiUWSrVm6OiCkMqjPaHxWtC7aPOnDQXZbsaqLGCIqfJPe9qiJTh4-Qfp1FdIhoR)

由于密钥派生过程不佳,实际的密钥空间大小仅为 256 个密钥。因此,分析师可以通过暴力尝试解密 PE 文件头查找 MZ 魔术字节。

用 Python 编写的完整解密器可以在

找到。

活动概述

Meh 和 MehCrypter 感染的激增始于六月中旬,那时我们每天记录数千个感染案例。该恶意软件在西班牙最为猖獗,Avast 阻止了超过 80,000次感染尝试。第二个受害国是阿根廷,受攻击用户超过 2,000。

![](https://lh4.googleusercontent.com/hTasRNXFfXu-

oU5VN6kv0tyIz4CLdO1lkzTX3vk8t8gILAeJfoPw6ddstO77ka64rkjMeHNakhCANfdOHNPGlF3yfgMJy5Twx377a_LkHp2SiPPH2pW_GTCvrocUhClwLCoAh51j)

展示 Meh 从六月到九月攻击的国家地图

展示 Meh 的传播趋势(点击量)图表

总结

在本篇文章中,我们探讨了一种 MehCrypter 家族,它被用来混淆许多在野外流通的恶意软件家族。其中之一是 Meh密码窃取程序,我们将在系列的下一部分中详细介绍,敬请期待!

指标(IoCs)

文件名| 哈希
—|—
初始 AutoIt 脚本|
94c2479d0a222ebdce04c02f0b0e58ec433b62299c9a537a31090bb75a33a06e
阶段 1 – 投放者|
43bfa7e8b83b54b18b6b48365008b2588a15ccebb3db57b2b9311f257e81f34c
阶段 2 – shellcode|
34684e4c46d237bfd8964d3bb1fae8a7d04faa6562d8a41d0523796f2e80a2a6
阶段 3 – shellcode 2|
2256801ef5bfe8743c548a580fefe6822c87b1d3105ffb593cbaef0f806344c5
阶段 4 – Meh 启动程序|
657ea4bf4e591d48ee4aaa2233e870eb99a17435968652e31fc9f33bbb2fe282
pe.bin| 66de6f71f268a76358f88dc882fad2d2eaaec273b4d946ed930b8b7571f778a8
base.au3| 75949175f00eb365a94266b5da285ec3f6c46dadfd8db48ef0d3c4f079ac6d30
autoit.exe| 1da298cab4d537b0b7b5dabf09bff6a212b9e45731e0cc772f99026005fb9e48
网址


http://83[.]171.237.233/s2/pe.bin
http://83[.]171.237.233/s2/base.au3
http://83[.]171.237.233/s2/autoit.exe

仓库:https://github.com/avast/ioc/tree/master/Meh

标签为 ,

分享:XFacebook

Leave a Reply

Your email address will not be published. Required fields are marked *