OS X 10.9: где хранятся хэши паролей

Я думаю, что в предыдущих версиях OS X пароль хранился в файле /etc/shadow.

Тем не менее, этот файл, по-видимому, не существует в более поздних версиях операционной системы, в частности, в OS X 10.9, которая является первым из выпусков ОС без имени кошки.

Кто-нибудь знает, где хранятся хэши паролей в OS X Mavericks?

Ответы (3)

Начиная с Lion, OS X представила теневой файл для каждого пользователя , который представляет собой словарь plist, содержащий хэши паролей и другие GID/UID/kerberos и ключи типа открытого каталога.

Файлы теней хранятся в файловой системе по адресу /var/db/dslocal/nodes/Default/users. Они находятся в формате plist, поэтому вам нужно будет использовать команду plutil для их просмотра или использовать команду по умолчанию для извлечения/записи определенных ключей, если это необходимо. Только 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>в приведенных выше примерах находится пользователь, для которого вы ищете хэш. Вам нужен <data>раздел, соответствующий <key>entropy</key>ключу в этом выводе plist.

Чтобы продолжить попытки взлома пароля, см. этот учебник .

У меня это не работает: написано, что ShadowHashData не является допустимым свойством в <username>.plist...
@MarkWright, какая версия OS X? У меня отлично работает на 10.11.3. Вы используете LDAP для учетных записей или это локальная учетная запись?
Я использую 10.9 в однопользовательском режиме.
Что sudo defaults read /var/db/dslocal/nodes/Default/users/${USER}.plistпоказывает для вас?
@MarkWright то же самое случилось со мной osx: 10.10.5 Использование этой команды возвращает «Домен /var/db/dslocal/nodes/Default/users/${USER}.plist не существует»
sudo plutil -pвсе еще работает в 10.14, даже с включенным SIP.

Я хочу добавить к принятому ответу на случай, если кто-то попытается получить хэши паролей, хранящиеся на сервере OS X в Open Directory. Для пользователей сети (OD) необходимо

sudo mkpassdb -dump

который даст вам список пользователей и их соответствующие идентификаторы слотов. Скопируйте весь идентификатор слота, начиная с 0x, и введите

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. Вы можете не видеть дайджесты, если некоторые методы аутентификации были явно отключены на вашем сервере, но они должны быть там по умолчанию.

Ссылка не работает. Также обратите внимание, что ответы только по ссылке без объяснения не одобряются.