Как я могу получить доступ к зашифрованному значению пароля учетной записи локального пользователя в osx? Можно ли проверить его или даже скопировать на другую учетную запись?
Где хранятся пароли учетных записей пользователей Mac?

2 ответа
хэши были в /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*") }'

я не так много знаю об этом, но из того, что я мог собрать, используя opensnoop:
login обращается к локальной службе каталогов (возможно, связанной с некоторыми материалами Kerberos - возможно, это базовая реализация для локального каталога, она читает /Library/Preferences/edu.mit.Kerberos,/etc/krb5.conf,/usr/etc/krb5.conf etc.).
dscl каталог сервис командной строки утилита, затем cd Local/Default/Users/yourusername,read раскрывает обычный счет связанных с unixy вещи, плюс: GeneratedUID: 1A5EF9B7-4DB6-4C01-919A-xxxxx (не знаю последствий, поэтому я немного цензурировал) - вы также можете прочитать этот UUID через Accounts.prefPane in System Preferences.app.
соответствует имени файла в /private/var/db/shadow/hash/ также доступны login!
я думаю, что ваш лучший выбор-переименовать / скопировать файлы с помощью GeneratedUID name или измените ссылку в службе каталогов.
включены все мои "исследования", чтобы позволить вам проследить мои шаги и позволяют опровержения.
у меня нет времени, чтобы мусор и восстановить мой учетные записи пользователей, так что теперь вы сами по себе. Удача.
TLDR: открыть Accounts.prefPane, проверьте, ваш UUID (щелкните правой кнопкой мыши пользователя в списке) и найдите файл с таким именем в /private/var/db/shadow/hash/. Не знаю, работает ли это на всех. Удача.

Komp




















