Windows哈希密码

时间:2010-07-07 16:01:55

标签: c# c++ winapi hash passwords

是否有办法获取特定本地用户的Windows密码的哈希值?那将是哪个Win32 API?我不想知道实际密码是什么,只是密码的哈希值。

我希望能够告诉哪些工作站/服务器没有特定用户的相同密码。

请指教,谢谢。

4 个答案:

答案 0 :(得分:2)

我最近没有尝试过这种技术,所以我不是确定它仍然有效,但有一段时间它确实有效,我猜它可能仍然存在。

在每台目标计算机上为该用户的帐户调用NetUserChangePassword,但是从有权更改该用户密码的帐户(例如,另一个普通用户)执行此操作帐户)。当你调用它时,你必须传递(除其他外)用户的旧密码。由于您是从不允许更改该用户密码的帐户调用它,因此此调用将始终失败。

您感兴趣的是失败时的错误代码。如果您作为旧密码传递的内容被系统识别(即,该帐户的密码是正确的),则呼叫将失败并显示ERROR_ACCESS_DENIED。如果您传递的密码不正确(即,该帐户无法识别),则该密码将失败并显示ERROR_INVALID_PASSWORD

答案 1 :(得分:1)

Windows密码文件在操作系统运行时被锁定,无法轻松访问。最简单的解决方法是启动到CD或其他USB设备并运行密码文件提取工具,例如可能在Openwall project找到。

答案 2 :(得分:1)

Cain and Abel可以做到这一点。

答案 3 :(得分:1)

如果所有工作站都在域中,则密码应自动同步。 如果没有,您可以尝试打开与特定用户的连接&密码并检查是否可以打开连接。如果可以,密码对于该机器是正确的;如果没有,密码不正确。