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

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

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

答案1

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

您可以使用以下方式打印哈希数据戴夫·格罗尔( 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[i % key.size]==(b); print [b ^ key[i % key.size]].pack("U*") }'

答案2

我对此了解不多,但从我所能收集的信息来看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.prefPaneUUID System Preferences.app

与文件名匹配/private/var/db/shadow/hash/也可以通过 访问login

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

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

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

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

相关内容