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

15

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

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

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

user4493605
источник

Ответы:

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

Захар Джо
источник