潘多拉勒索软件分析 Pandora ransomware

潘多拉勒索软件分析 Pandora ransomware

受影响的平台: Windows
受影响的用户: Windows 用户
影响:受感染机器上的大多数文件都是加密的
严重级别:

在希腊神话中,臭名昭著的潘多拉魔盒(罐子)的打开给世界带来了可怕的事情。今天的勒索软件也可以这么说。新出现的 Pandora 勒索软件也不例外。它从受害者的网络中窃取数据,加密受害者的文件,并在受害者选择不付款时公开被盗数据。希腊神话说希望留在盒子里。对于 Pandora 勒索软件是否如此,这是一种新兴的恶意软件,显示了现代勒索软件使用的所有技术?在这篇博客中,我们将用锤子和撬棍来探查今天的潘多拉魔盒,以找出其中的奥秘。我们会讨论:

  • 该勒索软件如何试图逃避检测
  • 用于阻碍分析师的众多混淆和反分析技术
  • 如何使用多线程来加速处理文件进行勒索
  • 如何处理文件系统
  • 如何以及哪些文件被加密。

潘多拉勒索软件集团

Pandora 勒索软件集团早在 2022 年 2 月中旬就进入了本已拥挤的勒索软件领域,并以企业网络为目标以获取经济利益。该组织在宣布从汽车行业的国际供应商处获取数据后,最近受到了关注。这一事件出人意料地发生在袭击发生两周后,据报道另一家汽车供应商遭到未知勒索软件的袭击,导致世界上最大的汽车制造商之一暂停工厂运营。威胁集团使用双重勒索的方法来增加对受害者的压力。这意味着他们不仅会加密受害者的文件,还会泄露文件并威胁如果受害者不付款,就会公开数据。

潘多拉集团在暗网(TOR 网络)中有一个泄密站点,他们在那里公开宣布受害者并以数据泄露威胁他们。目前泄密现场列出了三名受害者(见图1),一家美国房地产中介公司、一家日本科技公司和一家美国律师事务所。

潘多拉勒索软件分析 Pandora ransomware
图 1 – Pandora 的泄密官网

恶意软件分析

我们使用 SHA-256 哈希5b56c5d86347e164c6e571c86dbf5b1535eae6b979fede6ed66b01e79ea33b7b分析样本,这是一个 64 位 Windows PE 文件。它是勒索软件本身,因此在攻击期间执行此文件时,攻击者可能已经广泛访问了受害者的网络,并且他们已经泄露了他们将用于勒索的数据。此样本无法与威胁参与者进行通信。它的唯一目的是查找和加密文件。然而,它以一种有趣而复杂的方式做到了这一点。

在以下部分中,将讨论恶意软件的这些有趣方面。

执行流程

该示例经过以下步骤:

请注意,括号内的“T”后跟数字是指 MITRE ATT&CK 技术 ID,在文章末尾进行了总结。

 1) 包:样本是用修改过的UPX打包器(T1027.002)打包的,所以第一步是将真实内容解包到内存并跳转。这将在后面讨论。

 2)  Mutex :它创建一个名为ThisIsMutexa的互斥体

 3) 禁用安全功能:它可以删除 Windows 卷影副本 (T1490)、绕过 AMSI (T1562.001) 和禁用事件日志记录 (T1562.002)。稍后将详细介绍这些功能。

 4) 收集系统信息:  GetSystemInfo()用于收集本地系统的信息。

 5) 加载硬编码的公钥:恶意软件样本中的公钥是硬编码的。这用于设置加密以进行加密。

 6)  Store Private and Public Keys in Registry : 生成一个私钥,硬编码的公钥和新生成的私钥都存储在注册表中(T1112)。

 7) 搜索驱动器:它搜索系统上未安装的驱动器并安装它们以加密它们(T1005)。

 8) 设置多线程:该示例使用工作线程来分发加密过程。稍后再谈。

 9) 枚举文件系统:工作线程开始枚举已识别驱动器的文件系统(T1083)。

10) 删除赎金票据赎金票据Restore_My_Files.txt被丢弃在每个文件夹中

11) 检查文件名黑名单:对于每个文件和文件夹,检查文件/文件夹名称的黑名单。如果文件/文件夹在黑名单上,则不会被加密。稍后再谈。

12) 检查文件扩展名黑名单:根据文件扩展名黑名单检查每个文件。如果扩展名在列表中,则不会加密。

13) 解锁文件:如果文件被正在运行的进程锁定,示例将尝试使用 Windows 重新启动管理器 (T1489) 将其解锁。

14) 加密文件:工作线程将加密(T1486)文件并将其写回原始文件。

15) 重命名文件:一旦加密完成,文件被重命名为[original_filename].pandora 。

反逆向工程技术

Pandora 勒索软件最重要的方面之一是广泛使用反逆向工程技术。这对于恶意软件来说并不是什么新鲜事,但 Pandora 在减缓分析方面投入了多少资金。在本节中,我们将介绍已确定的不同技术。

打包

样品使用经过改进的 UPX 封隔器进行包装,使用 Detect It Easy 可以轻松检测到该封隔器(参见图 2)。

潘多拉勒索软件分析 Pandora ransomware
图 2:Detect It Easy 可以识别 UPX

但是,标准的 UPX 解包器不起作用,这表明对打包器进行了修改,以确保不能使用现成的工具对其进行解包

通过在调试器中从入口点向下滚动到代码末尾,解包仍然相对容易。代码将以跳转结束(图 3)。这对于加壳程序来说很典型,在将原始代码解压缩到内存中的某个位置后,它们会跳转到那里,而不是从主函数返回。

潘多拉勒索软件分析 Pandora ransomware
图3:拆包结束尾跳

通过在尾部跳转处设置断点,我们可以从内存中转储 PE 文件,包括解压后的代码。使用转储文件,我们也可以静态分析勒索软件。

控制流扁平化

Control-Flow Flattening 是一种混淆技术,可以通过修改控制流来隐藏程序的结构。在最简单的情况下,它将每个函数的正常控制流替换为状态机,因此分析师很难快速了解每个函数的工作原理。Pandora 使用更复杂的控制流扁平化与不透明的谓词相结合,使控制流更加复杂。

潘多拉勒索软件分析 Pandora ransomware
图 4:main() 的图形视图

图 4 显示了解压缩代码中主函数的图形视图。我们可以看到它不像普通函数的控制流。它看起来像一个巨大的 switch-case 语句,这是实现状态机的控制流扁平化的结果。然而,在 Pandora 的案例中,大多数基本块根本没有连接。这是不透明谓词的结果。基本块之间的大部分跳转是在运行时计算的,如图 5 所示。

潘多拉勒索软件分析 Pandora ransomware
图 5:在运行时计算 jmp 的地址

第一条cmp指令检查状态机的当前状态,并根据该状态计算基本块末尾jmp的rdx寄存器的值。由于这种静态分析工具,例如 IDA Pro 无法理解控制流将在哪里继续,因此无法连接图 4 中的基本块

仿真可用于在有限程度上理解控制流,但必须广泛应用调试以确保执行流程如何。

字符串编码

一些字符串可以在解压后的二进制文件中找到,但大部分来自静态链接库。但是,可以帮助我们理解代码中发生的事情的字符串是经过编码的。图 6 显示了如何调用字符串解密函数之一。

潘多拉勒索软件分析 Pandora ransomware
图 6:调用字符串解密函数之一

通过rax调用的解密函数的地址和编码字符串的地址都是在运行时计算的。这样,当静态查看这段代码时,无法知道这里发生了什么。右边的注释是一个IDAPython脚本的结果,该脚本使用 flare-emu 项目来模拟代码并计算函数调用的地址,以及模拟解密函数。该解决方案在恢复二进制中的编码字符串方面非常有效。解密函数实现异或解码。解密密钥与每个编码字符串一起存储。作为奖励,该恶意软件使用多种解密功能。我们确定了 14 个用于字符串解码的独立函数。

函数调用混淆

上一节已经提到,大多数函数调用不是调用直接地址,而是调用寄存器。它的值是在运行时计算的。

如果我们以图 6 为例,rax中的地址计算如下:

rax = *(*address_table_base + 638300900) - 1426601284)

如前所述,这是使用仿真解决的。通过模拟函数的执行,我们可以计算 CALL 指令中的寄存器值。这使我们能够大规模地解决函数调用。

Windows API 调用混淆

与其他恶意软件不同的是,Windows API 函数名称没有经过编码,而是使用了另一种混淆技术来隐藏它们的用法。如图 7 所示,Windows API 函数组织在一个跳转表中。在每个地址都有一个重定向到库函数 的jmp指令。

潘多拉勒索软件分析 Pandora ransomware
图 7:Windows API 函数跳转表

解析 API 函数是在解析函数调用的相同 flare-emu IDAPython 脚本中实现的。每当CALL [寄存器]指向 jmp 指令(见图 8),而不是函数的开头,那么我们假设它指向 API 函数跳转表。所以我们取了跳转操作数的名称,并用它来生成函数调用的注释(参见图 9)。

潘多拉勒索软件分析 Pandora ransomware
图 8:在仿真脚本中恢复 API 函数名称
潘多拉勒索软件分析 Pandora ransomware
图 9:脚本恢复这是对 OpenMutexA 的函数调用

多线程

Pandora 使用多线程来加速加密过程。为此,它使用 Windows 的 IO 完成端口 概念。这允许线程等待文件/网络句柄出现在 IO 完成端口队列中并处理它们。Pandora 使用未关联的 IO 完成端口并使用OVERLAPPED结构通过它发送任何数据。在这种情况下,驱动器和文件路径将被传递给线程来处理(枚举或加密)它们。IO 完成端口是使用CreateIOCompletionPort() API 函数设置的,如图 10 所示。通过传递INVALID_HANDLE_VALUE作为第一个参数( rcx = 0xFFFFFFFFFFFFFFFF )和NULL作为第二个参数( rdx = 0x0 )一个未关联的 IO 完成端口被创建。第四个参数是NumberOfConcurrentThreads,设置为 4 ( r9 = 0x4 ),定义最多允许 4 个线程使用此 IO 完成端口。

潘多拉勒索软件分析 Pandora ransomware
图 10:初始化 IO 完成端口

在此之后,主函数将启动新线程。线程之间的通信是使用GetQueuedCompletionStatus()和PostQueuedCompletionStatus API 函数完成的。图 11 显示了如何使用 PostQueuedCompletionStatus ( ) 将发现的文件 ( pydisas.py ) 放入队列中。另一个线程将使用GetQueuedCompletionStatus()来接收此任务,并且由于它接收到文件的完整路径,因此它将对其进行加密和重命名。

潘多拉勒索软件分析 Pandora ransomware
图 11:将文件路径发布到 IO 完成端口的队列

重启管理器

重新启动管理器是一项 Windows 功能,可减少安装和更新期间所需的重新启动次数。重新启动的原因通常是因为需要更新的文件被正在运行的进程锁定。Restart Manager 可以保存状态并停止锁定过程以解锁目标文件。一旦更新完成,它可以再次恢复锁定过程。Pandora 使用重启管理器来确保即使是当前被锁定的文件也会被加密。对于每个文件,执行以下过程:

1) 使用RmStartSession()创建重启管理器会话

2) 使用RmRegisterResource()将目标文件注册为资源

3) 使用RmGetList()检查目标文件是否被任何进程锁定

4) 如果是,终止锁定进程

5) 使用RmEndSession()结束重启管理器会话

加密

  • 在文件被加密之前,Pandora 会执行以下检查以确保它不会导致机器无法运行。根据以下文件和文件夹名称的黑名单检查每个目标文件。如果目标文件在列表中,Pandora 将不会对其进行加密。
AppData
Boot
Windows
Windows.old
Tor Browser
Internet Explorer
Google
Opera
Opera Software
Mozilla
Mozilla Firefox
$Recycle.Bin
ProgramData
All Users
autorun.inf
boot.ini
bootfont.bin
bootsect.bak
bootmgr
bootmgr.efi
bootmgfw.efi
desktop.ini
iconcache.db
ntldr
ntuser.dat
ntuser.dat.log
ntuser.ini
thumbs.db
Program Files
Program Files (x86)
#recycle
..
.
  • 每个目标文件都与以下文件扩展名列表进行比较。如果文件的扩展名在列表中,则文件不会被加密:
.hta .exe .dll .cpl .ini .cab .cur .drv .hlp .icl .icns .ico .idx .sys .spl .ocx

如图 12 所示,赎金票据承诺使用 RSA-2048 加密。恶意软件附带硬编码的 RSA-2048 公钥(图 13)这一事实证实了这一说法。 

潘多拉勒索软件分析 Pandora ransomware
图 12:赎金票据
潘多拉勒索软件分析 Pandora ransomware
图 13:硬编码的 RSA 公钥

还会生成一个私钥,这两个密钥都存储在HKCU\SOFTWARE\[Private,Public] 下的注册表中(参见图 14)。

潘多拉勒索软件分析 Pandora ransomware
图 14:加密密钥存储在注册表中

解压后的二进制文件包含静态链接的 Mbed TLS 加密库。

一旦文件在内存中被加密,它就会被写入磁盘。之后,该文件被重命名为具有 .pandora的扩展名。

禁用安全功能

Pandora 勒索软件能够禁用目标机器上的一些安全措施。

删除卷影副本

与许多其他勒索软件一样,Pandora 删除了 Windows 影子副本,这可以帮助操作员将机器恢复到感染前的状态。图 15 显示了使用运行时 (T1​​059) 中的参数调用ShellExecuteW( )。我们可以看到它使用了vssadmin.exe。

潘多拉勒索软件分析 Pandora ransomware
图 15:使用 ShellExecuteW 删除卷影副本

AMSI 绕过

反恶意软件扫描接口 (AMSI) 允许安全产品更好地与 Windows 集成,以便能够扫描各种不同的对象,例如 PowerShell 脚本、JavaScript、VBScript 等。通过绕过 AMSI,恶意软件可以从机器上运行。Pandora 通过修补内存中amsi.dll 中的AmsiScanBuffer()函数来绕过 AMSI 。

禁用事件日志记录

与绕过 AMSI 类似,Pandora 通过修补 Windows 内核( ntdll.dll ) 中的EtwEventWrite()函数来禁用 Windows 事件跟踪 (ETW) 功能。图 16 显示函数的第一个字节被替换为 0xC3,即ret指令。这使得 EtwEventWrite()函数无用,因为在每次调用后它立即返回而不记录事件。

潘多拉勒索软件分析 Pandora ransomware
图 16:修补 EtwEventWrite 函数以立即返回

结论

Pandora 勒索软件包含最先进的勒索软件样本通常包含的所有最重要的功能。降低分析速度的混淆程度比普通恶意软件更先进。威胁参与者还注意解锁文件以保证最大的加密覆盖率,同时仍然允许机器运行。我们已经可以看到反安全产品的功能。我们可以期待威胁行为者进一步发展这些能力。目前没有证据表明 Pandora 以勒索软件即服务 (RaaS) 的形式运行,但对恶意软件复杂性的时间投入可能表明它们正朝着这个方向发展。当前的攻击和泄漏可能是他们在勒索软件领域成名的一种方式,如果他们以后采用 RaaS 模型,他们可以利用这一点。

Fortinet 保护

分析后的 Pandora 勒索软件样本通过以下 (AV) 签名检测:

W64/Filecoder.EGYTYFD!tr.ransom

侵害指标(IOCs)

互斥体:ThisIsMutexa
赎金文件:Restore_My_Files.txt
硬编码的公共密钥的SHA256
哈希: 7b2c21eea03a370737d2fe7c108a3ed822be848cce07da2ddc66a30bc558af6b
样品的SHA256哈希:5b56c5d86347e164c6e571c86dbf5b1535eae6b979fede6ed66b01e79ea33b7b

ATT&CK TTP

TTP 名称TTP ID描述
混淆文件或信息:软件打包T1027.002改进的 UPX 封隔器
削弱防御:禁用 Windows 事件日志记录T1562.002禁用事件记录
削弱防御:禁用或修改工具T1562.001绕过 AMSI
来自本地系统的数据T1005搜索卸载的驱动器和分区
修改注册表T1112加密密钥存储在注册表中
为影响而加密的数据T1486作为勒索软件,它会加密文件
命令和脚本解释器T1059使用cmd.exe删除卷影副本
系统信息发现T1082使用GetSystemInfo()收集系统信息
文件和目录发现T1083发现驱动器并枚举文件系统
禁止系统恢复T1490删除卷影副本
服务停止T1489如果进程锁定文件,则终止进程

from

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。