工业历史数据库正在成为黑客攻击点

admin 2023年3月1日15:09:28评论53 views字数 2914阅读9分42秒阅读模式

什么是 ICS 历史数据库?历史数据库通过收集大量实时数据、为其打上时间戳并将其分发以进行分析来支持工厂内的流程改进,以便更好地了解从系统性能到可能改进领域的任何事物。

从技术角度来看,历史数据库是位于控制系统局域网中的集中式数据库。历史数据库处理数据归档并使用统计过程控制技术关联数据。例如,制药厂的历史服务器将保存有关批量生产操作的重要信息,包括任何给定时间点的物质温度、PH 值等。

ICS 历史数据库通常通过从工业控制系统内的各种来源收集数据来工作,例如控制设备、传感器和可编程逻辑控制器 (PLC)。收集的数据通常通过 SCADA 特定协议或OPC DA / OPC UA完成,这简化了数据收集过程。然后将数据存储在数据库中,并通过用户界面或 API 提供。

工业历史数据库正在成为黑客攻击点

Historian 服务器位于 DMZ Purdue 模型的运营制造区内。历史数据库可以从这个位置深入到企业和 OT 网络。

除了通过传感器、控制设备和 PLC 网络进行过程链接外,历史数据库还可以连接到其他系统,例如企业资源规划 (ERP) 系统和分析平台,以实现更全面的数据分析和决策制定. 因此,由于其在 IT OT 网络之间的独特位置,攻击者将历史数据库作为攻击目标,并可将其用作进入 OT 网络的跳板。

工业历史数据库正在成为黑客攻击点

出于各种原因,历史数据库可能成为攻击者的目标。一个主要原因是历史数据库通常包含有关工业过程的有价值数据,包括有关过程控制、性能和维护的数据。攻击者可能会以下面的 ICS 历史学家为目标,以获取对这些数据的访问权限,以获取经济利益或收集有关工业过程的情报。

攻击者可能以 ICS 历史数据库为目标的另一个原因是它们可用于破坏或操纵工业过程。例如,获得 ICS 历史记录访问权限的攻击者可能能够更改或删除数据,或以其他方式操纵数据,以破坏工业过程的运行。这可能会产生严重后果,例如扰乱商品生产、造成安全隐患或损坏设备。

ICS 历史数据库也可能成为针对工业控制系统的更大规模网络攻击的一部分。在这种情况下,攻击者可能会使用 ICS 历史数据库作为跳板来访问网络的其他部分,或者从系统中窃取数据。

第一步是安装服务器并了解其内部工作原理,然后对其管理协议进行逆向工程,并了解其身份验证机制的工作原理。然后寻找漏洞并编写我们的客户端,以便远程利用它们并在服务器上执行未经授权的代码。最后,一旦在服务器上有了反向 shell,就可以修改记录了。

MSO协议

GE Proficy Historian 使用 MSO 协议作为其大部分操作的主要通信协议,包括身份验证、控制和数据采集。Proficy Historian 有一些使用此协议进行通信的服务,所有这些服务都绑定到所有接口 (0.0.0.0) 并侦听 13000-14000 之间的各种 TCP 端口。

工业历史数据库正在成为黑客攻击点

GE Proficy Historian 服务。

每条 MSO 消息都以消息标头开头,然后是正文标头,最后以正文内容结束。对协议结构的研究能够使用这些结构构建功能齐全的 MSO 客户端:

工业历史数据库正在成为黑客攻击点

MSO 消息的消息头。

请求正文也以标头开头,后跟消息正文。请求主体是一个“HRProp”结构数组,其中包含特定属性类型及其值。

工业历史数据库正在成为黑客攻击点

Wireshark 中的 GE Proficy MSO 协议数据包示例。

该协议有大约 170 种执行各种操作的命令类型。由于大多数功能都需要身份验证,因此研究目标是:

找到一个身份验证绕过方法,使能够在历史服务器上运行 170 个命令中的任何一个浏览命令并搜索可导致远程代码执行的原语。

在研究中,找到了绕过此身份验证程序的方法。这使远程攻击者能够登录到任何 GE Proficy Historian 服务器并强制其执行未经授权的操作。

此外,发现在协议中定义的各种命令中,其中一些命令具有不当的访问控制机制,允许远程客户端执行危险操作,例如读写任意文件、删除任意文件,甚至在链接在一起时远程执行代码。

身份验证绕过 ( CVE-2022-46732 )

GE Proficy Historian 运行不同的服务,每个服务负责部分历史逻辑。这些服务可以在本地运行(与主要历史服务在同一台机器上),也可以远程运行(在另一台机器上)。因为这些服务使用 MSO 协议的方式与普通远程用户使用的方式相同,但没有任何明显的身份验证。

在解码其中一项服务发送的登录消息后,发现常规登录与服务执行的登录之间的区别在于 HRProps 之一:HRPropServiceType。尝试发送自己的消息,将服务类型设置为其中一项服务,并且能够登录。将服务类型设置为其中一项服务时,历史服务器不检查身份验证,因此无论身份验证如何,都会执行请求的命令地位。

工业历史数据库正在成为黑客攻击点

可以看到服务端识别本地服务时代码流是有区别的。通过发送特制请求,攻击者可以冒充本地服务并绕过身份验证。

攻击者可以利用这一事实并通过冒充本地服务来绕过历史身份验证。这意味着通过使用远程 MSO 客户端并将 HRPropServiceType 更改为本地服务之一,即使身份验证流程失败,攻击者也可以绕过身份验证过程并远程执行 MSO 命令。因此,任何用户都可以在 Historian 服务器上远程执行 MSO API 命令,而无需使用正确的凭据进行身份验证。

远程代码执行 ( CVE-2022-46660 )

Historian 服务使用 MSO 协议来读取、写入和管理历史数据。发现下面的一些协议命令也可以用于恶意控制。这些命令的目的是允许服务执行操作,但不验证命令的范围。如果没有适当的访问控制(授权)机制,可能会被滥用。由于 historian 服务以 SYSTEM 用户身份运行,所有操作都以最高权限执行。

FileAppendNextChunk (0x8D):使攻击者能够在完全控制文件路径和内容的情况下追加/写入文件。

FileGetNextChunk (0x8C):使攻击者能够读取系统上暴露敏感信息的任何文件。

DeleteTempFile (0x8E):使攻击者能够删除系统上的任何文件。

读取/删除/写入操作与身份验证绕过相结合,实质上为未经身份验证的攻击者提供了完整的文件读取/写入/删除权限。攻击者可以使用这些原语来删除和替换历史学家用来获得完整远程代码执行的动态链接库 (DLL) 之一。

结合上述漏洞,可以在具有 SYSTEM 权限的远程 GE Proficy Historian 服务器上执行任意代码。此外,能够构建一个功能齐全的 shell 命令行界面 (CLI),它支持多种命令:

绕过认证

上传任意文件

读取任意文件

删除任意文件

远程执行代码

工业历史数据库正在成为黑客攻击点

这是 RCE,带有身份验证绕过概念验证

为了远程执行代码,包括绕过身份验证,这是执行代码的完整流程:

使用 DeleteTempFile 命令从位于程序文件下的 Historian 安装目录中删除 ihOAuth2.dll

使用 FileAppendNextChunk 命令用自己的代码编写恶意 DLL。将其上传到名为 ihOAuth2.dll Historian 安装目录,发送新的登录信息触发恶意dll的加载,恶意代码将被执行。

原文链接:https://claroty.com/team82/research/hacking-ics-historians-the-pivot-point-from-it-to-ot


原文始发于微信公众号(IRT工业安全红队):工业历史数据库正在成为黑客攻击点

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月1日15:09:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   工业历史数据库正在成为黑客攻击点http://cn-sec.com/archives/1581978.html

发表评论

匿名网友 填写信息