编辑:有人能真正回答这个问题吗?谢谢,我不需要审计跟踪,我会知道所有密码,用户无法更改它们,我会继续这样做。
这不是用来黑客攻击的!
我们最近从旧的、生疏的 Linux/Samba 域迁移到活动目录。我们有一个自定义的小界面来管理那里的帐户。它始终将所有用户和所有服务帐户的密码以明文形式存储在安全的位置(当然,你们中的许多人肯定不会认为这是安全的,但如果没有真正的漏洞,没有人能够读取它),并且禁用了 Samba 域控制器上的密码更改。此外,任何用户都不能选择自己的密码,我们使用 pwgen 创建密码。我们不会每 40 天左右更改一次密码,而是每 2 年更改一次,以奖励真正学习密码而不是写下密码的员工。
我们需要密码来进入用户帐户并修改对于组策略来说过于复杂的设置或帮助用户。
这些政策可能确实存在争议,但我希望在 AD 上继续推行。现在我将新帐户及其 PWGEN 生成的(pwgen 会创建带有大量元音、辅音和数字的、听起来不错的随机单词)手动保存到旧脚本过去自动维护的旧文本文件中。
我怎样才能在 AD 中恢复此功能?
我看到 AD 帐户中存在“可逆加密”,可能用于需要在服务器上存储明文密码的质询响应身份验证系统。
有没有一个脚本可以显示所有这些密码?那太好了。(再次强调:我相信我的 DC 不会被破解。)
或者我可以将一个插件插入到 AD 用户和计算机中,以便收到每个新密码的通知并将其存储到文件中吗?
在使用 GINA-dlls 的客户端上,他们可以收到有关密码的通知并获取明文。
答案1
要回答这个问题,请阅读以下内容: http://blog.teusink.net/2009/08/passwords-stored-using-reversible.html
文章底部描述了如何获取存储的可逆密码。我还没有尝试过,所以不知道具体如何按照描述去做,但它应该可行。
除此之外,我同意其他人对使用可逆加密的建议大喊大叫。它不安全。
答案2
在我看来,您通过登录用户账户(知道他们的密码)来为用户提供支持?正如您所说,出于多种原因,这是一个非常糟糕的主意。
我知道有些老派用户喜欢这样,他们只是耸耸肩,要求你远程修复并给你密码。但请拒绝。除了他们自己,没有人应该知道他们的密码——这是基本原则。
大多数问题都可以从另一个用户上下文(即您自己的上下文)中修复。那些确实无法修复且需要用户以交互方式登录才能修复的问题,则需要用户自己完成,并留在原地观察工作人员通过该用户的帐户修复问题。
远程方面,有 RDP Shadow、远程帮助和类似的交互式解决方案,用户可自行控制,无需知道其密码即可解决与桌面相关的问题。使用组策略基本上不需要这种行为,因为大多数事情都可由管理员轻松配置。
如果您允许其他人访问其他人的用户帐户 - 您也将失去对系统中用户所做操作的审计跟踪和责任 - 这些操作很容易超出授权管理员组的范围。
答案3
我不能确定我的 DC 是否安全。如果我是攻击者或渗透测试人员,无论如何,我不会首先攻击你的 DC。我会攻击你的工作站和服务器。基本攻击媒介:
- 发现弱的用户名/密码,无论是域还是某些服务(比如 SQL Server 上的 sa 帐户),或者我可以利用的漏洞,从而获得管理员权限(修补你们的系统,伙计们)。
- 找到该帐户具有管理员权限的系统。
- 转储 LSA 机密以查找所有服务帐户的用户名/密码。
- 使用 CacheDump 转储缓存的用户名/密码。
- 查看其中是否有任何人在任何地方具有管理员权限。
- 重复1-5直到我获得域管理员帐户。
- 使用域管理员帐户访问域控制器。
- 转储域控制器的 SAM。
- 使用彩虹表来破解更多密码,或者在必要时离线使用暴力破解。
除非您使用的是 Vista / Windows Server 2008 / Windows 7,否则这是大多数渗透测试人员使用的基本攻击模式。这 3 个操作系统打破该模式的原因在于,针对 LSA Secrets 的 DLL 注入攻击尚未针对这些操作系统起作用。
综上所述,您不应该使用可逆加密,并且应该禁用 LM 哈希。您需要 NTLM 哈希。并且您不想以明文形式存储这些密码。
答案4
说实话,我认为你这样做的理由不充分。作为一名管理员,一想到要知道用户的密码,我就感到很紧张。这是他们的个人领域,而你却要求他们对你给予极大的信任。除此之外,如果发生机密数据泄露,你会立即受到怀疑,因为你会知道用户的密码。缺乏可验证的审计线索是一个巨大的安全危险信号。规则 1 是“保护自己”,如果这意味着必须接受一些不便,那就这样吧。
我认为有其他解决方案可以实现您的目标,而不必走极端,例如知道密码。您看过组策略首选项吗?您的脚本编写技能如何?使用暴力方法通常清楚地表明标准方法没有得到最佳利用,所以我认为您最好回溯并重新考虑您正在做的事情。