RuCore.NET

Ломаем пароль Mac OS без его изменения





Выключенный MacBook может быть взломан менее чем за три минуты. С помощью всего лишь нескольких команд, хакер может извлечь хэш пароля цели и взломать его без их ведома.

 



Целью этой статьи является получение целевого файла .plist, который содержит их хешированный пароль. Затем, используя сценарий Python для преобразования файла .plist в формат, который может интерпретировать Hashcat, он грубо заставляет его раскрыть пароль. Самый простой метод для выполнения этой атаки требует физического доступа к целевому MacBook, режиму восстановления, USB-накопителю, другому MacBook и Hashcat.

Также можно оставить USB-накопитель и MacBook злоумышленника, вместо этого создав временного пользователя на целевом MacBook, где можно выполнять команды. После этого временный пользователь может быть удален. Однако в этом руководстве мы покажем метод USB-накопителя.

Режим восстановления — один из нескольких режимов запуска, поддерживаемых устройствами Mac. Он включает в себя ряд инструментов для переустановки macOS, сброса паролей учетных записей и настройки пароля прошивки. Хотя эта функция была разработана, чтобы помочь пользователям заблокировать свою учетную запись и стереть внутренний жесткий диск, хакеры часто пытаются получить несанкционированный доступ к конфиденциальным файлам.

Начиная с Mojave 10.14, macOS больше не позволяет пользователям (даже root) изменять файлы .plist, содержащие хешированные пароли, во время работы операционной системы. Эти данные теперь могут быть получены только в режиме восстановления.

Флэш-накопитель USB необходим для перемещения файла .plist цели с их MacBook на злоумышленника. Флэш-накопитель USB, используемый в этом руководстве, отформатирован в FAT32, но форматы NTFS и APFS также должны работать.

В специальном скрипте Python есть несколько специфичных для macOS команд, которые упрощают преобразование файла .plist в формат, который может интерпретировать Hashcat. Вот почему нужен другой MacBook (или, по крайней мере, другая учетная запись на целевом MacBook).

Чтобы выяснить пароль Mac для Mac, не меняя его, хэш должен быть взломан и взломан. MacOS отлично справляется с защитой пароля цели. Невозможно просматривать пароли пользователей в виде обычного текста. Решения для взлома на базе процессора (такие как JohnTheRipper) буквально займут десятилетия, чтобы взломать один хеш, и поэтому неэффективны. Настоятельно рекомендуется Hashcat с приличным графическим процессором.

Шаг 1: Выберите режим восстановления

Чтобы перейти в режим восстановления, сначала убедитесь, что целевой MacBook полностью выключен. Затем нажмите кнопку питания, удерживая Ctrl + R на клавиатуре. Примерно через 30 секунд появится логотип Apple и можно будет отпустить клавиши Command + R. Если появляется приведенный ниже экран, режим восстановления был успешно включен, и читатели могут перейти к следующему шагу в этом руководстве.

Если MacBook запрашивает пароль, это означает, что прошивка защищена и настроена для предотвращения атак в режиме восстановления. К сожалению, это означает, что целевой MacBook не уязвим для атаки, показанной в этой статье.

Шаг 2: Отключить SIP (Условно)

Защита целостности системы Apple (SIP) — это функция безопасности, предназначенная для ограничения возможности изменения частей macOS. Начиная с Mojave, каталог /var/db/dslocal/node/Default/Default находится в рамках защиты SIP и будет возвращать сообщение «Operation not permitted», если кто-либо попытается его просмотреть. Он даже не позволяет корневым пользователям изменять и получать доступ к избранным каталогам.

В одном тесте я обнаружил, что каталог Default/ не может быть просмотрен или изменен даже в режиме восстановления. Это было немного аномально, так как другие тесты разрешали доступ к Default/ без предварительного отключения SIP.

Чтобы узнать, нужно ли отключить SIP, откройте терминал в режиме восстановления. В строке меню в верхней части экрана выберите «Utilities», затем «Terminal». Затем используйте приведенную ниже команду ls -R.

ls -R /Volumes/<hard drive name>/var/db/dslocal/nodes/Default/

Эта команда попытается рекурсивно (-R) перечислить файлы в каталоге Default /. Если выходные данные возвращают много файлов .plist, не отключайте SIP и переходите к следующему шагу в этом руководстве. Если выходные данные возвращают «Операция не разрешена», отключите SIP с помощью приведенной ниже команды csrutil.

csrutil disable

Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.

После появления запроса на перезагрузку выключите компьютер и снова загрузитесь в режим восстановления. Когда SIP отключен, можно безопасно перейти к следующему шагу в этом руководстве.

Шаг 3: Извлеките целевой лист

Вставьте флэш-накопитель USB в целевой MacBook. Подождите несколько секунд, чтобы он автоматически смонтировался. Затем скопируйте нужный файл .plist на USB-накопитель с помощью приведенной ниже команды cp. Целевой .plist будет использовать имя пользователя цели (например, tokyoneon.plist).

cp /Volumes/<hard drive name>/var/db/dslocal/nodes/Default/users/<username>.plist /Volumes/<usb name>/

Обязательно измените <hard drive name> в приведенной выше команде. Вероятно, это будет «macOS», но может отличаться, если цель купила MacBook несколько лет назад и обновила ее до Mojave или High Sierra. В этом случае имя жесткого диска может отображаться как «Macintosh HD» или как-то иначе. Также измените <usb name> на USB-накопитель, вставленный в MacBook.

Вот и все. Необходимый файл извлечен, целевой MacBook может быть закрыт, а в оставшейся части учебника требуется отдельный MacBook, принадлежащий злоумышленнику. Если SIP был отключен на предыдущем шаге, повторно включите его перед выключением с помощью приведенной ниже команды.

csrutil enable

Шаг 4: Скопируйте Plist на машину атаки

Используя MacBook злоумышленника, вставьте USB-накопитель, содержащий целевой файл .plist, и скопируйте (cp) его в каталог /tmp/. На следующем шаге каталог /tmp/ жестко запрограммирован в скрипт Python, чтобы сделать его достаточно универсальным для всех читателей. Пока файл .plist цели находится в каталоге /tmp/, скрипт Python сможет преобразовать его в хеш.

cp /Volumes/<usb name>/<username>.plist /tmp/

Шаг 5: Загрузите и запустите скрипт Hashdump Python

Скрипт Python, используемый для преобразования извлеченного файла .plist в предпочтительный формат Hashcat, был взят из среды Empire и может быть найден на GitHub. Откройте терминал и загрузите скрипт hashdump с помощью следующей команды curl. Аргумент -o сохранит скрипт с именем файла «hashdump.py».

curl 'https://raw.githubusercontent.com/tokyoneon/hashdump.py/master/hashdump.py' -o hashdump.py

Затем дайте сценарию разрешение на выполнение с помощью команды chmod.

chmod +x hashdump.py

Наконец, выполните скрипт hashdump.py с правами root.

sudo python hashdump.py

[('tokyoneon', '$ml$27548$ba6261885e349ecb847854136cf32e9561cd1af65616f7ce11abb3f04786729c$88ad7849c5b30cce20b9d6ecde9e5be3b6736646965e0414d45d40510a574f864bafd9c5dc06fdb3cb189b877c3aa1312c2e4497ea854d3653f5861365d41a4250042a78c93dace17d212ccbb6584e3350efe95bd138f27b1705ad97166d2f11fb749b6138139a9e1ebeecb1a96750db53dbf75434c4b320b500589fa64bf5f8')]

Удалите текст, окружающий хеш (показанный ниже), и сохраните его в файл с именем «hash.txt». Затем переместите hash.txt на компьютер Hashcat.

$ml$27548$ba6261885e349ecb847854136cf32e9561cd1af65616f7ce11abb3f04786729c$88ad7849c5b30cce20b9d6ecde9e5be3b6736646965e0414d45d40510a574f864bafd9c5dc06fdb3cb189b877c3aa1312c2e4497ea854d3653f5861365d41a4250042a78c93dace17d212ccbb6584e3350efe95bd138f27b1705ad97166d2f11fb749b6138139a9e1ebeecb1a96750db53dbf75434c4b320b500589fa64bf5f8

Шаг 6: Взломать хэш

Чтобы взломать хэш цели с помощью Hashcat, используйте команду ниже.

hashcat -a 0 -m 7100 /path/to/hash.txt /path/to/wordlists/passwords.txt -w 4 --potfile-path /tmp/cracked_hash.pot

Атака по словарю, или «прямой режим», указывается с помощью аргумента -a 0. Специфичный для macOS режим хеширования включается с помощью аргумента -m 7100 и требуется для всех хэшей macOS, извлеченных из версии 10.8 или новее. Чтобы улучшить общую производительность Hashcat, установите -w (или —workload-profile) на 4, чтобы максимизировать скорость взлома. Наконец, аргумент —potfile-path используется для сохранения взломанного хэша в указанном файле.

Также возможно выполнять гибридные атаки, когда комбинации цифр добавляются в конец каждого слова в списке слов. Например, «password12» и «password77».

hashcat -a 6 -m 7100 /path/to/hash.txt /path/to/wordlists/everyword.txt ?d?d -w 4 --potfile-path /tmp/db.pot

Гибридная атака включена с аргументом -a 6. На этот раз список слов «каждое слово», содержащий 479 000 английских слов, используется в сочетании с ?D?D, который говорит Hashcat добавлять каждую возможную комбинацию из двух цифр к каждому паролю в списке слов. Чтобы добавить три или четыре цифры, используйте «?D?D?D» и «?D?D?D?D» соответственно.

Во время работы Hashcat будут отображаться следующие данные. Если пароль угадан правильно, он появится в нижней части терминала и Hashcat остановится.

Session..........: hashcat
Status...........: Running
Hash.Type........: macOS v10.8+ (PBKDF2-SHA512)
Hash.Target......: $ml$27548$ba6261885e349ecb847854136cf32e9561cd1af65...d41a42
Guess.Base.......: File (/root/wordlists/passwords.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.Dev.#1.....:     7740 H/s (98.63ms) @ Accel:256 Loops:64 Thr:512 Vec:1
Recovered........: 0/1 (0.00%) Digests, 0/1 (0.00%) Salts
Progress.........: 0/329968 (0.00%)
Rejected.........: 0/0 (0.00%)
Restore.Point....: 0/329968 (0.00%)
Candidates.#1....: 123456 -> zzzzzzzz9
HWMon.Dev.#1.....: Temp: 57c Fan: 31% Util:100% Core:1873MHz Mem:3802MHz Bus:16

[s]tatus [p]ause [b]ypass [c]heckpoint [q]uit =>

Соображения по взлому хеша

Определить, сколько времени займет взлом хэша, сложно предположить. Словарные и гибридные атаки могут занимать различное количество времени в зависимости от нескольких факторов.

  • Определить, сколько времени займет взлом хэша, сложно предположить. Словарные и гибридные атаки могут занимать различное количество времени в зависимости от нескольких факторов.
  • Итерации хеша — не все хеши macOS созданы равными. Хэшированные итерации используются в качестве «фактора замедления», который, по сути, заставляет процессоры и графические процессоры значительно дольше обрабатывать одну попытку пароля. Количество итераций варьировалось в моих тестах против Мохаве и Высокой Сьерры. В некоторых случаях итерации были установлены на 27 000. В других случаях более 45 000. Установлено ли это значение случайным или специфическим для каждой версии macOS, неясно из моего цикла испытаний. Одно можно сказать наверняка: чем выше это значение, тем дольше Hashcat придется работать, чтобы взломать один хеш. Более высокие итерации могут быть разницей между 25 000 и только 1000 попыток ввода пароля в секунду. Чтобы определить количество итераций, использованных в извлеченном .plist, снова взгляните на хеш цели (показано ниже). В начале хэша между вторым и третьим знаками доллара ($) можно найти число итераций (27 548).
$ml$27548$ba6261885e...
  • Модель с графическим процессором — со старой видеокартой GeForce GTX 1060 и хешем с 27 548 итерациями можно выполнять ~ 8 000 попыток ввода пароля в секунду. Тип используемого графического процессора сильно повлияет на общую производительность атаки. Графические процессоры старше GTX 750ti не рекомендуются.

Как защитить себя от атак режима восстановления

Пользователи могут сделать несколько вещей для защиты от таких атак (см. Ниже). Общие рекомендации по защите macOS см. В «Руководстве по взлому macOS».

  • Включить встроенную защиту паролем. Чтобы предотвратить загрузку злоумышленника в режиме реального времени USB, однопользовательском режиме или режиме восстановления, установите пароль встроенного программного обеспечения. Микропрограмма запрашивает дополнительный пароль при загрузке, только если кто-то пытается загрузить MacBook в однопользовательском режиме, в диспетчере загрузки, на целевом диске или в режимах восстановления. Однако пароль самой прошивки не защитит жесткий диск в случае физического извлечения диска из MacBook. Для большей защиты включите шифрование жесткого диска.
  • Включить шифрование FileVault. FileVault можно включить, перейдя в «Системные настройки», затем «Безопасность и конфиденциальность» и нажав «Включить FileVault» (может потребоваться сначала разблокировать настройки). По завершении MacBook будет перезагружаться и запрашивать пароль для разблокировки компьютера при каждом запуске Mac. Никакой учетной записи не будет разрешено входить в систему автоматически, а для доступа к однопользовательскому режиму также потребуется пароль. Это лучший способ предотвратить атаки на зашифрованный диск, даже если он физически удален с ноутбука. Для защиты от злоумышленников рекомендуется использовать сложную парольную фразу длиной более 21 символа.

 



Поделись статьей с друзьями


35 просмотров



Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: