RID(Relative Identifier)劫持 / Relative Identifier(RID) 是 SID(Security Identifier)的一部分,用来唯一标识同一域或同一计算机中的不同安全主体(如用户、组等)。RID 的作用在于为每个安全对象提供一个唯一的标识符,使得不同对象的SID结构能够保持一致,同时避免了在同一域内重复的SID。

Relative Identifier(RID) 是Windows操作系统中的一个重要概念,它是 SID(Security Identifier)的一部分,用来唯一标识同一域或同一计算机中的不同安全主体(如用户、组等)。RID 的作用在于为每个安全对象提供一个唯一的标识符,使得不同对象的SID结构能够保持一致,同时避免了在同一域内重复的SID。

RID的出现和演变主要与Windows操作系统中安全标识符(SID)的发展密切相关。以下是RID在Windows操作系统中的发展时间线:


1. Windows NT 4.0(1993年)

  • RID的首次引入:Windows NT 4.0 引入了SID,并且每个SID由多个部分组成,其中包括 RID(Relative Identifier)。RID是SID的一部分,起到标识同一域或同一计算机内的对象的作用。
  • SID的结构:在Windows NT 4.0 中,SID的结构如下:
    • 标识符前缀(Identifier Authority):标识SID的权威来源。
    • 域标识符(Domain Identifier):指明SID所属的域。
    • RID:唯一标识该域中的某个对象(如用户、组等)。
  • RID的作用:RID主要负责在同一域内唯一地标识安全对象,确保每个用户、组或其他对象都有一个独特的RID。

2. Windows 2000(2000年)

  • RID在Active Directory中的重要性增加:Windows 2000引入了 Active Directory,并将RID用于标识目录服务中的各种安全对象。
  • SID的结构变化
    • 每个Active Directory对象(用户、计算机、组等)在Windows 2000中都拥有一个唯一的RID。
    • 在Active Directory中,SID的RID部分通常由 相对标识符池(Relative Identifier Pool)中的数字构成。
  • RID的管理
    • Windows 2000 引入了 RID池,用于在域控制器中分配和管理RID。这确保了每个域中的对象都有唯一的RID,而不会发生冲突。
    • 域控制器将RID池分配给各个域中的对象,确保每个对象在整个域中都拥有唯一的标识符。

3. Windows Server 2003(2003年)

  • RID池管理的改进:Windows Server 2003继续使用RID池机制,并进一步优化了RID的分配和管理过程。RID池分配用于减少对域控制器的请求,提高了系统的性能和可靠性。
  • RID生成策略:Windows Server 2003在RID池管理方面做了进一步优化,引入了RID池分配算法,确保RID分配更加高效,并且域中的对象数目增加时,RID池能够有效应对。

4. Windows Server 2008(2008年)

  • RID池的分配增强:在Windows Server 2008中,RID池的管理机制进一步得到增强。Windows Server 2008改进了RID的分配策略,提升了跨多个域控制器中的RID分配和管理能力。
  • 全球唯一的SID:Windows Server 2008中,每个域控制器仍然拥有独立的RID池,但通过改进的管理机制,RID池能够确保在整个企业网络环境中生成唯一的SID。
  • 主动目录的新特性:Windows Server 2008引入了新的Active Directory功能,RID池在这些新功能中发挥了关键作用,确保新的安全对象能够被及时、唯一地识别。

5. Windows Server 2012 / 2012 R2(2012年)

  • RID池分配的进一步优化:Windows Server 2012和2012 R2加强了对RID池的管理和分配,进一步提高了其性能和可扩展性,尤其是在大规模网络环境中的表现。
  • 跨域和跨控制器的RID管理:Windows Server 2012增强了域控制器之间RID池的同步机制,确保了跨多个域控制器时RID分配的一致性。
  • Active Directory新功能:新版本的Active Directory加入了更多的管理工具,RID池管理和对象分配更加简便。

6. Windows Server 2016 / 2019 / 2022(2016年 / 2019年 / 2022年)

  • SID和RID在混合云环境中的整合:随着云计算的兴起,Windows Server 2016及之后的版本加强了本地和云环境中SID和RID的管理。域控制器和Active Directory能够跨不同的数据中心和云基础设施扩展,确保SID和RID在复杂环境中的一致性。
  • RID池的灵活性:这些版本的Windows Server进一步改进了RID池的分配机制,并加强了对大规模企业环境中RID分配的支持。
  • 增强的Active Directory安全性:随着安全需求的不断提升,Windows Server 2016及以后版本加强了Active Directory的安全性,确保RID池的分配和管理不被恶意篡改。

7. Windows 10(2015年)及后续版本

  • SID和RID的现代化管理:在Windows 10及其后续版本中,RID继续作为SID的一部分,为本地账户和Active Directory账户提供唯一的标识符。通过新的安全机制(如Windows Hello、企业级身份验证等),SID和RID帮助确保用户、设备和应用的安全。
  • 增强的身份验证机制:Windows 10及后续版本加强了对多因素身份验证和生物识别技术的支持。SID和RID在新一代身份验证过程中继续发挥着基础性作用。
  • 跨平台支持:Windows 10及后续版本对跨平台身份验证的支持更加完善,RID在这些系统中与不同设备和平台上的身份验证系统紧密结合。

RID的总结与发展趋势

  • RID池的管理与优化:随着Windows版本的演进,RID池的管理和分配机制不断优化,支持更大规模的网络和企业环境。
  • 跨域和云环境支持:Windows的RID管理逐渐增强对跨域和云计算环境的支持,确保RID的唯一性和一致性,尤其是在混合云架构中。
  • SID和RID的联合应用:RID作为SID的一部分,始终是Windows身份验证和访问控制系统的核心组成部分。它与现代身份验证技术(如多因素身份验证、生物识别技术等)紧密结合,确保了系统的安全性。

RID的不断发展反映了Windows操作系统在安全性、可扩展性和跨平台支持方面的不断进步,它是保证Windows环境中安全主体唯一标识和身份验证的基础。


 

RID(Relative Identifier)是Windows操作系统中用于唯一标识安全主体(如用户、组等)的一种标识符。在Windows中,每个安全主体都有一个相对标识符(RID),它是由安全主体的安全标识符(SID)中的一个部分,用于在本地或域环境中唯一标识安全主体。

RID的作用主要体现在以下几个方面:

  1. 唯一标识:RID作为SID的一部分,帮助Windows系统唯一标识每个安全主体。当操作系统需要确定特定用户或组时,会使用其SID来进行识别,而RID就是其中的一个组成部分。

  2. 权限控制:通过RID,系统可以识别并控制每个安全主体的访问权限,包括文件、文件夹、注册表项等资源的访问权限。

  3. 跨域管理:在Windows域环境中,RID也扮演着重要的角色,用于在不同域之间唯一标识安全主体,使得跨域管理变得更加方便和高效。

 


PowerShell 中,你可以使用 Get-WmiObject 命令来查询本地计算机或远程计算机的 RID 信息。以下是一个简单的示例代码,用于在本地计算机上查询当前用户的 RID:

powershellCopy Code
$currentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$currentUserUser = New-Object System.Security.Principal.NTAccount($currentUser.Name)
$sid = $currentUserUser.Translate([System.Security.Principal.SecurityIdentifier])
$rid = $sid.Value -replace "-\d+$"
Write-Output "当前用户的RID: $rid"

这段代码首先获取当前用户的 Windows 身份,然后通过 NTAccount 类将其转换为 NTAccount 对象,再利用 Translate 方法将其转换为 SecurityIdentifier 对象,最后提取 RID 部分并输出。

 


查询当前用户的完整 SID 信息,可以使用以下 PowerShell 命令:

powershellCopy Code
$currentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent()
Write-Output "User SID: $($currentUser.User.Value)"

这段代码将输出当前用户的完整 SID 信息。$currentUser.User.Value 包含当前用户的完整安全标识符 (SID)。


查询所有用户的完整 SID 信息,可以使用以下 PowerShell 命令:

powershellCopy Code
$users = Get-WmiObject Win32_UserAccount

foreach ($user in $users) {
    Write-Output "Username: $($user.Name)"
    Write-Output "SID: $($user.SID)"
    Write-Output ""
}

这段代码将获取系统中所有用户的信息,并输出他们的用户名和对应的完整 SID 信息。你可以将以上 PowerShell 代码复制粘贴到 PowerShell 窗口中执行,以获取所有用户的完整 SID 信息。

 


RID(Relative Identifier)劫持是指攻击者利用Windows中的安全漏洞,通过修改或劫持目标计算机的RID来获取权限或访问资源的一种攻击手段。RID是Windows中用于标识安全主体(如用户、组等)的一种标识符,当攻击者成功劫持RID后,可以获取高权限或执行未授权的操作。

基础技术原理包括以下几个方面:

  1. 漏洞利用:攻击者通常利用Windows系统中的漏洞,通过各种手段获取对目标计算机的访问权限,例如利用系统中的安全漏洞进行提权。

  2. 修改目标对象的RID:一旦攻击者获得了足够的权限,他们可能会修改目标计算机中的对象(如用户、组)的RID,使其拥有不正当的权限或特权。

  3. 获取高权限:通过劫持RID,攻击者可以获得目标系统中其他用户或管理员的权限,甚至是系统级别的权限,从而对系统进行操控或窃取敏感信息。

为防止RID劫持,建议采取以下安全措施:

  • 及时安装系统补丁和更新,以修复已知的安全漏洞。
  • 使用强密码策略,确保所有用户账户的密码复杂度和安全性。
  • 限制普通用户的权限,避免赋予过多的特权。
  • 定期审计系统日志,及时发现异常行为并进行处理。

Windows 注册表中,RID(Relative Identifier)信息存储在以下路径下:

Copy Code
HKEY_LOCAL_MACHINE\SECURITY\SAM\Domains\Account\Users

具体地说,每个用户的 RID 信息都存储在 Users 子键中的一个子键中。每个子键的名称是用户的 RID 值。

 

如果你需要获取特定用户的 RID 信息,可以按照以下步骤进行操作:

  1. 打开注册表编辑器(运行 regedit)。
  2. 导航到 HKEY_LOCAL_MACHINE\SECURITY\SAM\Domains\Account\Users 路径。
  3. 在 Users 键下找到与所需用户对应的子键。子键名称是用户的 RID 值。
  4. 单击该子键,并查看其包含的值。其中包括用户的用户名、SID 等信息。

 


 

posted @ 2024-02-27 02:43  suv789  阅读(257)  评论(0)    收藏  举报