OS X 10.9:密码哈希存储在哪里


15

我认为在OS X的早期版本中,密码存储在/ etc / shadow文件中。

但是,此文件在更高版本的操作系统中似乎不存在-特别是OS X 10.9,它是非猫名为OS的第一个发行版。

有人知道OS X Mavericks上存储密码哈希的位置吗?

Answers:


19

从Lion开始,OS X为每个用户引入了一个影子文件这是一个plist词典,其中包含密码哈希和其他GID / UID / kerberos以及打开的目录类型键。

影子文件存储在文件系统上/var/db/dslocal/nodes/Default/users。它们为plist格式,因此您需要使用plutil命令查看它们,或使用defaults命令提取/写入特定键。只有root用户有权访问文件。

要查看用户的影子文件的内容:

sudo plutil -p /var/db/dslocal/nodes/Default/users/<username>.plist

获取哈希:

sudo defaults read /var/db/dslocal/nodes/Default/users/<username>.plist ShadowHashData|tr -dc 0-9a-f|xxd -r -p|plutil -convert xml1 - -o -

<username>在上面的例子是,你要寻找的哈希值的用户。您需要与该plist输出中<data><key>entropy</key>键相对应的部分。

要继续尝试破解密码,请参阅本教程


3
这对我不起作用:它说ShadowHashData在<username> .plist中不是有效的属性...
thepiercingarrow

@MarkWright什么OS X版本?对我来说,在10.11.3上效果很好。您是使用LDAP帐户还是本地帐户?
伊恩·C(

我在单用户模式下使用10.9。
thepiercingarrow

什么是sudo defaults read /var/db/dslocal/nodes/Default/users/${USER}.plist显示你?
伊恩·C(

@MarkWright我也遇到了同样的问题osx:10.10.5使用该命令返回“ Domain /var/db/dslocal/nodes/Default/users/${USER}.plist不存在”
o.uinn

1

我想添加到已接受的答案中,以防万一有人试图获取存储在Open Directory中OS X Server上的密码哈希。对于网络(OD)用户,您需要

sudo mkpassdb -dump

这将为您提供用户列表及其各自的插槽ID。复制以0x开头的整个插槽ID,然后发出

sudo mkpassdb -dump slot_id_that_you_retrieved

您将看到几个摘要条目,其中* cmusaslsecretSMBNT是NTLM密码哈希,而* cmusaslsecretDIGEST-MD5是常规MD5哈希。随便使用那些您想要的东西,但是我发现将它们提交到https://hashkiller.co.uk/ntlm-decrypter.aspx是一件更容易的事,这是一个免费的在线哈希破解服务。它接受您的哈希,如果尚未在他们的数据库中,它将开始对其进行处理。一个星期后返回,应该会破裂。这已经在OS X El Capitan和Mac OS Sierra上进行了测试。如果某些身份验证方法已在服务器上显式禁用,则您可能看不到摘要,但默认情况下它们应在此处。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.