Где хранятся пароли учетных записей пользователей 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/yourusername, readпоказывает обычную информацию, связанную с учетными записями Unix, а также: GeneratedUID: 1A5EF9B7-4DB6-4C01-919A-xxxxx(не знаю последствий, поэтому немного отцензурировал) — вы также можете прочитать этот UUID Accounts.prefPaneчерез System Preferences.app.

Который соответствует имени файла в/private/var/db/shadow/hash/также доступен login!

Думаю, лучшим вариантом будет переименовать/скопировать файлы с измененным именем GeneratedUIDили изменить ссылку в службе каталогов.

Включил все мои «исследования», чтобы вы могли проследить мои шаги и обеспечить опровержение.

У меня нет времени на удаление и восстановление своих учетных записей, так что теперь вы сами по себе. Удачи.

TLDR: Откройте Accounts.prefPane, проверьте UUID(щелкните правой кнопкой мыши по имени пользователя в списке) и найдите файл с таким именем в /private/var/db/shadow/hash/. Не знаю, работает ли этосовсем. Удачи.

Связанный контент