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


15

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

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

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

Ответы:


19

Начиная с 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.

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


3
Это не работает для меня: он говорит, что ShadowHashData не является допустимым свойством в <username> .plist ...
thepiercingarrow

@MarkWright какая версия OS X? Отлично работает для меня на 10.11.3. Используете ли вы LDAP для учетных записей или это локальная учетная запись?
Ян С.

Я использую 10,9 в однопользовательском режиме.
thepiercingarrow

Что sudo defaults read /var/db/dslocal/nodes/Default/users/${USER}.plistпоказывает для вас?
Ян С.

@MarkWright то же самое случилось со мной osx: 10.10.5 Использование этой команды возвращает «Домен /var/db/dslocal/nodes/Default/users/$‹USER Event.plist не существует»
o.uinn

1

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.