На OS X 10.11 - я открыл .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 -
Файл сказал SALTED-SHA512
в нем, поэтому я предположил, что это был хэш SHA512.
Но я пошел на несколько сайтов хеш-генератора SHA512 и ввел свой пароль. Я получил хеш, отличный от того, что было в .plist
файле.
Итак, как мне преобразовать то, что находится в .plist
файле, в фактический хеш или какой именно тип хэша хранится в файле?
macos
el-capitan
password
Flare Cat
источник
источник
SALTED-SHA512-PBKDF2
(OS X 10.10)!/var/db/shadow/hash
?Ответы:
Взлом пароля (действует в OS 10.8 и новее)
Сначала я хочу объяснить вашу команду:
Первая часть команды читает ключ ShadowHashData в plist
Результат (в основном шестнадцатеричный):
вторая часть команды
tr -dc 0-9a-f
удаляет все, кроме 0-9a-f.Результат (гекс):
третья часть
xxd -r -p
возвращает его в (неправильно сформированный) двоичный файл:и последняя часть
plutil -convert xml1 - -o -
создает правильно сформированный список XML:Чтобы получить настоящий файл, замените
-o -
на-o ~/Desktop/tempuser.plist
Список содержит три ключевые части: итерации , энтропия и соль .
Итерации - это просто целое число, но энтропия и соль кодируются в base64. Чтобы продолжить работу с ними, вы должны их декодировать и xxd:
Для декодирования соли удалите все пробелы и новые строки из части данных и используйте
С моими данными выше это
с результатом соли (гекс):
То же самое для энтропии:
с энтропийным (шестнадцатеричным) результатом:
Если вам нужен текстовый файл для хэширования, чтобы взломать пароль, вы должны объединить найденные хеш-данные в одну строку:
С моими примерами хеш-данных это:
Сохраните это в файл с именем hash.txt и используйте его в hashcat. Правильная команда brute force для поиска пароля (= мой простой тестовый пароль, содержащий только 4 цифры):
Полученный пароль после 3-х минутного взлома (в ВМ) - 1111 .
Теперь обратное: создание ShadowHashData (действует в OS 10.8 и новее)
Это объясняет, почему вы не можете использовать простой генератор хеша SHA512 для создания ваших данных «пароля». SHA512 все еще важен, хотя. Фон объясняется здесь: PBKDF2-Key_derivation_process .
Тебе нужно:
создать DK = PBKDF2 (PRF, пароль, соль, c, dkLen)
Чтобы создать DK ~ энтропийный ключ в SALTED-SHA512-PBKDF2 (единственная часть в промежуточном списке, основанном на вашем пароле), используйте php hash_pbkdf2 :
В Терминале (необходим PHP ⩾ 5.5) введите:
Строка, используемая в $ salt, представляет собой экранированное шестнадцатеричное (\ x) представление соли (hex):
0dba6246 ... -> \ x0d \ xba \ x62 \ x46 ...
Так как вы можете определить или знать алгоритм хеширования (это должно быть sha512 для Mac 10.8 и более поздних версий), итерации (число больше нуля и меньше 2 ^ 32-1), соль (длина шестнадцатеричного байта, но случайное! 64 байта) и длиной (256 байт) вы можете создать правильно сформированный промежуточный файл plist, изменив все приведенные выше команды.
Путем изменения вашей команды (лучше: каждой из подкоманд) с самого первого шага вы можете создать данные ключа ShadowHashData в исходном списке, используя промежуточный список.
И, наконец, чтобы ответить на ваш вопрос: алгоритм хэширования, используемый для обработки пароля OS X (и других данных, таких как соль), - это SHA512. Но вы не можете сказать, что ваш пароль пользователя хранится как хэш SHA512 .
Ваш пароль и соль многократно жарятся sha512, затем результат base64 и обратный xxd. Вместе с солью и итерациями он снова xxd и base64.
Я надеюсь, что я не забыл ни одного шага.
источник
Вам понадобится соль вашей учетной записи пользователя в этой системе. Это случайная строка символов, придуманная для вас при создании учетной записи (или, возможно, при последнем изменении пароля). Вы должны добавить это к своему паролю, например:
[этот огромный кусок чисел ниже, чем тогда ...] [ваш пароль]
Не уверен, что это добавлено на лицевую или обратную сторону: [ваш пароль] [соль]? кто знает.
Для пользователя
USERNAME
вы можете увидеть хеш здесь:Затем выходит:
Интересно, что хотя я и изменил некоторые из числовых блоков случайного вида выше, чтобы Stack не получил мою соль (вы можете заметить некоторые повторяющиеся случайные блоки, которые были моей работой!), Но я не вставлял их в конце … Кажется, что в конце эти ноль в конце растворяются в нули, эти 512 хешей интересны !!!
PS. Они немного его передвинули ... раньше они были действительно хорошо спрятаны. Я заблудился и не смог найти свой (см. Ниже), он спрятан в какой-то злой структуре папок из 'Nam!
источник