11月初一个名为“MosesStaff”的神秘黑客组织成功对以色列国防部发动了网络攻击,获取了一些“军队部署信息”,并对外发布了一些声称是从以色列国防部服务器获取的文件和照片。
“MosesStaff”在官网声称,该组织入侵了165个服务器和254个网站,收集了超过11TB的数据,其中包括以色列国防部及国防部长本尼·甘茨的相关信息,还有《以色列邮报》、电子西拉公司和Epsilor公司相关的文件。
技术分析
早在今年 9 月,黑客组织 MosesStaff 就开始以以色列组织为目标,加入了大约一年前由 Pay2Key 和 BlackShadow 攻击组织发起的攻击浪潮。这些攻击者主要是出于政治原因发起的攻击。
MosesStaff 加密的计算机屏幕截图
在本文中,我们将介绍他们的策略、技术和程序 (TTP),分析他们的两个主要工具 PyDCrypt 和 DCSrv,描述他们的加密方案。
1.MosesStaff 对以色列公司进行的有针对性的攻击中,泄露了数据,并加密了网络。但没有赎金要求,也没有解密选项;他们的动机纯粹是政治性的。
2.对受害者网络的初始访问大概是通过利用 Microsoft Exchange Server等面向公众的基础设施中的已知漏洞实现的。
3.受感染网络中的横向移动是使用基本工具进行的:PsExec、WMIC 和 Powershell。
4.这些攻击利用开源库 DiskCryptor 来执行卷加密并使用引导加载程序锁定受害者的计算机,引导加载程序不允许计算机在没有正确密码的情况下启动。
5.在某些情况下,当前的加密方法可能是可逆的。
感染链
为了获得初始访问权限,攻击者利用了目标中面向外部的基础设施中的已知漏洞。结果,一个webshell出现在以下路径中:
C:\inetpub\wwwroot\aspnet_client\system_web\IISpool.aspx
它是一个基本的密码保护shell,其中将输入密码的MD5与硬编码值52a04efc6a0e7facf34dcc36a6d1ce6f (joker123的MD5哈希值)进行比较。这个webshell是模糊的,基于Github中可用的一个webshell。
混淆的 webshell 密码验证代码
身份验证成功后混淆的 webshell 的屏幕截图
攻击者还将几个额外的工具上传到同一个文件夹:
1.多个批处理脚本可以在特定的远程计算机上启用 SMB 或禁用 Windows 防火墙。
2.PsExec 的一个副本,这是 Microsoft 的一种便携式工具,允许使用任何用户的凭据远程运行进程。
3.OICe.exe,一个小型的 Go 可执行文件,它通过其命令行参数接收命令并执行它。该工具可能会在攻击的早期阶段用于受感染的服务器,以避免执行 cmd 或 PowerShell 等可疑子进程。
攻击者进入受害者网络后,他们收集网络中计算机的信息并将其组合到一个victim_info列表中。这包含域名、计算机名称和管理员凭据,稍后用于编译特制的 PyDCrypt 恶意软件。
该恶意软件通常在 C:\Users\Public\csrss.exe 中路径运行,负责在网络内部自我复制并释放主要的加密载荷 DCSrv。
感染链
PyDCrypt
PyDCrypt 的主要目标是感染其他计算机并确保主要载荷 DCSrv 正确执行。可执行文件是用 Python 编写的,并使用 PyInstaller 进行加密编译,在构建阶段使用 --key 标志。如前所述,攻击者为每个受感染的组织构建一个新的样本,并对从受害者的环境中收集的参数进行硬编码:
在 PyDCrypt 示例中硬编码的字典显示了攻击者在侦察阶段从受害者环境中收集的信息
PyDCrypt 可以接收 2 或 3 个参数。
预期的第一个参数是 113,恶意软件会检查,如果参数不同,它不会继续执行并自行释放。
第二个参数可以是 0 或 1,表示 PyDCrypt 之前是否已经运行过。
第三个参数是可选的,如果提供了,它将用作加密密钥,稍后将作为参数传递给DCSrv。
恶意软件的主要工作流程:
创建锁定文件以防止多个恶意软件实例同时运行。
解密 DCSrv(名为 C:\Users\Public\svchost.exe)到磁盘并执行它。加密算法基于 XOR 和多个 Base64 编码操作。
负责 DCSrv 执行的 PyDCrypt 的反混淆代码
解密并释放 PSExec(名为 ps.exe),解码方法与 DCSrv 相同。
修改防火墙规则以允许在远程计算机上使用 netsh.exe 传入 SMB、Netbios 和 RPC 连接:
遍历网络中的计算机并感染每台计算机:恶意软件尝试使用已泄露的管理员凭据通过 Powershell、PSExec 或 WMIC等任何可用的工具远程复制和执行 csrss.exe (PyDCrypt)。通过在目标计算机上运行 whoami 或 echo 1233dsfassad 来完成对每种方法的探测。
释放所有创建的工件,例如 ps.exe 二进制文件和 PyDCrypt 可执行文件。
PyDCrypt 单执行树(single execution tree)的取证报告示例
DCSrv
该恶意进程伪装成合法的 svchost.exe 进程,其目的只有一个:加密所有计算机卷,并拒绝对计算机的任何访问。
它包含以下4个资源:
资源 1——包含加密配置,根据代码,还可以包含硬编码的加密密钥。一些配置值是:
引导加载程序自定义消息:Hacked By
在安装 DiskCryptor 驱动程序后重新启动计算机之前等待的时间;
加密卷后重新启动计算机之前等待的时间;
引爆时间:加密开始的确切时间;
资源 2——64 位的签名 DCDrv.sys 驱动程序;
资源 3——32 位签名的 DCDrv.sys 驱动程序;
资源 4——用于安装引导加载程序的加密 DLL;
除了配置之外,执行流程还可以由该工具接收到的命令行参数控制,它可以接受0到2个参数。
如果第一个存在,则它是加密密钥,如果第二个存在,则它是一个标识符,也将与保存在恶意软件配置中的字符串进行比较。一个例子是字符串“113”,在DCSrv和PyDCrypt参数中都使用了它。然而,如前所述,标准的执行链是PyDCrypt将其参数(包括加密密钥)传递给DCSrv。
完整的加密工具是基于一个强大的第三方开源工具DiskCryptor。MosesStaff使用了该工具的几个部分,主要是签名驱动程序和自定义引导加载程序。
该工具的执行流程可以分为三个部分:驱动安装、卷加密和引导加载程序安装。
安装驱动程序
第一个操作是创建两个名为 DCUMSrv 和 DCDrv 的服务,每一个都有不同的目的。
DCUMSrv仅用于持久性机制,用于在启动时使用最初提供的参数运行相同的可执行文件svchos .exe。DCDrv运行提供的过滤驱动程序DCDrv.sys。对于安装,它从资源2或3中提取嵌入式驱动程序(取决于它是运行在32位系统还是64位系统上),并将其内容写入C: windows system32\drivers\DCDrv.sys。然后,它以与DiskCryptor开源项目相同的方式配置注册表参数。
用于持久性机制的服务
安装 DCSrv.sys 过滤器驱动程序
由于驱动程序的有效签名,正如我们在下面看到的,DSE(驱动程序签名强制执行)功能不会停止其安装。
DCDrv.sys 有效签名
当恶意软件完成驱动程序的安装后,它会在几分钟后执行一次重启,以使驱动程序运行。
加密卷
在第二次运行时,恶意软件会等待配置中给出的确切时间,然后才会引爆其加密机制,这是有效载荷是针对每个受害者创建的又一个证明。
检查当前时间并将其与配置中提供的值进行比较的代码
到特定时间时,程序会遍历所有可用驱动器,从 C: 到 Z:,并使用多个线程同时对它们进行加密。
如前所述,核心加密机制基于DiskCryptor驱动程序。因此,它所要做的就是使用打包到 dc_ioctl 结构中的正确参数启动正确的 IOCTL 消息:
用户模式应用程序和内核模式驱动程序之间有多种通信方法,最流行的方法是使用 Windows API DeviceIoControl 发送称为 IO 控制代码 (IOCTL) 的特殊代码。
在本例中,用于加密驱动器的相关IOCTL代码为DC_CTL_ENCRYPT_START和DC_CTL_ENCRYPT_STEP,参数为:passw1字段中的命令行密钥,device字段中的迭代设备,crypt字段中的CF_AES加密模式。
这个过程可能需要一段时间,所以恶意软件在使用自定义引导加载程序重新启动之前有两个小时的休眠时间。
安装DiskCryptor引导装载程序
这通常在加密过程之前完成,但取决于配置值,也可以等待它结束。事先覆盖引导加载程序的动机很明显,因为即使加密没有完成,对组织的损害也是通过锁定他们的计算机造成的。
引导加载程序安装程序作为资源4嵌入到可执行文件中,并在以/.dll的形式删除它之前进行解密。这个DLL文件有两个名为IsEFI和InstallLoader的导出函数,它们的名称很好地描述了它们的功能。
恶意软件动态加载释放的库并使用引导加载程序文本消息作为参数调用 InstallLoader:
加载引导加载程序安装程序
我们还没有发现引导加载程序本身引入了任何自定义恶意更改。因此,它包含我们希望在带有引导加载程序的卷磁盘加密软件中看到的用于解密主卷的确切功能。
加密方案
勒索软件组织(如Conti、Revil、Lockbit等)几乎无一例外地总是确保他们的加密系统设计良好且无懈可击。他们知道一个严重的错误最终可能会让他们损失数十万美元的潜在收入。不管出于什么原因,包括非经济动机,缺乏使用勒索软件的经验,或者业余编码技能,MosesStaff团队并没有做太多技术上的突破。
密钥生成
MosesStaff 使用三种方法来生成加密机制使用的对称密钥:
作为 PyDCrypt 自动生成的命令行参数;
作为用户提供的命令行参数;
如果配置中的某个位被打开,则密钥在可执行文件中被硬编码;
最常见的方法是运行 PyDCrypt,并根据 MD5 哈希和精心制作的盐值为每个主机名发送专有加密密钥。生成密钥的代码如下所示:
解密过程
如上所述,简单的基于对称密钥的加密通常不足以形成一个防弹的、难以逆转的加密方案。通过使用上面的分析,我们确实有几个可能反转加密的选项。
第一个也是最重要的选项是查看环境中是否安装了EDR产品日志。一个正确设计的EDR会记录所有的流程创建,以及它们的命令行参数,这是案例中的关键。
使用svchost.exe参数进行解密的复制攻击的EDR解决方案的屏幕截图
第二种选择是提取并逆转最初攻击受害者的PyDCrypt恶意软件。这种方法有点棘手,因为代码在运行完成后会被自行删除。在PyDCrypt示例中,我们可以提取精心制作的哈希函数,该函数为每台计算机生成密钥。
通过使用从这些方法中提取的密钥,我们可以将它们插入启动登录屏幕,并解锁计算机。通过这种方式,我们可以恢复对操作系统的访问,但磁盘仍然是加密的,并且每次重新启动时 DiskCryptor 引导加载程序都处于活动状态。这可以通过创建一个简单的程序来解决,该程序向 DiskCryptor 驱动程序启动适当的 IOCTL,并最终将其从系统中释放。
总结
将网络攻击归因于政治动机的原因很复杂,目前,根据我们掌握的所有信息,我们无法得出任何明确的结论。然而,有一些工具引起了我们的注意:
攻击中使用的工具之一 OICe.exe 在该组织开始其活动的活跃阶段(加密和公开泄密)前几个月从巴勒斯坦提交给 VT。
攻击者在被攻击的服务器上留下的命令代理工具VT提交的屏幕截图
虽然这不是一个强有力的迹象,但它可能会泄露攻击者的起源;有时他们会测试公共服务(如 VT)中的工具,以确保它们足够隐蔽。
网站 moses-staff[.]se 上使用的背景和徽标 PNG 图像文件(所有人都有可用的元数据)是在域在计算机上注册后几天创建或修改的,时区为 GMT+3 ,这是以色列和巴勒斯坦领土在每年这个时候的时区。
来自MosesStaff网站的图像元数据示例
如上所述,MosesStaff 有一种特定的操作方式,即利用面向公众的服务器中的漏洞,然后使用独特的工具和野外操作的组合,使目标网络加密,与之前的 Pay2Key 和 BlackShadow 组织一样,MosesStaff 组织受政治和意识形态的驱使,将目标对准以色列组织。
本文翻译自:https://research.checkpoint.com/2021/mosesstaff-targeting-israeli-companies/如若转载,请注明原文地址