最后更新于2023年11月9日星期四14:25:06 GMT

这篇文章的作者也是 安娜Širokova

执行概要

近年来, 进入赎金即服务(RaaS)领域的威胁行为者明显增加。. 其中一些已经成为重大威胁,而另一些则逐渐淡出人们的视线. 当前的情况之所以不同寻常,是因为黑客组织进入了这个领域. GhostSec就是这样一个组织,它推出了一种名为GhostLocker的新型“赎金即服务”加密器. GhostSec的主要目标是成熟的电信公司, 监测系统, 以及物联网(IoT)设备.

GhostLocker的市场定位是开创性的, 企业级锁定软件,优先考虑安全性和有效性高于一切. 最初定价为999美元,为前15个分支机构, GhostSec预计将这一费用提高到4美元,未来的999. 本执行摘要简要介绍了我们对这一新兴勒索软件变种的调查和主要发现.

图1 - GhostLocker公告

GhostLocker RaaS于10月8日发布, 从那以后,加密器进行了几次更新. Rapid7的研究人员获得了几个新的GhostLocker样本,并快速查看了它们. 这篇博客——基于第一个公开可用的样本之一——和分析使我们得出结论,加密器仍在开发中,缺乏加密文件的基本能力.

图2 - GhostLocker更新时间表

技术分析

GhostSec宣布,新的GhostLocker加密器的主要功能包括:

  1. 运行时军用级加密
  2. 使用多态存根无法检测, 并保证所有主要反病毒(AV)解决方案的零检测
  3. 防止逆向工程
  4. Self-delete
  5. 造成服务
  6. 自动特权升级
  7. 持久性机制
  8. 监督过程
  9. 延迟加密

GhostSec还为其附属公司提供功能齐全的统计和谈判平台.


GhostSec使用Python创建他们的加密器. Rapid7发现的第一个示例是一个PyInstaller可执行文件. PyInstaller用于将Python代码打包成各种操作系统的独立可执行应用程序. 它需要一个Python脚本并生成一个可执行文件,该文件包含所有必要的依赖项,并且可以在没有安装Python的计算机上运行. 这样可以方便地分发和部署Python应用程序, 因为用户不需要在他们的系统上安装Python和任何必需的模块来运行应用程序. 我们从安装程序中提取了python脚本. 大多数提取的文件都是合法的公共python库,唯一引起我们注意的是 main.py script.

图3 - Main的主要功能.py

Main.py脚本似乎包含硬编码附属面板IP地址和完全实现的功能,该功能将受感染的机器名称发送到面板. 该IP地址是一家托管公司的IP地址,我们今年从该公司观察到勒索软件活动.

图4 -硬编码URL和受害者的数据发送功能

通过检查主函数,我们可以跟踪GhostLocker加密器的确切攻击流程. 首先,加密密钥将使用 Fernet 加密模块,使用高级加密标准AES (Advanced encryption St和ard)加密数据. Fernet库中的generate_key()方法用于创建32字节url安全的base64编码密钥, 后来在AES加密过程中使用的.

图5 - internet密钥生成

下一个, 它将生成受害者ID并通过使用getpass Python库检索受害者的用户名. 函数getpass.Getuser()用于返回用户的“登录名”. 完成所有密钥生成之后, GhostLocker将发送包含受害者ID的json数据, 加密密钥, 受害者的电脑名和攻击者的面板. 这里是“正在进行的工作”加密器的第一个提示:传递的“pcname”是硬编码的“hi”:

图6 -硬编码的“hi”pcname

受害者的信息和加密密钥通过HTTP协议以明文形式发送, 如下图所示:

图7 -来自GhostLocker pcap

在将受害者信息发送给攻击者的面板之后, the GhostLocker is supposed to start the encryption process; however, 在我们分析的样本中, 加密功能未实现:

图8 -文件加密功能

在假定的加密完成后,GhostLocker将在文档文件夹中放置赎金通知:

图9 -主要的赎金笔记内容.py文件

这封勒索信的html文件名为Imao,是“laugh My Ass Off”的首字母缩写。, 尽管那张纸条上没有什么对受害者的有趣之处. 要么攻击者是在嘲笑受害者,要么这个名字只是用于开发人员的检查,将来会被更改. The ransom note is pretty straightforward; it explains to the victim what happened to their files 和 how to contact the attacker. 奇怪的是,它只落在“文档”文件夹中,这使得它很难被发现. 据观察,攻击者使用了端到端加密消息传递平台, 会话, 作为受害者和勒索软件开发者之间的沟通来源. 这个信使的链接嵌入在勒索信的正文中, 为受害者提供下载应用程序的直接路径.

图10 - Imao.HTML勒索信

在仔细看了这封HTML格式的勒索信之后, 很明显,这封勒索信是手工制作的,而不是生成的, 因为它包含语法错误. 这种错误的一个明显例子是“party”而不是“party”,,表明很可能是人为写的:“不要试图使用第三方软件解密你的数据。, 可能导致数据永久丢失.”

此外,主要的.py包含sendWebhook(msg)函数. 该功能旨在向Discord Webhook发送消息或数据. The webhook URL is hardcoded in the code; however, 我们没有看到被调用的函数,也没有看到向攻击者的不和谐通道发送了什么样的消息. 虽然完全实现了,但这个函数从未被调用过.

图11 -未使用的sendWebhook函数

第一次执行时, 几个嵌入的文件被放入用户临时目录中创建的新文件夹中. 其中一个文件是作为安装程序的子进程执行的第二阶段可执行文件. 安装程序通过使用WaitForSingleObject API调用等待子进程退出. 子进程退出时, 安装程序实现了自删除功能,并删除所有被删除的文件.

更新版本的GhostLocker是用Nuitka编译的. Nuitka将Python程序编译为C二进制文件-而不是将CPython运行时与程序字节码打包, 而是通过将Python指令翻译成C语言. 用Nuitka编译恶意软件会让调查变得更加困难.

Rapid7客户

适用于Rapid7 耐多药和insighttidr客户, 所有执行的二进制文件都将针对哈希信誉服务进行全面分析,以确定它是否是已知的恶意文件,并在恶意哈希时发出警报. 另外, 通过我们基于行为的检测规则,我们将能够识别与这些威胁参与者相关的活动模式,以便在部署勒索软件之前为客户提供覆盖和警报,以保护他们的系统.

斜接丙氨酸&CK技术

表1. 文件特征表

国际石油公司

参考文献

http://docs.aspose.com/cells/python-java/pyinstaller-python/

http://github.com/pyca/cryptography/blob/main/src/cryptography/fernet.py#L66

http://getsession.org/download

http://nuitka.net/doc/user-manual.html