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 劫持攻击阶段。
2.1 SYSTEM 权限提升
SAM 注册表管理 Windows 内的身份验证和授权,并存储用户账户信息。它无法使用普通管理员权限访问,需要 SYSTEM 权限才能访问和修改。
威胁行为者使用 PsExec 和 JuicyPotato 等权限提升工具在被攻击系统上获取 SYSTEM 权限。在本案例中,威胁行为者使用 PsExec 通过远程命令执行恶意文件,该恶意文件以 SYSTEM 权限运行。
2.2 创建本地用户账户
威胁行为者要么使用系统中现有的用户账户,要么创建新账户。在本案例中,威胁行为者创建了一个账户来执行 RID 劫持攻击。
威胁行为者使用"net user"命令创建账户。在账户创建过程中,如果在账户名称末尾添加 $,则该账户将以隐藏属性创建。在这种情况下,无法使用"net user"命令识别该账户,只能在 SAM 注册表中识别。
然后,威胁行为者使用"net localgroup"命令将创建的账户添加到远程桌面用户组和管理员组。当账户被添加到远程桌面用户组时,该账户可以通过 RDP 访问。
2.3 通过注册表值修改更改 RID
在 RID 劫持攻击中,威胁行为者修改 SAM 注册表中账户的 RID 值,使 Windows 操作系统将其识别为已更改的 RID。因此,威胁行为者修改 SAM 注册表中的值以更改 RID 值。
在 Windows 操作系统中,与用户账户相关的注册表项存储在路径"HKEY_LOCAL_MACHINE SAMSAMDomainsAccountUsers"中。用户账户的 RID 以小端格式写入每个账户键下的"F"值的 0x30 – 0x33 区域中的 4 个字节。威胁行为者将此偏移处的值更改为劫持目标的 RID。
一旦 RID 值被更改,Windows 操作系统会将威胁行为者创建的账户识别为具有与目标账户相同的权限,从而实现权限提升。
3. 威胁行为者使用的恶意文件
Andariel 威胁组织使用他们自己创建的恶意文件和开源工具来执行 RID 劫持攻击。这两个恶意文件都包含 RID 劫持攻击过程中描述的攻击过程,但在某些功能上存在差异。
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
表 1. 执行 RID 劫持攻击的恶意文件比较
3.1 修改 SAM 注册表访问权限
RID 劫持需要 SYSTEM 权限,因为它需要访问 SAM 注册表键。没有系统权限,Andariel 威胁组织开发的样本无法正常执行其功能。开源工具 CreateHiddenAccount 即使只有管理员权限也可以执行其所有功能。分析该工具的操作过程发现,它使用 Windows 默认程序 regini 来授予权限。
regini 是 Microsoft 提供的 CLI 工具,可以通过文本文件编辑 Windows 注册表。通过在文本文件中指定注册表键路径和权限,可以执行创建、修改、删除和更改注册表键权限等行为。在 CreateHiddenAccount 中识别的 ini 文件修改了 RID 劫持攻击所需的 SAM 注册表访问权限。在这种情况下,默认权限(System)17 与选项 1(管理员)一起添加到 SAM 注册表路径中,允许使用管理员权限修改 SAM 注册表键。
3.2 添加到注册表的行为
除了创建带有"$"的隐藏账户外,Andariel 攻击组织使用的恶意文件还执行额外的行为以最小化暴露。完成 RID 劫持后,使用"reg export"命令导出与账户相关的注册表键。
|
|
---|---|
|
|
|
|
表 2. 导出与账户相关的注册表键的行为和命令
之后,威胁行为者删除其账户,并使用先前导出的 REG 文件再次添加注册表键。通过这个过程,该账户将不会出现在系统中检查账户列表的命令和工具中。但是,与其他方法不同,如果系统重新启动,计算机管理中的"本地用户和组"将能够再次搜索到该账户,从而可以检查账户状态。
使用上述方法创建的账户无法完全隐藏。但是,威胁行为者的行为可以解释为旨在最小化账户暴露并维持持久性。
表 3. 重启前后检查账户列表的方法比较及是否可以检查账户
MD5
b500a8ffd4907a1dfda985683f1de1df
原文始发于微信公众号(securitainment):揭秘:Andariel 攻击组织使用 RID 劫持进行权限提升
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论