Взломать хэши в Hashcat

HydraHydraBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь использовать Hashcat, самый быстрый в мире инструмент для восстановления паролей, чтобы взломать криптографические хэши. Вы научитесь устанавливать Hashcat, готовить файлы с хэшами, настраивать ускорение с использованием GPU и выполнять переборные атаки на примеры хэшей MD5.

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") wireshark/WiresharkGroup -.-> wireshark/installation("Installation and Setup") hydra/HydraGroup -.-> hydra/installation("Installation and Setup") subgraph Lab Skills nmap/installation -.-> lab-549929{{"Взломать хэши в Hashcat"}} wireshark/installation -.-> lab-549929{{"Взломать хэши в Hashcat"}} hydra/installation -.-> lab-549929{{"Взломать хэши в Hashcat"}} end

Установка Hashcat

На этом этапе вы установите Hashcat, самый быстрый в мире инструмент для восстановления паролей. Hashcat представляет собой мощный инструмент, используемый для взлома хэшей с помощью различных методов атаки, таких как перебор (brute-force), использование словарей и атаки на основе правил.

Прежде чем приступить, давайте разберемся, что такое хэши. Хэш - это строка фиксированной длины, сгенерированная математической функцией, которая принимает на вход данные (например, пароль) и выдает зашифрованный результат. Системы хранения паролей для обеспечения безопасности хранят именно эти хэши, а не пароли в открытом виде. Hashcat помогает восстановить исходный пароль, пытаясь различные комбинации, чтобы подобрать совпадающий с сохраненным хэшем.

Сначала убедимся, что мы находимся в правильной рабочей директории. Директория ~/project - это место, где мы будем выполнять все операции нашей лабораторной работы:

cd ~/project

Теперь установим Hashcat с помощью пакетного менеджера Ubuntu. Пакетный менеджер отвечает за загрузку и настройку программного обеспечения вместе с его зависимостями. Мы выполним два команды одновременно: сначала обновим список пакетов (update), а затем установим Hashcat (install):

sudo apt-get update && sudo apt-get install -y hashcat

Флаг -y автоматически подтверждает установку, избавляя нас от необходимости вводить 'yes' в процессе.

После завершения установки убедимся, что Hashcat правильно установлен, проверив его версию. Это хорошая практика, чтобы убедиться, что программное обеспечение готово к использованию:

hashcat --version

Вы должны увидеть вывод, показывающий номер установленной версии, например:

v6.2.6

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

Подготовка файла с хэшами

На этом этапе вы создадите пример файла с хэшами, который будет использоваться для взлома на последующих этапах. Хэш - это строка фиксированной длины, сгенерированная криптографическим алгоритмом, представляющая входные данные. Файлы с хэшами содержат эти криптографические хэши, которые мы попытаемся взломать с помощью Hashcat.

Сначала убедитесь, что вы находитесь в правильной рабочей директории. Команда cd изменяет текущую директорию:

cd ~/project

Создадим простой текстовый файл, содержащий хэши MD5. MD5 - это широко используемая криптографическая хэш - функция, которая генерирует 128 - битное хэш - значение. Мы воспользуемся текстовым редактором nano для создания и редактирования нового файла:

nano hashes.txt

Добавьте в файл следующие примеры хэшей MD5. Это распространенные тестовые хэши с известными значениями в открытом виде (нажмите Ctrl+O для сохранения и Ctrl+X для выхода из nano):

5f4dcc3b5aa765d61d8327deb882cf99  ## password: "password"
098f6bcd4621d373cade4e832627b4f6  ## password: "test"

В качестве альтернативы вы можете создать файл напрямую с помощью команд echo. Оператор > создает новый файл, а >> добавляет данные в существующий файл:

echo "5f4dcc3b5aa765d61d8327deb882cf99" > hashes.txt
echo "098f6bcd4621d373cade4e832627b4f6" >> hashes.txt

Проверьте содержимое файла с хэшами с помощью команды cat, которая отображает содержимое файла в терминале:

cat hashes.txt

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

Настройка поддержки GPU

На этом этапе вы настроите Hashcat для использования ускорения с помощью GPU для более быстрого взлома хэшей. Hashcat может использовать как ресурсы CPU, так и GPU, но GPU особенно эффективны для взлома паролей, так как они содержат тысячи небольших ядер, которые могут выполнять множество вычислений одновременно. Эта возможность параллельной обработки делает GPU намного быстрее, чем CPU для переборных атак.

Перед настройкой поддержки GPU сначала проверим, какие аппаратные устройства доступны для Hashcat. Запустите эту команду, чтобы вывести список всех обнаруженных устройств OpenCL:

hashcat -I

Эта команда отобразит доступные устройства OpenCL. В среде виртуальной машины LabEx вы должны увидеть вывод, похожий на следующий:

OpenCL Platform #1: NVIDIA Corporation
* Device #1: NVIDIA GeForce GTX 1080 Ti, 10240/11264 MB allocatable, 28MCU

Вывод показывает детали вашего GPU, включая его модель и объем памяти. Теперь мы создадим файл конфигурации для оптимизации производительности Hashcat. Файлы конфигурации помогают автоматизировать настройки, чтобы вам не приходилось вводить их каждый раз.

Создайте и отредактируйте файл конфигурации с помощью команды:

nano ~/.hashcat/hashcat.conf

Добавьте следующую конфигурацию (нажмите Ctrl+O для сохранения и Ctrl+X для выхода):

--force
--opencl-device-types=1,2
--workload-profile=4

Разберем, что делает каждый параметр:

  • --force сообщает Hashcat продолжать работу, даже если он обнаруживает потенциальные проблемы (полезно в лабораторных условиях)
  • --opencl-device-types=1,2 включает как CPU (тип 1), так и GPU (тип 2) для обработки
  • --workload-profile=4 устанавливает профиль с максимальной производительностью, приоритет отдается скорости, а не экономии энергии

Чтобы убедиться, что все работает правильно, запустите тест производительности:

hashcat -b

Тест производительности проверит различные хэш - алгоритмы и отобразит метрики производительности, такие как:

Speed.#1.........: 12345.7 MH/s (98.23ms) @ Accel:1024 Loops:1024 Thr:256 Vec:1

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

Запуск переборной атаки

На этом этапе вы выполните переборную атаку с использованием Hashcat для взлома хэшей MD5, которые мы подготовили ранее. Переборная атака представляет собой метод проб и ошибок, при котором систематически проверяются все возможные комбинации символов до тех пор, пока не будет найден правильный пароль. Этот подход особенно полезен, когда у вас нет информации о структуре пароля.

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

cd ~/project

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

  • -m 0 сообщает Hashcat, что мы работаем с хэшами MD5 (каждый тип хэша имеет определенный номер в Hashcat)
  • -a 3 устанавливает режим атаки на перебор
  • ?a?a?a?a определяет маску пароля - это означает, что мы ищем пароли длиной ровно 4 символа, которые могут включать:
    • Строчные буквы (a - z)
    • Заглавные буквы (A - Z)
    • Цифры (0 - 9)
    • Специальные символы (!@#$% и т.д.)

Выполните переборную атаку с помощью этой команды:

hashcat -m 0 -a 3 hashes.txt ?a?a?a?a --force

Во время работы Hashcat будет отображать статистику в режиме реального времени в вашем терминале. Этот вывод поможет вам отслеживать ход взлома:

Session..........: hashcat
Status...........: Running
Hash.Name........: MD5
Hash.Target......: hashes.txt
Time.Started.....: [timestamp]
Speed.#1.........: [speed] H/s
Recovered........: 0/2 (0.00%)
Progress.........: [progress]
Rejected.........: 0
Restore.Point....: 0

Скорость взлома (H/s) показывает, сколько хэш - вычислений ваша система выполняет в секунду. Индикатор прогресса помогает оценить оставшееся время. Для 4 - символьного пароля это может занять несколько минут в зависимости от вашего оборудования.

После завершения атаки мы можем проверить результаты. Следующая команда отображает все успешно взломанные пароли:

hashcat -m 0 hashes.txt --show

При успешном выполнении каждая строка будет содержать хэш и соответствующий ему открытый пароль:

5f4dcc3b5aa765d61d8327deb882cf99:password
098f6bcd4621d373cade4e832627b4f6:test

Этот вывод подтверждает, что Hashcat успешно восстановил оба хэша MD5 в нашем тестовом файле до их исходных паролей. Первая колонка показывает исходный хэш, а вторая колонка - фактический пароль, который создал этот хэш.

Проверка взломанных хэшей

На этом последнем этапе вы проверите и проанализируете результаты переборной атаки. Hashcat автоматически сохраняет успешно взломанные пароли в специальный файл, называемый "potfile". Этот файл действует как база данных всех паролей, которые вы восстановили во время сеансов взлома. Мы проверим его, чтобы убедиться, какие пароли были успешно взломаны.

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

cd ~/project

Чтобы просмотреть все взломанные хэши из вашей атаки, мы используем флаг --show с Hashcat. Эта команда ищет хэши MD5 (режим 0) в нашем файле hashes.txt и отображает все совпадения, найденные в potfile:

hashcat -m 0 hashes.txt --show

Вы должны увидеть вывод, похожий на следующий, где показан исходный хэш, за которым следует взломанный открытый пароль:

5f4dcc3b5aa765d61d8327deb882cf99:password
098f6bcd4621d373cade4e832627b4f6:test

Для более полного понимания вашего сеанса взлома флаг --status предоставляет ценную статистику. Он показывает, сколько хэшей было взломано, тип хэша и метрики производительности:

hashcat -m 0 hashes.txt --status

Это отобразит важную информацию, включая:

Session.Name.....: hashcat
Status..........: Exhausted
Hash.Name.......: MD5
Hash.Target.....: hashes.txt
Time.Started....: [timestamp]
Time.Estimated..: [timestamp]
Recovered.......: 2/2 (100.00%)
Progress.......: [progress]
Speed.#1.......: [speed] H/s

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

hashcat -m 0 hashes.txt --outfile-format=2 --outfile=results.txt
cat results.txt

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

Резюме

В этом практическом занятии вы узнали, как установить и настроить Hashcat, мощный инструмент для восстановления паролей, путем обновления менеджера пакетов и проверки его версии. Вы также подготовили файл с хэшами, содержащий примеры хэшей MD5, и подтвердили его содержимое с использованием базовых команд Linux.

Кроме того, вы исследовали поддержку GPU в Hashcat для оптимизации производительности и провели переборную атаку для взлома примеров хэшей. Эта практическая задача продемонстрировала важную роль Hashcat в области кибербезопасности для восстановления паролей и оценки уязвимостей.