神秘的雨刷器用史诗巨魔使伊朗火车瘫痪

2021-08-02 08:12:34

攻击者嘲笑伊朗政府,因为被黑的显示器指示乘客将投诉发送至伊朗最高领袖哈梅内伊办公室的电话号码。 SentinelLabs 的研究人员能够重建大部分攻击链,其中包括一个有趣的前所未见的擦除器。 OPSEC 错误让我们知道攻击者将此擦除器称为“Meteor”,促使我们将活动命名为 MeteorExpress。目前,我们无法将此活动与先前确定的威胁组或其他攻击联系起来。然而,文物表明这款雨刷器是过去三年开发的,专为重复使用而设计。为了鼓励进一步发现这个新的威胁行为者,我们正在为其他安全研究人员提供指标并寻找 YARA 规则。 2021 年 7 月 9 日,有关伊朗铁路系统服务中断的雨刷攻击开始浮出水面。攻击包括史诗级的拖钓,因为有报道称火车时刻表显示“由于网络攻击而导致长时间延误”,并指示联系“64411”——最高领袖阿里·哈梅内伊办公室的电话号码。早期的报道并没有引起太大的反响,因为伊朗当局模糊地将矛头指向网络攻击,后来又撤回了这些说法,这并不少见。但是检查一下也无妨。

我们要感谢安全研究员 Anton Cherepanov,他指出了伊朗反病毒公司的早期分析(波斯语)。尽管缺乏具体的妥协指标,我们还是能够恢复帖子中描述的大部分攻击组件以及他们遗漏的其他组件。在这个关于停止的火车和油嘴滑舌的巨魔的古怪故事背后,我们发现了一个不熟悉的攻击者的指纹。虽然早期的报告没有包含技术细节,但我们能够根据多种因素重建大部分攻击组件——Padvish 安全研究人员的早期分析以及包含更长组件名称列表的恢复的攻击者工件。攻击者滥用组策略分发 cab 文件来进行攻击。整个工具包由批处理文件的组合组成,这些批处理文件编排了从 RAR 档案中删除的不同组件。使用攻击者提供的 Rar.exe 副本和密码“hackemall”解压的档案。擦除器组件按功能划分:Meteor 基于加密配置加密文件系统,nti.exe 破坏 MBR,而 mssetup.exe 锁定系统。虽然我们能够为擦除器攻击恢复数量惊人的文件,但有些文件却让我们望而却步。 MBR 破坏程序 nti.exe 在缺失的组件中最为显着,因为 Padvish 研究人员指出,该组件覆盖的扇区与 NotPetya 覆盖的扇区相同。在我们能够找到这个文件之前,我们无法证实他们的发现。大多数攻击是通过一组嵌套在其各自组件旁边并在连续执行中链接在一起的批处理文件进行编排的。 setup.bat 是第一个通过组策略执行的组件。有趣的是,它会删除 Windows 电源效率诊断目录下名为“AnalyzeAll”的计划任务。目前,我们无法确定此任务。该批处理文件负责通过伊朗铁路网络内网络共享中的 CAB 文件复制初始组件。扩展 CAB 文件并使用参数“hackemall”、相关路径和 Meteor 擦除器可执行文件 (env.exe) 执行 update.bat。 envxp.bat 似乎是 setup.bat 的一个更简单的替代版本。顾名思义,它可能是为 Windows XP 设计的。

update.bat 是一个编写良好的批处理脚本,它负责放置剩余的文件并通过调用连续的批处理脚本来指导剩余的执行流程。它需要三个参数:rar 档案的密码、工作目录和有效负载的位置。如果前两个参数为空,它会顺利退出。在没有有效负载的情况下,脚本会尝试运行 msapp.exe。该组件列在 Padvish 安全文章中,但通过 setup.bat 的执行流程指向 env.exe 作为预期的有效负载。我们将在下面深入研究这个组件。该脚本在 C:\Windows\Temp\__lock6423900.dat 下检查硬编码的“lock_file”。该文件用作临时互斥体以避免双重执行,并且可以兼作疫苗以避免在开发过程中感染。批处理文件使用自己的 WinRAR 副本,使用相同的 Pokemon 主题密码“hackemall”(Hack 'Em All)从三个附加档案(programs.rar、bcd.rar、ms.rar)中解压附加组件。对于每个 RAR 存档,update.bat 在删除相应存档之前调用后续批处理存档。开发人员非常小心地在使用后立即清理他们的组件。此时执行开始分叉到其他脚本中。第一个是 cache.bat,它专注于使用 PowerShell 清除障碍并为后续元素做好准备。 cache.bat 执行三个主要功能。首先,它会断开受感染设备与网络的连接。然后它会检查计算机上是否安装了卡巴斯基防病毒软件,如果安装,它将退出。最后,cache.bat 将为其所有组件创建 Windows Defender 排除项,从而有效地为成功感染扫清障碍,而不会遇到任何障碍。这个脚本被证明对我们重建整个攻击链特别有价值,因为它列出了大多数攻击组件,为我们提供了各种威胁搜寻购物清单。值得注意的是,这是我们恢复的唯一一个嵌入 PowerShell 的批处理脚本。随后,update.bat 调用 bcd.bat,它提供两个功能:使机器无法启动和清理事件日志。

为了禁用机器的启动能力,bcd.bat 创建了一个替代的 boot.ini 文件,该文件将引导加载程序指向难以置信的高磁盘和分区号 (10000000) 并覆盖系统的 boot.ini 副本。然后,脚本使用本机 bcdedit 命令列出引导选项标识符并删除每个标识符。