安全行动期间的物联网利用

admin 2025年3月24日19:28:23评论14 views字数 4995阅读16分39秒阅读模式

安全行动期间的物联网利用

在两次独立的安全活动中,发现了两个嵌入式设备中的命令注入漏洞。发现每个漏洞都有其独特的挑战。一个是经典的命令注入漏洞,另一个详细介绍了“盲”命令注入漏洞,这提供了两种在物联网系统中常见的漏洞类型的有趣对比。除了这项技术分析之外,有关漏洞研究过程的细节、我如何利用这些设备来实现手头的目标以及登陆嵌入式设备的好处提供了一个独特的视角,可能解释了为什么物联网漏洞利用对组织来说真的很重要。本文希望不仅提供技术分析来理解和触发这些漏洞,而且还传达物联网漏洞利用在环境中的表现,并说明其在活动中的二阶效应。

漏洞研究范围

对于每个漏洞的发现,都存在着固有的挑战,限制了漏洞研究过程。在这两种情况下,这些漏洞都是在有时间限制的安全参与期间发现的,并且可行的漏洞利用都是在有限的安全参与期间验证的,这意味着只能分配固定的时间来追踪每个漏洞。此外,由于这些时间限制,我无法获得物理设备进行离线研究或调试。这意味着测试将针对组织环境中的实时远程资产进行。虽然这些活动属于授权测试的范围,并且两种设备都没有托管业务关键型应用程序,但避免服务崩溃仍然是重中之重,以避免给客户增加额外的业务影响并避免触发检测和响应活动。

前面提到的限制是为了提供有关针对每个目标设备执行的漏洞研究范围的背景信息。这种情况自然导致对每个设备的漏洞研究工作不全面,并且严重影响了我对每个设备的分析。

在对每台设备进行初步检查后,我开始研究命令注入漏洞的可行性,并将我的研究仅限于该攻击媒介。某些漏洞类别(如内存损坏漏洞)不在研究范围内,因为这些漏洞在开发漏洞时几乎肯定会导致受影响的服务崩溃。命令注入漏洞通常很简单,虽然任何漏洞类别都存在一定程度的固有风险,但故意设计的输入可能会降低目标服务崩溃的风险 ,从而可能破坏设备的可用性。

漏洞详细信息

具体来说,本文描述的漏洞属于 CVE-2024-30167 和 CVE-2024-30169。每个 CVE 都描述了一个命令注入漏洞,该漏洞包含在作为各个设备的 Web 管理界面的应用程序内。

CVE-2024-30167 Atlona AT-OME-MS42 矩阵切换器 - 经过身份验证的命令注入

CVE-2024-30167详细说明了 Atlona AT-OME-MS42 矩阵切换器、固件版本 1.1.2(最新)的/cgi-bin/time.cgi二进制文件中存在的经过验证的命令注入漏洞。

通过执行特制的 POST 请求,恶意行为者可以以 root 用户身份在底层操作系统上执行命令。易受攻击的输入接收器是serverName 参数。

通过使用特定特殊字符转义time.cgi二进制文件生成的命令字符串,可以执行命令注入攻击。命令注入测试(在本例中利用)中常用的一个特殊字符示例是分号 (;)。

官方修复

目前,Atlona 尚未发布针对此漏洞的补丁。不过,未来可用的固件版本可在 https://atlona.com/product/ome-ms42/ 的“固件”部分中找到。该漏洞已于 2024 年 3 月向 Atlona 披露。

time.cgi分析

分析从获取 AT-OME-MS42固件副本开始。解压固件映像并使用类似 find 的命令找到易受攻击的二进制文件:find . -name time.cgi -type f。易受攻击的二进制文件的完整路径是./_875D90.extracted/www/cgi-bin/time.cgi

对于 POST 请求,time.cgi 二进制文件需要一个 JSON 对象,例如:

{

     “同步NTP时间”:{

          “服务器名称”:“time.google.com”

     }

}

滚动查看完整表格

 精心设计的 JSON 对象中包含的serverName字符串是易受攻击的输入接收器。

在开始分析二进制文件时,让我们记住这一点。我将利用 Ghidra 进行静态分析。

利用字符串搜索功能,我们快速识别出我们的易受攻击的函数, 在图 1 中标识为FUN_00009010 。

安全行动期间的物联网利用

图 1:同步的字符串搜索结果。

调查FUN_00009010,如下所示,在第 30 行,用户提供的 NTP serverName字符串被传递给变量iVar2。在第 38 行,使用snprintf函数将iVar2添加到字符串中。最终,这个未清理的字符串作为lsystem的参数传递,执行系统命令,如ntpd -nqp [serverNameParam。我们成功识别了命令注入漏洞!这个易受攻击的输入接收器使我们能够通过首先附加分号 (;) 后跟要执行的命令来执行其他任意命令。 

图 2:time.cgi – 未清理的输入接收器。

当传递任意命令(例如;id )时,我们会发现该命令的输出不会返回给用户,这使其成为一个“盲”命令注入漏洞。查看易受攻击的函数的末尾,我们发现该函数会构造一个 JSON 对象,该对象最终不会包含执行命令的标准输出或标准错误。

安全行动期间的物联网利用

图 3:NTP 服务器更新 - 响应消息。

但是,仍然可以利用本地二进制文件与您控制的监听服务建立连接来验证命令执行的存在。例如,可以通过制作 JSON 消息来使用 ping,如下所示:

{

     “同步NTP时间”:{

          “服务器名称”:“time.google.com; ping -c 2 xxxx”

     }

}

滚动查看完整表格

CVE-2024-30169

Zeus Z3 SME-01 HDMI H.264 视频编码器和解码器 – 未经认证的命令注入

CVE-2024-30169详细说明了Zeus Z3 SME-01 HDMI H.264 视频编码器和解码器的基于 Web 的管理界面的/cgi-bin/debug.cgi路由中存在未经身份验证的命令注入漏洞。

安全行动期间的物联网利用

图 4:Zeus Z3 SME-01 网络管理界面。

官方修复

Zeus在固件版本2024-05-03 v3.00a SME-01 SW-4R3-01053-02中专门解决了CVE-2024-30168CVE-2024-30169问题。产品所有者可以通过先注册其产品并在 https://z3technology.com 上创建帐户来获取最新的固件版本。

漏洞详细信息

通过执行特制的 GET 请求,恶意行为者可以读取设备文件系统上的任何文件,或以 root 用户身份在底层操作系统上执行命令。易受攻击的输入接收器是logfile 参数。

无论设备是否应用了管理密码,存在漏洞的/cgi-bin/debug.cgi路径都可以访问 

图 5:存在漏洞的 cgi-bin/debug.cgi 路由。

对于标准 GET 请求,debug.cgi 脚本需要一个类似这样的参数:logfile=mcsenc.log.d

通过指定文件的文字路径,可以任意读取文件系统上的任何文件:

或者,也可以在底层主机操作系统上执行命令,并通过使用特定特殊字符转义debug.cgi 脚本生成的命令字符串来接收其输出。命令注入测试(在本例中利用)中常用的一个特殊字符示例是分号 (;)。

例如:GET /cgi-bin/debug.cgi?divload=yes&logfile=id;

图6:任意文件读取和命令注入利用的示例。

图 6 提供了利用这两个漏洞的示例请求。注入命令的输出作为响应的一部分返回。在对设备进行一些目标侦察后,我还发现可以通过telnetd获取 shell 访问权限:  telnetd -l /bin/sh -p 2222 &:

获取 /cgi-bin/debug.cgi?divload=yes&logfile=%2Ftmp%2Fmcsenc.log.d;telnetd%20-l%20/bin/sh%20-p%202222%26

逆向思考:漏洞利用之后的漏洞研究

在研究 SME-01 时,我发现 Zeus 产品的固件不对外公开,除非先创建帐户并注册购买的产品。这要求我从远程目标中窃取文件系统,以便充分进行逆向工程并充分了解实际漏洞的根本原因。

幸运的是,由于设备上有 tar,因此可以使用以下命令存档文件系统:tar -cvpzf backup.tar.gz –exclude=/backup.tar.gz /

将存档文件系统移动到设备的 Web 服务器托管的路径/opt/webgui/cgi-bin/ ),然后可以通过 Web 请求 ( /cgi-bin/backup.tar.gz )从设备下载存档。

debug.cgi分析:

SME-01 使用开源 Web 服务器lighthttpd来托管 Web 管理界面。调查设备上正在运行的进程,lighthttpd使用以下标志执行:/opt/webgui/lighttpd/sbin/lighttpd -D -f /opt/webgui/。

查看lighthttpd的配置详细信息,cgi 已启用并且 .cgi 扩展由 /bin/sh 处理:

图7:lighthttpd cgi.conf设置。

支持 CGI(通用网关接口)的 Web 服务器为外部程序提供了处理特定 Web 请求的接口。在本例中,对易受攻击的路径/cgi-bin/debug.cgi的请求由 shell 脚本/opt/webgui/cgi-bin/debug.cgi处理

作为一个简单的 shell 脚本,分析起来很简单。图 8 突出显示了未经清理的用户输入(包含在logfile参数中)直接传递给系统命令,该命令尝试使用cat 命令打印文件

图 8:debug.cgi 中未清理的输入接收器。

攻击者如何利用物联网技术获益

Zeus Z3 SME-01 的官方概述将该设备描述为 Zeus 最紧凑的编码/解码解决方案,使其成为视频会议、现场研究或紧急广播等远程应用的理想选择。Atlona 将 AT-OME-MS42 描述为矩阵切换器,非常适合视频会议和许多其他 4K 演示应用。

乍一看,这些设备在交战期间似乎对对手或红队没什么用。它们可能承载着对组织来说无关紧要的服务或存储非敏感信息;然而,我发现在针对这些类型的设备时利用嵌入式系统有多种好处。这不是一个完整的列表;然而,我想到以下几点。

扩大访问权限

为了提供更多背景信息,我在参与的初始访问阶段后立即发现了这两个漏洞。在获得内部访问权限并在受感染目标上建立可靠的持久性后,我的首要任务转移到建立与初始入侵无关的其他访问权限。在宽松的环境中,我开始进行网络侦察,并明确标记嵌入式设备的服务以供进一步审查。

在两种被利用的设备中,如果只发现了一个设备,那么内部网络中通常会部署更多设备。在 Zeus Z3 SME-01 攻击活动中,我发现内部网络中存在100 多个 SME-01设备,分布在多个唯一子网中。Atlona AT-OME-MS42 攻击活动中也是如此,但发现的设备数量较少。

显然,内部网络上大量存在漏洞的设备可以使对手获得极其稳固的立足点。

妥协带来二阶效应

嵌入式设备上的服务通常以过于宽松的权限运行,并且通常在 root 用户的上下文中执行。这意味着利用易受攻击的服务会导致设备本身完全被攻陷。如果服务以非特权用户身份运行,嵌入式设备上通常存在有据可查的特权提升漏洞。

在嵌入式 Linux 设备上以 root 用户身份操作可提供对内部网络执行额外后利用所需的访问权限。后利用机会的示例可能包括第 2 层攻击,例如中间人凭证攻击:MITRE T1557

逃避端点检测和响应

利用物联网设备最令人信服的原因之一是能够避开部署了端点检测和响应 (EDR)解决方案的主机。简而言之,以物联网为目标可以成为一种独特的机制,既可以在内部扩展访问权限,又可以利用安全运营中心 (SOC)可见性方面的潜在差距。通常,物联网设备不提供对底层操作系统的管理访问权限,因此无法进行主机级监控。这自然提供了一种机制,可以在端点数据不可用时评估组织在正确识别、缓解和恢复威胁方面的有效性。

威胁忠实

最后,威胁情报报告(例如X-Force Threat Intelligence分享的报告)强调了恶意行为者在活动期间利用 IoT 设备的频率。在众多臭名昭著的数据泄露事件中,IoT 漏洞利用在攻击链中发挥了关键作用。这强调了红队为组织模拟相同类型漏洞利用的重要性。

结论

本文希望传达物联网漏洞利用在环境中的表现,说明其在活动中的二阶效应,并提供有关其对恶意行为者的价值的背景信息。虽然我当然不是第一个得出本文结论的人,但我希望为已经很广泛的物联网漏洞研究库和对手模拟的详细方法做出贡献。物联网是恶意行为者的一个已知目标,物联网漏洞利用可以为红队的成功参与做出巨大贡献。

原文始发于微信公众号(河南等级保护测评):安全行动期间的物联网利用

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月24日19:28:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安全行动期间的物联网利用https://cn-sec.com/archives/3876315.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息