在过去的几个月里,伊朗遭遇了新一轮的网络攻击。这些攻击不仅仅是对网站进行攻击那么简单,这轮攻击正在对伊朗的国家基础设施持续进行攻击,并造成了重大破坏。
本文对 2022 年 1 月下旬发生的针对伊朗国家媒体公司——伊朗伊斯兰共和国广播公司 (IRIB) 的攻击进行了深入分析。
情况介绍
1 月 27 日,伊朗国家广播公司 IRIB 被攻击,导致多个国营电视频道播放反对派领导人的镜头,并呼吁暗杀最高领导人。 Check Point 研究团队调查了这次攻击,并能够从公开可用的资源中检索与该事件相关的文件和取证证据。
我们发现了旨在传播抗议信息的恶意可执行文件,此外,我们还发现了使用擦除恶意软件痕迹的证据。这表明攻击者的目的也是为了破坏国家的广播网络,对电视和广播网络的破坏可能比官方报道的更严重。
在攻击中使用的工具中,我们发现了对受害者屏幕进行截图的恶意软件、几个自定义的后门,以及用于安装和配置恶意可执行文件的相关批处理脚本和配置文件。我们找不到任何证据表明这些工具以前被使用过,或者将它们归因于特定的攻击者。
在本文中,我们对与攻击相关的工具以及攻击者使用的策略进行了技术分析。
早在2021 年 7 月,伊朗国家铁路和货运服务就遭到过攻击,攻击者对火车运行进行了攻击。仅仅一天后,媒体报道称,负责交通的伊朗道路和城市发展部的网站因“网络中断”而被关闭,用户无法访问其官方门户和子服务。此后,网络攻击就开始持续攻击伊朗国家实体,似乎每个目标都经过精心挑选的。 2021 年 8 月,黑客组织 Tapandegan发布了来自德黑兰监狱的埃文监狱的镜头画面,该监狱关押了许多政治犯。 2021 年 10 月,伊朗的加油站因电子支付系统被攻击而瘫痪。该事件导致加油站排了两天的队,客户无法使用政府发行的用于购买补贴燃料的电子卡付款。刷卡付款时,最高领导人办公室的电话号码出现在屏幕上。
2021 年 11 月,伊朗航空公司 Mahan Air 宣布挫败了对其内部系统的未遂攻击,没有造成任何伤害。奇怪的是,这一次一个名为“Hooshyaran-e Vatan”(国家警卫队)的组织声称对此负责,并在接下来的两个月中公布了据称在黑客攻击中被盗的文。
2022 年 2 月 7 日,Edalat-e Ali 组织公布了伊朗另一所监狱Ghezel Hesar的监控录像。
1 月 27 日,有报道称伊朗国家广播公司 IRIB 遭到黑客攻击。伊朗伊斯兰共和国广播公司,也被称为“伊朗伊斯兰共和国的声音和愿景”,是一家国有垄断企业,负责伊朗的所有广播和电视服务。网络攻击导致国营电视频道都在播放该国的政治反对派组织。
在被劫持的视频中,出现了反对派组织领导人 Maryam 和 Masoud Rajavi 的面孔。IRIB 技术事务副负责人 Reza Alidadi 表示,“只有公司使用技术的所有者才能根据系统上安装的系统功能和被利用的后门进行攻击的。”类似的攻击已经攻击了其他国家运营的广播频道。
2 月 1 日,IRIB 的网络流媒体平台 Telewebion 再次被劫持,播放抗议信息。这一次,对针对监狱安全摄像头的攻击负责的具有政治动机的组织 Edalat-e Ali 声称对此负责。这种说法是有道理的,因为黑客攻击期间的视频广播在左上角显示了该组织的徽标。
技术分析
根据伊朗国家新闻网络Akharin Khabar称,“技术和广播系统是完全隔离的,它们配备了可接受的安全协议,无法通过互联网访问。”伊朗官员称这次攻击“极其复杂”。
目前还不清楚攻击者是如何进入这些网络的。我们只能检索到与这些攻击的后期阶段有关的文件,这些文件有:
建立后门及其持久性;
启动“恶意”视频或音频轨道;
安装wiper恶意软件以试图破坏被黑网络中的操作;
所有这些示例都从多个来源上传到 VirusTotal (VT),主要使用伊朗 IP,并包括安装或启动有效负载的短批处理脚本、Windows 事件日志文件或内存转储等几个取证工件,以及有效负载本身。后者主要是 .NET 可执行文件,没有混淆,但带有时间戳的未来编译日期。除了具有相同的语言和相同的 VT 提交者之外,这些文件还具有其他相似之处,例如 PDB 路径、常用命令、名称、代码重用和通用编码风格。
劫持广播信号
从用于中断电视流并作为 TSE_90E11.mp4 上传到 VT 的 MP4 视频文件中,我们能够转向与广播劫持相关的其他工件,这些工件据称运行在播放电视节目播出的服务器上。为了播放视频文件,攻击者使用了一个名为 SimplePlayout.exe 的程序,这是一个基于 .NET 的可执行文件,在调试模式下编译,PDB 路径为 c:\work\SimplePlayout\obj\Debug\SimplePlayout.pdb。该可执行文件只有一个功能:通过Medialooks使用. net MPlatform SDK循环播放视频文件。
首先,SimplePlayout程序寻找一个名为SimplePlayout.ini的配置文件,该配置文件包含两行:视频文件路径和表示视频格式的数字。相应的SimplePlayout.ini文件与SimplePlayout一起上传的值对应于位于c: windows\temp\TSE_90E11.mp4的MP4文件和HD 1080i的视频格式,刷新率为50 Hz。
为了阻止已经播放的视频流,攻击者使用了一个名为 playjfalcfgcdq.bat 的批处理脚本。它会阻止正在运行的进程并删除 TFI Arista Playout Server 的可执行文件,这是一种已知 IRIB 用于广播的软件,随后卸载 Matrox DSX 驱动程序,这是虚拟广播基础设施中用于媒体处理的软件的一部分。
为了组合所有的恶意组件,另一个脚本layoutabcpxtveni.bat做了以下几件事:
将位于 c:\windows\temp\TSE_90E11.003 的 MP4 视频文件重命名为 TSE_90E11.mp4。这个文件可能是通过某个后门释放到那里的,我们稍后会讨论这个问题。
阻止QTV.CG. server .exe(可能是Autocue QTV广播软件的一部分)的运行进程,并用SimplePlayout(攻击者用来播放视频的工具)覆盖位于D: CG 1400\QTV.CG. server .exe的原始服务器。
将c:\windows\SimplePlayout.exe拷贝到QTV.CG.Server.exe所在目录下的SimplePlayout.ini。至少这个批处理脚本示例包含一个拼写错误,因为攻击者可能打算将SimplePlayout.ini复制到恶意可执行文件附近。
从初始位置和替换位置运行 SimplePlayout.exe。
在我们发现的另一组相关工件中,攻击者利用了包含名为 TSE_90E11.001 的 25 秒音轨的 WAV 文件,类似于被劫持的电视流中使用的 MP4 文件的文件名。一个名为 Avar.exe 的可执行文件基于 NAudio,一个开源的 .NET 音频库,负责播放 WAV 文件。与 SimplePlayout.exe 不同,Avar.exe 不依赖于配置文件。相反,它包含硬编码为 C:\windows\temp\TSE_90E11.001 的 WAV 文件的路径。执行后,Avar.exe 会尝试枚举所有活动的音频设备并在每个设备上播放 WAV 文件。
最后,一个名为avapweiguyyyy .bat的批处理脚本将这些组件组合在一起。它阻止一个名为Avar.exe的进程,并在C:\Program Files\MIT\AVA\ava.exe中用Avar.exe替换可执行文件。在文件和文件夹中使用的名字Ava可能表明这些文件是为IRIB的Ava电台准备的,尽管它也受到了这次攻击的影响,这一事实尚未得到官方证实。
wiper
我们发现了两个相同的 .NET 示例,名为 msdskint.exe,其主要目的是擦除计算机的文件、驱动器和 MBR,这也可以从 PDB 路径推导出:C:\work\wiper\Wiper\obj\Release\Wiper.pdb。此外,该恶意软件还能够清除 Windows 事件日志、删除备份、终止进程、更改用户密码等。两个示例均由相同的提交者在与先前讨论的工件相同的时间范围内上传到 VT。
wiper有三种模式来破坏文件,并用随机值填充字节:
Default-覆盖文件中每个 1024 字节块的前 200 字节;
light-wipe-覆盖配置中指定的多个块;
full_purge-覆盖整个文件内容;
wiper通过以下方式之一获取擦除过程的配置:在命令行参数中,或从文件 < code > meciwipe.ini < /code > 中的硬编码默认配置和排除列表中获取。默认配置包含一个与Windows操作系统和 Kaspersky 和 Symantec 安全产品相关的预定义排除列表,这些产品在伊朗被广泛使用:
如果恶意软件没有参数,它将作为一个名为“Service1”的服务运行。
主要的wiper函数会计算每个参数的FNV1A32哈希并使用它来确定接下来的行为:
DestroyMBR标志使恶意软件可以通过写入一个硬编码的base64编码的二进制文件precg.exe,然后运行它来擦除MBR。precg.exe 是一个基于 Gh0stRAT MBR wiper的 MBRKiller。
擦除过程从搜索最后一个被擦除的文件开始,恶意软件将其路径写入名为 lastfile 的文件(或在 wipe_stage_2 的情况下为 lastfile2)。然后,检查每个文件以查看它是否被排除或其扩展名不在预定义列表中:
full_purge模式覆盖文件的所有字节,对于来自的purge_extensions列表的文件总是启用:
如果启用了 delete_files 标志,则wiper还会在覆盖文件后删除它们。
我们发现了与wiper示例一起提交的其他取证工件,证明wiper确实是在电视环境中执行的:
lastfile2 包含最后一个擦除文件的路径:C:\users\tpa\videos\captures\desktop.ini。仅当wiper以wipe_stage_2模式运行时,才会创建此文件,该模式会在wiper过程之后删除文件。
breakusufjkjdil.bat 文件,显示至少一个wiper实例应该运行以终止现有用户会话并更改所有用户的密码:"c:\windows\temp\msdskint.exe" -break-users * -sessi。
事件查看器应用程序日志文件显示与擦除服务 Service1 相关的事件。日志包含攻击后几个小时的时间戳:
后门
WinScreeny
此工具的名称来自 PDB 路径:C:\work\winscreeny\winscreeny\obj\Debug\winscreeny.pdb。该后门的主要目的是对受害者的计算机进行截屏。我们找到了这个后门的两个示例:第一个是上传到VT的发布版本,名为mslicval.exe,第二个是名为precg2.exe的调试版本。不用说,这些文件和我们发现的其他工件一起提交给了VT。
根据命令行参数,后门可以以不同的方式运行:
None-运行一个 SimpleTCPServer 侦听端口 18000。
Service-作为名为 Service1 的服务运行。启动时,该服务使用以下命令创建计划任务: schtasks /create /TN \"Microsoft\\Windows\\.NET Framework\\.NETASM\"/TR \” < file_path > \" /ST < current_time + 1:10 > /SC ONCE /F。
Setup-尝试使用 LsaAddAccountRights API 函数获取权限,然后将自身作为服务运行。
恶意软件在端口 18000 上侦听数据包,并且对于每个数据包,它会检查消息是否包含使用 POST 方法发送的 scr= 命令。如果满足这些条件,恶意软件会将屏幕截图保存到名为 screeny- < timestamp > .png 的文件中,如果成功,则会向攻击者返回“完成”消息。
有趣的是,该恶意软件的发布版本还能够执行命令:它支持 s= 命令,该命令获取一个 base64 编码的字符串与 1 字节密钥 0x24 进行异或运算。解码后的字符串由cmd运行,执行结果返回给服务器。处理这个特性的代码也在我们稍后讨论的 HttpService 后门中被重用。
HttpCallbackService
HttpCallbackService是一个远程管理工具(RAT),有一个熟悉的PDB路径:C:\work\simpleserver\HttpCallbackService\obj\Release\HttpCallbackService. PDB。它的C&C URL可以用两种不同的方式指定:命令行参数或配置文件 callservice.ini。接下来,接收到的值会附加一个短字符串: ?m= 如果 URL 以“.aspx”或“.php”结尾; m=,如果 URL 以“/”结尾,或者 /m= 在任何其他情况下。
不幸的是,我们没有找到任何与 HttpCallbackService 相关的配置或其他工件,因此这次攻击中的 C&C 服务器仍然未知。
每隔5秒,HttpCallbackService使用webClient向C&C URL发送一个请求。DownloadString方法接收由' \r\n '分割的命令列表。如果恶意软件在过去的5分钟内没有收到任何命令,并且isStayAliveMode标志被禁用,这个时间帧将增加到1分钟。
这些是 RAT 支持的命令:
当命令的结果上传到服务器时,数据被发送到一个稍微不同的 URL:之前定义的 C&C URL,现在附加了“1”。 使用以下格式的 WebClient.UploadValues 方法发送数据:
download= < file_name > \r\n--------------\r\n < base64 of chunk > 用于下载命令;
< command > \r\n--------------\r\n < result > 用于 cmd 命令;
HttpService
HttpService 是另一个侦听指定端口的后门:它可以是命令行参数、取决于示例的预定义端口或配置文件中的值: < exe_name > .ini。我们发现了几个默认端口为 19336、19334、19333 的示例,以及上传到 VT 的两个不同的配置文件,值分别为 19336 和 19335。
每个示例都有一个硬编码版本。我们发现的文件属于三个不同的版本:0.0.5、0.0.11v4H 和 0.0.15v4H。 0.0.5 版本使用 Simple TCP 服务器侦听指定端口,而 0.0.11v4H 和 0.0.15v4H 版本基于 Simple HTTP Server。它们都使用 HTML Agility Pack 进行 HTML 解析,使用 IonicZip 库进行压缩操作。
后门的最高版本(0.0.15v4H)具有多种功能,包括命令执行和文件操作。
命令执行:命令“cmd”使后门通过cmd.exe运行指定命令,并以如下格式返回结果: < div style='color: red' > < result_string > < /div > 。此外,后门可以在收到“i=”命令时启动交互式cmd shell,其参数可以是:
“1” –从 shell 获取输出并将其发送回 C&C。
“2”–结束交互式 shell 并清理。
Default-解码和解密异或字符串,然后在 shell 中运行命令并保存输出。
与 WinScreeny 类似,该恶意软件也具有“s=”命令,其中字符串异或与 1 字节密钥 0x24 作为参数。解码后的字符串由 cmd.exe 运行并将结果返回给服务器。
代理连接:收到“p=”或“b=”命令后,后门使用受害者的计算机作为它作为参数获取的 URL 的代理。后门与此 URL 通信,重定向 C&C 服务器的请求,并等待响应将其发送回 C&C。
下载和上传文件:“f=”或“1=”命令允许后门从作为参数给定的路径下载文件,或者将作为参数给定的文件与消息正文的内容一起写入。在收到“m=”命令后,恶意软件将消息内容写入路径 < base_directory > < client_address > .out,从 < base_directory > < client_address > .in 中读取数据,并将其发送给C&C。如果该文件不存在,恶意软件会创建该文件并将当前日期和时间写入其中。
运行 SQL 命令:“con=”/“c=”命令接收 SQL DB 连接字符串和 SQL 查询,并将结果返回给服务器。
操作本地文件:“ < path > ”命令检查文件/目录是否存在,然后根据查询值执行以下三个运行:
" zip " -从目录内容创建一个zip文件,并将其返回给C&C;
" unzip " -使用C&C提供的路径解压缩文件;
“del”-删除文件。
有趣的是,在所有这三种情况下,恶意软件都会将整个目录内容(包括子目录)作为 HTML 页面返回,其中包含 Zip、Unzip 和 Delete 按钮,具体取决于文件的类型。这是攻击者端的接口:
ServerLaunch滴管
HttpServer 版本 0.0.5 的示例连同其 dropper(称为 dwDrvInst.exe) 一起提交,它模仿 DameWare 可执行的远程访问软件。该工具的 PDB 路径具有相同的模式,C:\work\ServerLaunch\Release\ServerLaunch.pdb。但是,该工具是用 C++ 编写的,而不是像所有其他工具一样的 .NET,并且是在 2021 年 12 月 2 日编译的,大约是攻击前2个月。
ServerLaunch 在资源中包含三个可执行文件,分别位于 C:\Users\Public\ 中的 ionic.zip.dll、httpservice2 和 httpservice4。然后恶意软件不带任何参数地启动 httpservice2 和 httpservice4。它们每个都有一个不同的预定义端口来监听,这可能允许攻击者确保 C&C 通信的某种冗余。
攻击中涉及的文件
我们已经讨论了几种不同的工具以及与其执行相关的一些工件。很明显,所有这些工具都是由同一个攻击者创建并相互关联的。例如,屏幕截图工具 Winscreeny 不包含将创建的屏幕截图上传回攻击者的功能,这可能意味着它依赖其他后门来执行此操作。所有工具的重复出现的 Service1 名称表明不同的后门,如果在同一台设备上运行,主要是使用命令行参数或提供的配置文件执行的。
考虑到示例之间是相互关联的,我们可以证实这些文件与IRIB网络攻击之间的联系:
整个活动集群是相互关联的,并且大部分都是在同一时间范围内由伊朗 IP 提交给 VT,可能是由事件响应者提交的。
这些工具使用的音频和视频文件与在被黑的伊朗电视上直播的文件相同。此视频中的 Twitter 帐户 @GhyamSarnegouni(“Uprising to overflow”)包含一些不同电视频道流的录音,其中包含我们讨论过的视频和音轨。
示例中引用的多个工件,如Matrox DSX、Autocue QTV、TFI Arista Playout Server等,表明这些文件用于广播环境。
在与视频和可执行文件一起提交的取证工件中,我们发现了 Windows 事件查看器文件,其中包含示例试图在伊朗电视网络环境中执行的证据,该域未公开解析。这些特定日志的时间戳是在实际事件发生之后。
来自这个VT文件集群的许多其他取证证据包含与IRIB直接相关的其他工件。例如,一个名为 MIT_FreeSizeService (md5:307e7440a15c8eed720566f067a2e96b) 的内部工具带有 IRIB 徽标,而名为 executable.4504.exe (md5:1fc57ccec4668bbcbebaa9c734a437ba) 的 MetaSAN 软件的内存转储具有表明该软件在计算机上运行的内存字符串MIT-TV 域。
伊朗官员似乎相信 MEK 是这次攻击的幕后黑手,伊朗伊斯兰共和国广播公司技术事务副负责人也声称这一点。
本文翻译自:https://research.checkpoint.com/2022/evilplayout-attack-against-irans-state-broadcaster/如若转载,请注明原文地址