揭秘:Andariel 攻击组织使用 RID 劫持进行权限提升

admin 2025年1月30日02:16:05评论13 views字数 2828阅读9分25秒阅读模式

RID Hijacking Technique Utilized by Andariel Attack Group - ASEC

AhnLab 安全情报中心(ASEC)发现 Andariel 攻击组织在入侵过程中使用恶意文件执行 RID 劫持攻击。

RID 劫持是一种攻击技术,通过修改具有受限权限的账户(如普通用户或访客账户)的相对标识符(RID)值,使其与具有更高权限的账户(如管理员)的 RID 值相匹配。在韩国互联网与安全局(KISA)发布的"TTPs #11:章鱼行动 - 针对集中管理解决方案的攻击策略分析"中提到,Andariel 威胁组织在操作系统中创建后门账户时使用 RID 劫持技术。由于 RID 劫持攻击涉及创建隐藏账户并修改该账户的 RID 值,因此在基于行为的检测系统中难以被发现。

本文将介绍 RID 劫持攻击过程及其在入侵事件中使用的技术。

1. RID 劫持概念

RID 劫持是一种攻击技术,通过修改低权限账户(如普通用户或访客账户)的 RID 值,使其与高权限账户(管理员)的 RID 值相匹配。通过修改 RID 值,威胁行为者可以欺骗系统将该账户视为具有管理员权限。威胁行为者可以使用各种类型的账户执行 RID 劫持,包括:

  • 使用系统中现有的普通用户账户
  • 激活访客账户
  • 创建新账户

RID 劫持通常通过操作安全账户管理器(SAM)数据库来执行。威胁行为者可以创建管理员账户或提升权限以获得管理员访问权限,而无需知道密码。

2. RID 劫持攻击过程

以下是在入侵事件案例中发现的 RID 劫持攻击阶段。

揭秘:Andariel 攻击组织使用 RID 劫持进行权限提升
图 1. RID 劫持攻击的过程

2.1 SYSTEM 权限提升

SAM 注册表管理 Windows 内的身份验证和授权,并存储用户账户信息。它无法使用普通管理员权限访问,需要 SYSTEM 权限才能访问和修改。

威胁行为者使用 PsExec 和 JuicyPotato 等权限提升工具在被攻击系统上获取 SYSTEM 权限。在本案例中,威胁行为者使用 PsExec 通过远程命令执行恶意文件,该恶意文件以 SYSTEM 权限运行。

揭秘:Andariel 攻击组织使用 RID 劫持进行权限提升
图 2. 使用 PsExec 命令时的文件权限示例(SYSTEM)

2.2 创建本地用户账户

威胁行为者要么使用系统中现有的用户账户,要么创建新账户。在本案例中,威胁行为者创建了一个账户来执行 RID 劫持攻击。

威胁行为者使用"net user"命令创建账户。在账户创建过程中,如果在账户名称末尾添加 $,则该账户将以隐藏属性创建。在这种情况下,无法使用"net user"命令识别该账户,只能在 SAM 注册表中识别。

揭秘:Andariel 攻击组织使用 RID 劫持进行权限提升
图 3. 检查账户创建结果(net user,注册表)

然后,威胁行为者使用"net localgroup"命令将创建的账户添加到远程桌面用户组和管理员组。当账户被添加到远程桌面用户组时,该账户可以通过 RDP 访问。

2.3 通过注册表值修改更改 RID

在 RID 劫持攻击中,威胁行为者修改 SAM 注册表中账户的 RID 值,使 Windows 操作系统将其识别为已更改的 RID。因此,威胁行为者修改 SAM 注册表中的值以更改 RID 值。

在 Windows 操作系统中,与用户账户相关的注册表项存储在路径"HKEY_LOCAL_MACHINE SAMSAMDomainsAccountUsers"中。用户账户的 RID 以小端格式写入每个账户键下的"F"值的 0x30 – 0x33 区域中的 4 个字节。威胁行为者将此偏移处的值更改为劫持目标的 RID。

揭秘:Andariel 攻击组织使用 RID 劫持进行权限提升
图 4. SAM 注册表中的账户相关键
揭秘:Andariel 攻击组织使用 RID 劫持进行权限提升
图 5. 恶意软件内部更改 RID 的功能

一旦 RID 值被更改,Windows 操作系统会将威胁行为者创建的账户识别为具有与目标账户相同的权限,从而实现权限提升。

3. 威胁行为者使用的恶意文件

Andariel 威胁组织使用他们自己创建的恶意文件和开源工具来执行 RID 劫持攻击。这两个恶意文件都包含 RID 劫持攻击过程中描述的攻击过程,但在某些功能上存在差异。

Andariel 威胁组织的恶意文件
开源工具 CreateHiddenAccount
文件类型
威胁行为者创建
开源
权限
以系统权限执行
以管理员身份运行
行为
1. 创建账户并添加到组(远程桌面用户)  2. 检索创建的账户和目标账户的 RID  3. 访问创建账户的注册表中的 F 键并用目标账户的 RID 值修改  4. 导出注册表  5. 删除创建的账户  6. 添加到注册表
1. 创建账户并添加到组(管理员)  2. 使用 regini 访问 SAM 注册表  3. 获取创建的账户和目标账户的 RID  4. 删除创建的账户  5. 创建 .reg 文件并复制现有用户的注册表值  6. 添加到注册表  7. 激活账户
目标账户
硬编码以适应受影响公司的环境
指定为参数值

表 1. 执行 RID 劫持攻击的恶意文件比较

3.1 修改 SAM 注册表访问权限

RID 劫持需要 SYSTEM 权限,因为它需要访问 SAM 注册表键。没有系统权限,Andariel 威胁组织开发的样本无法正常执行其功能。开源工具 CreateHiddenAccount 即使只有管理员权限也可以执行其所有功能。分析该工具的操作过程发现,它使用 Windows 默认程序 regini 来授予权限。

揭秘:Andariel 攻击组织使用 RID 劫持进行权限提升
图 6. 使用 regini.exe 以管理员权限访问注册表

regini 是 Microsoft 提供的 CLI 工具,可以通过文本文件编辑 Windows 注册表。通过在文本文件中指定注册表键路径和权限,可以执行创建、修改、删除和更改注册表键权限等行为。在 CreateHiddenAccount 中识别的 ini 文件修改了 RID 劫持攻击所需的 SAM 注册表访问权限。在这种情况下,默认权限(System)17 与选项 1(管理员)一起添加到 SAM 注册表路径中,允许使用管理员权限修改 SAM 注册表键。

揭秘:Andariel 攻击组织使用 RID 劫持进行权限提升
图 7. ini 文件内容示例

3.2 添加到注册表的行为

除了创建带有"$"的隐藏账户外,Andariel 攻击组织使用的恶意文件还执行额外的行为以最小化暴露。完成 RID 劫持后,使用"reg export"命令导出与账户相关的注册表键。

行为
命令
执行将用户名映射到 RID 的键的角色
- reg export   hklmsamsamdomainsaccount*usersnames*** names.reg
包含用户账户所有详细信息和设置的导出注册表键
- reg export   hklmsamsamdomainsaccount*users*** users.reg

表 2. 导出与账户相关的注册表键的行为和命令

之后,威胁行为者删除其账户,并使用先前导出的 REG 文件再次添加注册表键。通过这个过程,该账户将不会出现在系统中检查账户列表的命令和工具中。但是,与其他方法不同,如果系统重新启动,计算机管理中的"本地用户和组"将能够再次搜索到该账户,从而可以检查账户状态。

使用上述方法创建的账户无法完全隐藏。但是,威胁行为者的行为可以解释为旨在最小化账户暴露并维持持久性。

揭秘:Andariel 攻击组织使用 RID 劫持进行权限提升

表 3. 重启前后检查账户列表的方法比较及是否可以检查账户

MD5

b500a8ffd4907a1dfda985683f1de1df

原文始发于微信公众号(securitainment):揭秘:Andariel 攻击组织使用 RID 劫持进行权限提升

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

发表评论

匿名网友 填写信息