只要一小段Python代码,就可以发动一场针对VMware ESXi服务器的、闪电战般的勒索攻击。从最初的入侵到最后的加密,整个过程只需要不到三个小时。
近日,研究人员发现了一种新型的Python勒索软件,它来自一个默默无闻的勒索攻击团伙。但它却以极其犀利的攻击手法和“狙击”一样的攻击速度,对VMware和 ESXi服务器发起了攻击。
2021年10月5日,网络安全公司Sophos表示,该勒索软件针对托管在ESXi服务器上的VMware进行入侵和加密。只需短短三个小时,就可以完成一次完整的勒索攻击。
Sophos首席安全研究员Andrew Brandt在新闻发言中说道:“这是Sophos公司调查过的、攻击速度最快的勒索软件之一,而且它似乎精确地瞄准了ESXi平台。”
Brandt指出,Python编码语言用于勒索软件的情况比较少见,但在这次勒索攻击中却表现的很“迅猛”。因为Python和ESXi一样,常预装在Linux系统上,这就给基于这些系统上的Python攻击成为可能。
虽然选择Python构建勒索软件出乎大多数人的意料,但是针对ESXi服务器的攻击并非不可能。裸机安装的VMware’s ESXi(以前被称为 ESX)一直是攻击者的最爱,这是一种全新和极其简化的方式,可以轻松安装到服务器上,并将其划分为多个虚拟机中。
此举虽然可以让很多台虚拟机共享硬盘、驱动和存储,但也让系统在遭受攻击时容易被一锅端。攻击者可以对用来存储虚拟机数据的集中式虚拟硬盘进行加密,因此可以一次性锁定大量的虚拟机。
2021年7月,就在REvil勒索团伙推出了一个Linux变种勒索软件,同样针对VMware ESXi服务器,以及它的网络连接存储(NAS)设备之后,AT&T网络安全部门的外星人实验室给出了这样的解释。
7月中下旬,HelloKitty 加入其中,越来越多的勒索软件巨头开始追逐ESXi这个“有趣”的目标。随后,DarkSide也开始将目标瞄准了ESXi服务器。2021年6月,AT&T外星人实验室分析了DarkSide Linux版本的勒索软件,它也是上个季度最为活跃的勒索软件之一。
简单来说,ESXi已经成为勒索攻击者眼中的香饽饽,它们都渴望来一次酣畅淋漓的ESXi攻击,这就跟在老虎机上中大奖一样令人腺上肾素飙升。
对此,Brandt解释说,“ESXi服务器之所以会成为勒索团队眼中的高吸引力目标,是因为它们可以一次攻击多个虚拟机,而这些虚拟机往往承载着企业的关键业务或应用程序,这样既可以快速完成攻击,又可以对目标造成极高的破坏。”
在一次勒索软件的调查过程中,Sophos的研究员偶然间发现了一个全新的勒索攻击——以Python为脚本,攻击速度超快。
在某个周日的凌晨12点30分,勒索攻击正式开始。勒索软件攻击者计划入侵用户的远程控制账号,该账号必须满足两个条件:具有管理员访问权限,但没有启用多因素身份验证(MFA)。
随后,勒索攻击者开始了他的闪电战表演。
十分钟后,攻击者使用高级IP扫描器在全网范围内寻找网络目标。Sophos公司的调查人员认为,处于联网状态下的ESXi服务器更容易遭受攻击,因为它有一个IT团队使用的active shell,用于执行命令和更新。
根据Sophos公司的报告,目标ESXi服务器有一个名为ESSi Shell的内置SSH服务,管理员可以启用该服务,但默认情况下通常会禁用该服务。
Brandt的调查结果显示,该组织的IT人员习惯使用ESXi Shell来管理服务器,并在攻击前一个月多次启用和禁用Shell。遗憾的是,他们最后一次调用Shell后,并没有禁用它。当勒索攻击者发现shell处于活跃状态时,他们随即利用了这一偶然因素。
攻击发起一个半小时之后,攻击者下载了名为Bitvise的SSH客户端,用它登录了 VMware ESXi 服务器上,并使用高级IP扫描器进行扫描。
攻击发起三个小时之后,攻击者窃取到了管理员凭证并登录了ESXi Shell,随后他们讲一个名为“fcker.py”的文件复制到ESXi数据存储,其中存储了虚拟机运行时所使用的虚拟磁盘映像。
Python脚本使用ESXi Shell的 vim-cmd命令函数,生成了服务器上安装的、所有虚拟机的名称列表,并把它们全部关闭。因为只有在虚拟机全部关闭后,脚本才会开始对存储数据进行加密。
(图片来源于threatpost)
攻击者开始执行Python脚本,一个接一个地标记虚拟机,并通过路径将数据存储磁盘不断传递给脚本,其中每个磁盘中都包含了多个虚拟机的虚拟磁盘和设置文件。
有意思的是,勒索软件片段对其加密的每个文件只使用一条指令,因此需要调用开源工具OpenSSL来使用以下命令加密文件:openssl rsautil -encrypt -inkey pubkey.txt -pubin -out [filename].txt
Sophos公司的调查人员最终还是找到了一份文件副本。
尽管勒索攻击者删除了该文件,删除的信息包括目录列表、虚拟机及其名字等,并且在完全删除之前,他们还费尽心机地使用其他信息进行覆盖。值得一提的是,覆盖的数据也不是别的,而是一句骂人的“f-k”。
你敢相信,这么一款拥有高攻击力和超过攻击速度的勒索软件只有6kb大小?但却足以给企业造成严重的经济损失。
Brandt表示,该脚本包含了一些变量,攻击者可以配置多个加密密钥、电子邮件地址,以及被附加到加密文件中的、可以自定义的文件后缀。具体来说,Python脚本作为变量嵌入到加密文件(ext)的文件后缀,攻击者还提供了两个电子邮件地址,用于受害人支付赎金。
攻击者还“细心”地嵌入了如下所示的赎金说明文本。
(图片来源于threatpost)
在浏览代码和调查研究时,Sophos公司发现了一个奇怪的现象:数据加密过程中有多个硬编码的加密密钥,以及一个如何“生成更多的加密密钥对”的演示程序。
Brandt表示,“一般情况,攻击者只需要嵌入自己电脑上生成的‘公钥’,并用它来加密目标计算机上的文件,但是这个勒索软件似乎每次运行时都会创建一个独特的密码。”
这似乎不符合常理。随着Sophos公司调查的深入,这才发现了其中的缘由。
原来在勒索攻击过程中,攻击者对每个想要加密的ESXi数据存储,都执行了一次脚本,而每一次执行,该脚本都会自动生成一个唯一的密钥对,并用它来加密文件。例如攻击者在某个操作中,针对三个数据存储进行加密,每次都是单独执行脚本,自然也就创建了三个唯一的密钥对,每个数据存储都有一个。
有意思的地方来了,这个脚本根本没有能力将秘钥传输出去,所以这些秘钥依旧保留在目标电脑上。但攻击者显然不会这么愚蠢,让受害者可以免费使用秘钥来解密文件,这样他们拿不到任何赎金。
为了解决这一问题,攻击者只好又写了一份秘钥的副本,然后嵌入硬编码公钥进行加密。
Sophos公司的调查报告显示,“勒索软件的脚本运行了演示程序,列出了执行过程中提供给脚本路径的所有文件。脚本会生成一个唯一的文件,由32字节随机代码组成的aeskey,然后使用aeskey对文件进行加密,并作为“salt值”加入到/tmp 路径中。”
最后,攻击者将aeskey的价值赋予到加密文件,对文件附加了一个新的文件后缀,再使用“fuck”单词对原始文件进行覆盖后,删除了原始文件,最后将加密文件从/tmp移动到存储原始文件的位置。
Brandt表示,虽然针对ESXi等系统的Linux恶意软件变种相对“罕见”,但是ESXi服务器的端点保护能力明显不足。对此,他提出了一些针对ESXi服务器以及其他管理程序的建议和最佳安全实践:
1.避免使用重复的密码
2.密码越长越复杂越好
3.尽量使用MFA,并对高权限的账户(如管理员账户)强制执行。
4.不用时一定要禁用Shell
“在上述案例中,我们应该使用计算机本身的物理控制台来开启或关闭ESXi Shell,或者是通过VMware提供正常的管理工具。只有在员工使用期间,Shell才能保持活跃状态,而当计算机完成了工作和维护(比如安装补丁)后,管理员应立即禁止它运行。”
文章来源:
https://threatpost.com/vmware-esxi-encrypted-python-script-ransomware/175374/