Mac 用户帐户密码存储在哪里?

use*_*799 6 mac security user-accounts osx-snow-leopard macos

如何在 osx 中访问本地用户帐户密码的加密值?是否可以检查它甚至将其复制到另一个帐户?

Lri*_*Lri 6

哈希值/var/db/shadow/hash/在 10.6 及更早版本中,但它们存储/var/db/dslocal/nodes/Default/users/username.plist在 10.7 和 10.8 中。

您可以使用DaveGrohl ( sudo dave -s $USER) 或类似的东西打印哈希数据:

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

如果启用了自动登录,则登录钥匙串的密码也/etc/kcpassword以 XOR 密码加密存储。

sudo ruby -e 'key = [125, 137, 82, 35, 210, 188, 221, 234, 163, 185, 31]; IO.read("/etc/kcpassword").bytes.each_with_index { |b, i| break if key.include?(b); print [b ^ key[i % key.size]].pack("U*") }'


Dan*_*eck 4

我对此了解不多,但从我可以使用以下方式收集到的信息opensnoop

login访问本地目录服务(可能与一些 Kerberos 内容相关——也许这是本地目录的底层实现,它读取/Library/Preferences/edu.mit.Kerberos/etc/krb5.conf/usr/etc/krb5.conf)。

dscl,目录服务命令行实用程序,然后cd Local/Default/Users/yourusernameread显示通常的 unixy 帐户相关的内容,加上:(GeneratedUID: 1A5EF9B7-4DB6-4C01-919A-xxxxx不知道含义,所以我进行了一些审查)--您也可以通过Accounts.prefPanein读取此 UUID System Preferences.app

/private/var/db/shadow/hash/这与也由login!访问的文件名匹配

我想你最好的选择是重命名/复制具有该名称的文件GeneratedUID,或者更改目录服务中的引用。

包括我所有的“研究”,以便您追溯我的步骤并允许反驳。

我没有时间删除和恢复我的用户帐户,所以你现在只能靠自己了。祝你好运。

TLDR:打开Accounts.prefPane,检查您的UUID(在列表中右键单击您的用户)并在/private/var/db/shadow/hash/. 不知道它是否有效。祝你好运。