为了便于讨论,假设我希望将 Windows 本地用户帐户的 SID 更改为某个假设的 Active Directory 域中出现的 SID。这可能吗?如果可以,该怎么做?
PS 我实际上不需要知道如何...我所关心的是它是否明显可行并且理论上网络上的一些恶意用户可以做到这一点...以及他们需要多少技能才能做到这一点。
答案1
从技术上来说这是可行的要做到这一点,可以通过编辑 SAM 数据库(HKEY_LOCAL_MACHINE\Security
在注册表下),但它需要了解那里使用的二进制格式。存在可以执行此操作的工具, 例如新希德– 尽管它通常会对面的你所寻找的,但无论如何曾是能够更改计算机范围内的机器 SID 和用户 SID。NewSid 网页上有一些关于如何执行此操作的信息。
但它不会取得太大的成效。该 SID 仅在本地使用。不管你拥有什么 SID,它都不会让你访问任何其他网络资源。(这类似于SysInternals 给出的参数当他们停止使用 NewSid 实用程序时——如果你克隆了具有相同 SID 的计算机,它将创建一个新的计算机 SID,但据解释,具有相同的计算机 SID,因此具有相同的用户 SID,对网络安全没有任何影响。)
对于网络身份验证,Active Directory 使用凯尔伯罗斯有时(现已弃用)NTLM,两者都使用密码或类似的凭证对用户进行身份验证。
答案2
你不能年代安全IDendtifier 是根据创建时的环境变量构建的。它们是唯一的,并且不可重写。
在企业的一个域中创建的帐户或组的 SID 永远不会与在同一企业的另一个域中创建的帐户或组的 SID 匹配。
我怀疑如果你真的成功做到了这一点,域名会认为这是某种异常并拒绝访问或做其他奇怪的事情。