出于pipe理的目的,我有时需要以其他用户身份login才能诊断帐户的问题。 我希望能够做到这一点,而不必更改密码,所以我不必打扰他们。 在Unix下,我可以保存passwd文件中的encryption密码,更改密码,然后将旧encryption密码编辑回密码文件。 在AD中有类似的方法吗?
由于MarkM已经解释了为什么我们不应该replace和恢复用户密码,我会尝试解决系统如何阻止我们进行这些更改。
在Unix中,密码散列最初存储在/etc/passwd ,任何人都可以读取。 意识到这允许任何用户潜在地窃取密码,较新的unix系统将密码散列存储在只能由root读取的/etc/shadow中。
Windows遵循类似的path。 在域环境中,域用户的密码哈希存储在每个域控制器上的SAMregistryconfiguration单元中。 你可能已经熟悉HKLM和HKCU这样的荨麻疹了。
从Windows 2000开始,SAMconfiguration单元使用128位密码encryption密钥进行encryption,该密钥本身使用SYSKEYencryption。 很明显,由于操作系统必须读取configuration单元的内容才能在login时对用户进行身份validation,因此必须将密钥保存在某处的计算机上。 要更深入地了解所使用的混淆技术,请查看SysKey和SAM 。
Windows会尽力防止pipe理用户直接读/写哈希,通常只有以SYSTEM用户身份运行的lsass.exe才能读取哈希值。
不过,我相信你遇到了绕过这些保护的工具。 例如, fgdump可以通过将代码注入lsass.exe从实时系统导出密码哈希,尽pipe这可能会使整个系统崩溃。 而且有很多种可启动的工具可以在Windows不运行时覆盖密码哈希值。
尽pipe理论上可以replace用户密码,但您首先需要避开Windows操作系统内置的各种保护措施。 这些方法中的任何一种都有可能使系统不稳定,并且决不能在生产环境中使用。
不,你不能。
食不备心:如果你为一个规模适中的公司工作,有可能制定一项政策,阻止IT(或其他领域)的人在未经他们明确同意的情况下假冒其他用户。 如果你的公司没有这样的政策,你应该强烈考虑。
我从来没有见过这样做,只是密码,虽然你可能能够备份/恢复的AD对象。
另一种方法是让他们用AD用户和计算机pipe理工具重置密码。 它会让你绕过重用密码的安全限制。
这不可能。 密码使用不可逆encryption进行存储。 但是,您可以通过选中所需用户对象的“属性”对话框中“帐户”选项卡上的“使用可逆encryption存储密码”旁边的框来更改该行为。 任何未来的密码更改都将使用可逆encryption进行存储。
至于从AD数据库输出这些信息,我不认为这是可能的。
如果你的问题是合法的,你应该问用户的密码,然后让他们在完成“诊断”后重置它。 这样你就是透明的,用户很清楚后台正在发生什么。
你可以通过ADUC重新设置密码,然后重新设置密码,这样用户就可以重新input自己的密码。 不过,我不确定密码重复限制会在这里发挥作用。
作为替代scheme,为什么不使用像AMMYY这样的工具与用户会话进行交互? 或者,如果这是计算机本身的问题,请让他们以pipe理员身份注销和RDP。