macOS 上的横向移动:独特且流行的技术以及实际示例

admin 2024年11月28日19:54:10评论2 views字数 6945阅读23分9秒阅读模式

执行摘要

在本文中,我们将讨论 macOS 的各种横向移动技术,其中一些是 macOS 特有的,而另一些则由其他网络共享。我们提供真实的例子来说明这些方法并讨论检测机会。

本文将讨论使用以下技术进行横向移动:

  • SSH 密钥窃取和未授权的访问:本节介绍攻击者通过窃取和泄露 SSH 密钥如何来实现横向移动。攻击者还可以将自己的密钥放在authorized_keys目录中,本质上就相当于特定密钥匙指定为可信密钥。

  • Apple远程桌面: 本节讨论了攻击者通过成功托管托管管理员ARD应用程序的管理员机器而获得的显着优势,这最终可能导致对多台公司机器的完全控制。

  • 远程Apple事件(RAE):本节介绍如何使用AppleScript创建RAE,允许在本地网络内的远程计算机上的应用程序上执行特定事件。

横向移动是指网络攻击者在入侵最终系统后用于网络中导航的技术。此阶段对于攻击者实现其最终目标至关重要,这些目标可能包括数据泄露、持久性或进一步的入侵系统。

虽然过去人们一直关注 Windows 环境中的横向移动,但 macOS 也未能幸免于这些策略。此外,横向移动在攻击中的使用也呈增长趋势。

通过我们的 Cortex系列产品,Palo Alto Networks 客户可以更好地处理本文所讨论的威胁。

如果您认为自己可能已受到威胁或存在紧急问题,请联系第42单元事件响应团队

使用 SSH 密钥:尚未授权的访问

什么是 SSH 密钥?

安全Shell密钥是一对加密密钥,用于通过网络在客户端和服务器上进行安全身份验证。SSH密钥通常由客户端上安全保存的私钥和服务器上的密钥组成。位于macOS主机上用户主目录中的.ssh目录中。

SSH密钥的常见用途包括:

  • 远程管理:系统管理员使用 SSH 密钥远程访问和管理 macOS 服务器及其他系统,无需输入密码。这意味着即使密码自已更改以来已获取,密钥仍可使用。

  • 自动化: SSH密钥使自动化脚本和应用程序能够拥有安全连接以在远程服务器上执行任务。

  • Git 操作:开发人员使用 SSH 密钥对托管在 GitHub、GitLab 和 Bitbucket 等平台上的 Git 存储库进行身份验证,从而实现安全性和拉取代码。

  • 安全文件传输:scp(安全复制)和rsync(远程同步)等工具使用SSH密钥在macOS机器和其他服务器之间安全地传输文件。

害怕 SSH 密钥

通过窃取SSH密钥进行横向移动

攻击者还可以尝试窃取SSH密钥,方法是窃取整个.ssh目录及其内容,或者将SSH文件复制到一边,然后使用窃取的密钥窃取其他数据。

我们在以下章节中描述的案例提供了尝试尝试的示例。

恶意Python程序包导致Cobalt-Strike Beacon丢失

2021年,攻击者利用iTerm2、SecureCRT和Navicat等工具的木马版本攻击百度搜索引擎用户。威胁行为者经常进行欺骗、利用或破坏合法产品以达到恶意目的。这并不意味着合法产品本身存在缺陷或具有恶意。

这款名为ZuRu 的恶意软件下载并执行了一个 Python 脚本,用于窃取和窃取凭证。下图 1 显示了此 Python 脚本如何收集信息,例如bashzsh历史文件、/etc/hosts 文件、系统密钥串和.ssh目录的内容。然后,该脚本使用curl泄露收集的数据

macOS 上的横向移动:独特且流行的技术以及实际示例
图 1. ZuRu 下载 Python 脚本运行的部分命令,用于从系统中窃取信息。
PyTorch ML 框架遭遇困境依赖项攻击

2022年12月,流行的机器学习框架PyTorch宣布它已经成为供应链攻击的受害者,攻击方法是一种称为依赖项干扰的方法。在这次攻击中,威胁行为者破坏了该框架的一个称为torchtriton的依赖项,导致恶意代码的执行。

被访问的依赖项将部署一个二进制文件,负责窃取系统信息,包括.ssh目录的内容,然后将其上传到攻击者控制的C2服务器。虽然主要关注点和报告都集中在Linux上,但依赖项项混乱的普遍性质和Python的跨平台性质意味着使用芭蕉的macOS系统也可能受到影响。

用于自动网络观看的 SSH-Snake 工具

SSH密钥利用的另一个例子是SSH-Snake,这是一种复杂的工具,可以自动利用SSH密钥来实现网络内部的横向移动。这个工具本质上是一个蠕虫,自动重复执行该过程。

此工具旨在执行以下活动:

  • 在运行的系统上搜索 SSH 私钥,包括在.bash_history边界中发现

  • 定位可以接受新发现的礁石的主机

  • 尝试使用发现的 SSH 接头连接到潜在主机

  • 连接成功后,在新机器上重复上述步骤

在 Authorized_keys 中入口 SSH 密钥

一旦攻击者获得了系统访问权限,他们就可以将全局网关authorized_keys文件中,以保持持久的访问权限。authorized_keys文件是SSH身份验证中的关键组件。

该文件用于配置允许哪些 SSH 全局访问服务器上的特定用户帐户。它通常位于计算机上用户主目录中的.ssh目录中(例如/home/用户名/.ssh/authorized_keys)。

此文件包含创建用户帐户访问权限的前缀列表。当用户尝试使用密钥对通过 SSH 登录时,SSH 服务器会根据authorized_keys文件中的网关检查找到相应的前缀列表。如果匹配项,则则密码即可访问权限。

Insekt 恶意软件将攻击者的 SSH 附加到 Authorized_keys 文件中

2022 年 10 月,研究人员发现了Insekt恶意软件,这是 Alchemist 攻击框架提供的有效毒品。此威胁针对 Windows、Linux 和 macOS。其功能包括首发受害者机器上.ssh 目录的内容,并将攻击者的 SSH 添加到authorized_keys文件中,使他们能够与机器建立可信的连接。

以下是我们对组织应寻找哪些有助于检测可疑活动的建议:

  • 任何可疑进程(例如未签名的进程)对authorized_keys文件内容的更改。

  • 涉及从远程服务器下载攻击者的公共SSH密钥,然后将其附加到authorized_keys文件的事件。攻击者可以使用图2中所示的格式使用cURL命令执行此操作。

macOS 上的横向移动:独特且流行的技术以及实际示例
图2. 使用curl命令将攻击者的SSH下载到authorized_keys文件中。
  • 尝试进行SSH连接,并在成功连接到目标计算机后运行命令,将密钥回显到authorized_keys文件中,如下图3所示

macOS 上的横向移动:独特且流行的技术以及实际示例
图3. 使用ssh命令将攻击者的公共SSH密钥下载到authorized_keys文件。

苹果远程桌面 (ARD)

ARD 是一款全面的远程管理工具,用于管理网络内的 macOS 主机。它允许软件分发、远程帮助、系统管理和资产管理。要配置 ARD,管理员可以在自己的 Mac 上安装 Apple 远程桌面应用程序,该应用程序可以从 Mac App Store 购买。

客户端组件内置于 macOS 中,只需通过 macOS 系统偏好设置其中的共享部分进行激活和配置即可。可以通过输入客户端的网络地址或通过Bonjour的自动网络扫描并发现将客户端添加到 ARD管理列表中。

图 4 显示了 ARD 管理器应用程序界面的示例。

macOS 上的横向移动:独特且流行的技术以及实际示例
图4.ARD管理员应用程序界面。
ARD 的主要合法用途

以下是 ARD 的主要合法用途:

  • 远程管理:管理员可以远程访问和控制Mac,执行软件安装、更新和系统配置等任务。支持人员实际接触机器即可排除故障并解决问题。

  • 软件分发: ARD 允许在多台 Mac 上同时分发和安装分区,从而节省时间并确保跨设备的一致性。

  • 资产管理:提供有关硬件和软件配置的全面报告,帮助组织管理其资产。管理员可以生成有关系统使用情况、软件安装和硬件配置的详细报告。

  • 用户帮助和培训:支持人员可以使用屏幕共享来指导用户完成任务或实时解决问题。

  • 安全管理: ARD可以帮助管理员监控用户活动并确保绕过政策组织,从而帮助实施安全政策。如果检测到安全漏洞,管理员还可以使用它远程锁定屏幕、注销用户或关闭系统。

哪一个更适合ARD?

通常,ARD 必须手动启用才能在机器上使用。这可以通过在系统设置中的高级共享配置中启用远程管理来实现。默认情况下不启用。

在未启用的情况下,攻击者使用SSH运行图5所示的kickstart命令,可以启用远程管理。

macOS 上的横向移动:独特且流行的技术以及实际示例
图5.可以启用远程管理的Kickstart命令。

接下来中的标志激活了系统上的远程管理服务,从而启用了ARD。然后,这些标志配置了远程管理设置,以允许所有用户访问和管理。另外,此kickstart 命令命令通过远程管理控制计算机上的用户的所有可能的权限。

指示的权限允许 ARD 管理员在远程机器上执行以下操作活动:

  • 观察屏幕

  • 控制远程机器

  • 打开和退出。

  • 系統設置

  • 重新启动和关闭系统

  • 复制项目

另外,ARD还具有以下功能:

  • 窗帘模式:通过隐藏屏幕活动,管理员可以在用户不知情的情况下控制远程计算机。用户的屏幕将被锁定,并会向用户显示一条消息。

  • UNIX命令执行:这允许管理员发送shell命令,并可以以不同的用户身份执行它们。

  • 系统信息收集: ARD 可以收集有关系统的详细信息,例如硬件规格、已安装的软件和正在运行的进程。

  • 与其他允许服务集成: ARD管理员使用AppleScriptAutomater自动执行任务并执行复杂的攻击序列。

一旦攻击者获得了对运行 ARD 管理员应用程序的管理员计算机的访问权限,他们就获得了对所有连接计算机的强集中访问权限。此外,他们的行为可能比攻击者使用的其他方法(例如 SSH 连接) )引发的事件看起来更合法。

在运行 ARD 管理员应用程序的机器上,攻击者更容易隐藏踪迹。就已知的野外使用情况而言,攻击者使用 ARD屏幕共享功能已进行横向移动

与 SSH 等其他横向移动方法相比,攻击者可能发现 ARD 具有以下优势:

  • 用户模拟,更广泛的控制范围:

    • 攻击者可以使用 ARD 通过使用相同的桌面环境来说服强制充值合法用户,通过模仿典型的用户行为来避免检测。

    • 因此,SSH 不提供直接与 GUI 交互的方法,模拟过程不止于此。ARD 提供完整的 GUI 访问权限,允许攻击者像合法用户一样查看桌面并交互。这对于只能通过 GUI 执行的任务非常重要有用。

  • 坚持与逃避:

    • 通过利用 ARD 内置的远程管理功能,攻击者可以利用应用程序保持活动状态并提供持续访问的情况。这使得他们无需安装其他工具即可保持访问权限,从而降低发现的风险。

    • 当此类连接受到监控时,SSH 可能更加引人注目。攻击者可以建立更持久的访问权限,并使用合法的远程桌面会话来混入正常的管理活动中。

    • 另外,由于 ARD 可以配置为自动启动,攻击者可以确保他们的访问权限在重启后仍然有效。

以下是我们帮助组织检测可疑活动的建议:

  • 当远程计算机添加到 ARD 管理应用程序时,经过身份验证后,将在远程计算机上一个名为ardagent 的进程。此事件可以与创建涉及端口 3283 的网络事件结合使用,以成功指示与计算机的初始连接。

  • 对于涉及 Unix 命令执行功能的事件,请在ardagent进程树下查找可疑命令。

  • 当 ARD 管理应用程序启动远程控制/观察会话时,远程机器将添加以下内容的统一日志边界,这表明尝试使用screensharingd启动已会话。

  • Screensharingd是一个负责管理屏幕共享服务的监控进程,同时指示身份验证是否成功失败以及查看者的IP地址。

  • 其输出如下:2024-03-07 13:36:06.525612+0200 0xc34a Default 0x0 2954 0 screensharingd: Authentication: SUCCEEDED :: User Name: john :: Viewer Address: 192.168.2.120 :: Type: N/A

  • 成功连接后立即发生的疑问事件可归于远程用户。

远程 Apple 活动

RAE 是Apple Event Manager框架的一部分,该框架为应用程序提供了一种通过网络使用Apple Events相互通信的标准化方式。此功能利用Apple Events 脚本架构来远程执行任务。

RAE 允许 macOS 上的应用程序通过网络公开和执行特定功能。当应用程序想要支持 RAE 时,它必须首先注册它想要提供的功能。这是通过 Apple Events API 完成的。

本质上,应用程序为每个事件标识符设置一个处理程序,定义接收到该事件时应采取什么操作。注册这些处理程序后,远程客户端可以发送带有相应标识符的Apple事件来调用指定的函数。此设置支持与应用程序进行远程交互,允许通过网络从其他系统进行控制或自动化。

要使用 RAE,必须在系统偏好设置下的共享设置中启用远程应用程序脚本功能。

AppleScript 是一种脚本语言,允许用户编写脚本来自动执行任务。AppleScript 可以将 Apple 事件发送到本地或远程应用程序以执行特定的操作。

RAE 可以使用 AppleScript 发送。tell命令用于指定目标机器、应用程序以及应用程序要执行的命令。图 6 显示了此示例。

macOS 上的横向移动:独特且流行的技术以及实际示例
图 6.使用tell命令将文件读取远程机器的代码。

上图 6 中的脚本展示了如何使用 AppleScript 和 RAE 在远程机器上执行文件操作。指定的文本被写入远程 macOS 机器上的文件。

此脚本首先使用 EPCC 协议设置远程计算机的连接详细信息,以便通过网络发送 RAE,并指定用户名、密码和 IP 地址。这将使用eppc:// URL 方案通过 TCP 端口 3031 在本地和远程计算机之间建立通信通道,并且要求使用用户名和密码对计算机上的有效用户进行身份验证。

此活动确保仅授权用户才能向远程计算机发送命令。然后,脚本定义相关文件的详细信息。在针对远程计算机的 Finder 应用程序的告诉,脚本打开文件以使用写权限进行访问,写入指定的内容,然后关闭文件。

这就是为什么利用 RAE?

虽然 RAE 和 EPPC 协议具有合法用途,但恶意攻击行为者也可以利用它们在网络内进行横向移动。如果未启用 RAE,则恶意攻击行为者可以通过在终端中以管理员权限执行命令来启用它们:

  • 系统设置-setremoteappleevents

攻击者可能利用这些技术实现恶意目的的方式如下:

远程命令

利用泄露的原理,攻击者可以执行AppleScript命令来控制相同网络内其他机器上的应用程序,如图7所示。

macOS 上的横向移动:独特且流行的技术以及实际示例
图 7. AppleScript 命令控制相同网络内其他机器上的应用程序。

该脚本定义了恶意 shell 脚本的路径和内容,然后通过 RAE 连接使用 Finder 和命令应用程序在远程上写入并执行该脚本。计算机远程上的 Finder 应用程序打开指定的文件进行写入,将恶意内容写入文件并关闭它。

短暂延迟后,Finder 使用远程计算机上的这些应用程序使脚本起作用,然后运行它。此序列有效地在目标上侵入并执行了潜在的计算机杀虫的脚本。

自动化脚本

攻击者可以编写复杂的AppleScript来自动在多台机器上执行恶意任务。例如,他们可以编写数据隐藏脚本或配置其他有效的发票,如下图8所示。

macOS 上的横向移动:独特且流行的技术以及实际示例
图 8.用于数据泄露的 AppleScript 示例。

可持续性

为了保持持久性,攻击者可以使用 RAE 在远程机器上安排任务或创建登录项。例如,可以按照图 9 所示进行操作。

macOS 上的横向移动:独特且流行的技术以及实际示例
图 9. 编写脚本 RAE 来在远程主机上安排任务或创建登录项。

一旦连接,该脚本就会在远程终端中执行命令以加载恶意LaunchAgent ( com.malware.plist )。通过使用launchctl load -w,攻击者可确保恶意代理已加载并标记为持久执行,从而导致在后续登录用户或系统重启时自动启动。

以下是我们对组织应寻找哪些有助于检测可疑活动的建议:

  • 涉及使用eppc协议的AppleScripts。

  • 统一日志边界涉及以下谓词以及与端口 3031 相关的网络活动,该端口与 RAE 和epc协议相关。这可能表明存在连接尝试和触发远程事件:

    • 子系统:'com.apple.appleevents'

    • 类别:'eppc'

结论

macOS 上的横向移动涉及多种技术,从利用 SSH SSH 到利用合法本机管理工具的更独特的技术。多种方法都利用 macOS 架构和功能的不同方面来获取访问权限并保持持久性。了解这些方法并研究现实世界的例子有助于开发有效的防御措施,以保护 macOS 环境工作站未来威胁。

显然,macOS 可以进行塔网络攻击者使用的横向移动技术的攻击。本文中提供的真实示例清楚地提醒我们实施强大的安全措施保护 macOS 环境塔系统横向移动活动攻击的重要性。

通过Cortex XDR  Palo Alto Networks客户可以针对不同的横向移动技术进行更好的保护,包括行为威胁防护和本地威胁评估引擎。客户还可以使用我们的XQL Cortex查询语言来搜索网络中的可疑活动。附录包含在 macOS 环境中搜索横向移动的有用 XQL 查询示例。

如果您认为自己可能已受到威胁或存在紧急问题,请联系Unit 42事件响应团队或致电:

  • 北美免费电话:866.486.4842 (866.4.UNIT42)

  • 欧洲、中东和非洲:+31.20.299.3130

  • 亚太地区:+65.6983.8730

  • 日本:+81.50.1790.0200

Palo Alto Networks 已与网络威胁联盟 (CTA) 的成员分享了这些发现。CTA 成员利用这些情报快速指导客户端部署保护措施,并系统性地打击其他恶意网络行为者。了解有关网络威胁联盟的更多信息信息。

原文始发于微信公众号(OSINT研习社):macOS 上的横向移动:独特且流行的技术以及实际示例

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月28日19:54:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   macOS 上的横向移动:独特且流行的技术以及实际示例https://cn-sec.com/archives/3445525.html

发表评论

匿名网友 填写信息