Введение
В этой лабораторной работе вы узнаете, как оптимизировать производительность hashcat, мощного инструмента для восстановления паролей, используя его профили рабочей нагрузки (workload profiles). Настройка профиля рабочей нагрузки позволяет тонко настроить потребление ресурсов hashcat, обеспечивая баланс между скоростью взлома и общей отзывчивостью системы. Это крайне важно, когда вам необходимо выполнить длительную задачу взлома на машине, которая также используется для других действий.
Вы научитесь:
- Понимать различные профили рабочей нагрузки, доступные в
hashcat. - Устанавливать базовый уровень производительности (baseline performance benchmark).
- Тестировать и сравнивать профили "Низкая мощность" (Low Power) и "Высокая производительность" (High Performance).
- Применять эти знания на практике во время реального сценария взлома.
Понимание назначения профилей рабочей нагрузки с опцией -w
На этом этапе вы узнаете об опции -w (или --workload-profile) в hashcat. Эта опция управляет внутренним управлением рабочей нагрузкой hashcat, влияя на то, насколько сильно она нагружает ваш процессор (CPU) и графический процессор (GPU).
Существует четыре основных профиля:
-w 1(Низкая мощность / Low Power): Минимизирует использование ресурсов. Система остается очень отзывчивой, но скорость взлома значительно снижается. Идеально подходит для фоновой работы на рабочей станции.-w 2(По умолчанию / Default): Сбалансированный профиль, обеспечивающий хорошую производительность при сохранении разумной отзывчивости системы.-w 3(Высокая производительность / High Performance): Максимизирует скорость взлома, используя больше системных ресурсов. Система может стать медленной.-w 4(Кошмар / Nightmare): Для выделенных, высокооптимизированных установок для взлома. Он доводит оборудование до абсолютных пределов и может вызвать нестабильность системы или сбои на стандартных машинах.
Давайте начнем с просмотра справочной информации по этой конкретной опции. Это хорошая практика для понимания функций любого инструмента командной строки.
Выполните следующую команду в вашем терминале, чтобы найти описание опции профиля рабочей нагрузки в меню справки hashcat:
hashcat --help | grep "workload-profile"
Вы должны увидеть вывод, описывающий опцию -w и ее доступные уровни.
-w, --workload-profile | ## | Enable a specific workload profile. See below. | -w 3
Workload Profiles:
==================
## | Profile | Performance | Memory | Unattended | Base Tuning
-+-----------+-------------+--------+------------+-------------
1 | Low-Power | 10 % | 1/4 | No | -n 1 -u 1024
2 | Default | 90 % | 1/2 | No | -n 8 -u 256
3 | High-Perf | 100 % | Full | No | -n 64 -u 64
4 | Nightmare | 100 % | Full | Yes | -n 512 -u 32
Это подтверждает наличие различных профилей и дает представление об их влиянии на производительность и настройку системы.
Запуск бенчмарка для установления базового уровня
На этом этапе вы установите базовый уровень производительности. Базовый уровень — это стандартное измерение, которое вы можете использовать в качестве точки отсчета для сравнения. Мы запустим встроенный режим бенчмарка hashcat с настройками по умолчанию (эквивалент -w 2).
Режим бенчмарка (-b) позволяет hashcat измерять свою производительность на различных алгоритмах хеширования без необходимости использования каких-либо входных файлов с хешами. Мы специально протестируем алгоритм MD5, который обозначается номером режима 0 (-m 0).
Выполните следующую команду, чтобы начать бенчмарк для MD5:
hashcat -b -m 0
hashcat запустится и протестирует производительность вашей системы для типа хеша MD5. Обратите пристальное внимание на вывод. Через несколько мгновений будет отображена таблица результатов. Вас интересует столбец Speed (Скорость).
hashcat (v6.2.6) starting in benchmark mode
...
Hashtype: 0 - MD5
Speed.#1.........: 299.4 MH/s (46.38ms) @ Accel:128 Loops:256 Thr:64 Vec:1
...
Примечание: Скорость, которую вы увидите (например, 299.4 MH/s), будет варьироваться в зависимости от ресурсов виртуальной машины. Важно запомнить это число. Это ваш базовый уровень производительности с профилем рабочей нагрузки по умолчанию.
Тестирование профиля низкой мощности с опцией -w 1
На этом этапе вы протестируете профиль рабочей нагрузки "Низкая мощность" (Low Power). Как следует из названия, этот профиль разработан для бережного использования ресурсов вашей системы. Это идеальный выбор, когда вам нужно запускать hashcat в течение длительного времени, не влияя на вашу способность использовать компьютер для других задач.
Мы выполним тот же бенчмарк, что и на предыдущем шаге, но на этот раз добавим флаг -w 1, чтобы явно выбрать профиль низкой мощности.
Выполните следующую команду:
hashcat -b -m 0 -w 1
Снова hashcat выполнит бенчмарк для алгоритма MD5. Наблюдайте за выводом и найдите значение Speed (Скорость).
hashcat (v6.2.6) starting in benchmark mode
...
Hashtype: 0 - MD5
Speed.#1.........: 37.8 MH/s (48.13ms) @ Accel:1 Loops:1024 Thr:1 Vec:1
...
Сравните эту новую скорость с базовым уровнем, который вы записали на Шаге 2. Вы должны заметить, что скорость значительно ниже. Это демонстрирует компромисс: вы жертвуете сырой производительностью ради лучшей отзывчивости системы.
Тестирование профиля высокой производительности с опцией -w 3
На этом этапе вы протестируете профиль рабочей нагрузки "Высокая производительность" (High Performance). Этот профиль делает противоположное профилю низкой мощности: он предписывает hashcat использовать как можно больше системных ресурсов для достижения максимальной скорости взлома. Это профиль, который вы бы использовали на выделенной машине, где производительность является единственным приоритетом.
Давайте снова запустим бенчмарк, на этот раз используя флаг -w 3.
Выполните команду ниже:
hashcat -b -m 0 -w 3
hashcat выполнит бенчмарк MD5 с настройками высокой производительности. Проверьте значение Speed (Скорость) в выводе.
hashcat (v6.2.6) starting in benchmark mode
...
Hashtype: 0 - MD5
Speed.#1.........: 315.1 MH/s (43.80ms) @ Accel:64 Loops:64 Thr:64 Vec:1
...
Сравните эту скорость как с базовым уровнем (Шаг 2), так и с результатом профиля низкой мощности (Шаг 3). Вы должны увидеть, что это самая высокая скорость на данный момент, вероятно, даже выше, чем у профиля по умолчанию. Это подтверждает, что -w 3 успешно ставит скорость в приоритет перед отзывчивостью системы.
Сравнение производительности и отзывчивости системы
На этом заключительном этапе вы обобщите свои выводы и примените их к практической (хотя и простой) задаче взлома.
К настоящему моменту вы наблюдали следующую зависимость:
- Скорость (
-w 1) < Скорость (По умолчанию) < Скорость (-w 3)
Это наглядно демонстрирует компромисс, которым управляют профили рабочей нагрузки. Теперь давайте используем профиль высокой производительности для взлома образца хэша, который был подготовлен для вас в начале лаборатории. В каталоге ~/project содержатся файл хэша sample.hash и файл словаря wordlist.txt.
Мы будем использовать следующую команду:
-m 0: Указывает тип хэша MD5.-a 0: Выбирает прямой словарный перебор (straight dictionary attack).sample.hash: Файл, содержащий хэш для взлома.wordlist.txt: Файл, содержащий возможные пароли.-w 3: Профиль высокой производительности для максимально быстрого получения результата.
Выполните команду, чтобы начать процесс взлома:
hashcat -m 0 -a 0 sample.hash wordlist.txt -w 3
Поскольку пароль находится в нашем небольшом словаре, hashcat найдет его почти мгновенно. Вывод покажет взломанный хэш и соответствующий пароль.
...
Dictionary cache built:
* Filename..: wordlist.txt
* Passwords.: 4
* Bytes.....: 29
* Keyspace..: 4
81d38d4b393528b4c444097c69141559:labex
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 81d38d4b393528b4c444097c69141559
Time.Started.....: ...
Time.Estimated...: 0 secs
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 268.2 MH/s (0.01ms) @ Accel:64 Loops:64 Thr:64 Vec:1
Recovered........: 1/1 (100.00%) Digests
Progress.........: 4/4 (100.00%)
Rejected.........: 0/4 (0.00%)
Restore.Point....: 3/4 (75.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: 123456 -> labex
Hardware.Mon.#1..: Temp: 48c Util: 98% Core:1800MHz Mem:3500MHz Bus:16
Started: ...
Stopped: ...
Ключевая строка — 81d38d4b393528b4c444097c69141559:labex, которая показывает исходный хэш, за которым следует восстановленный пароль labex. Вы успешно использовали профиль рабочей нагрузки для оптимизации задачи взлома.
Итоги
Поздравляем с завершением этой лаборатории! Вы успешно научились использовать профили рабочей нагрузки hashcat для управления производительностью и системными ресурсами.
В этой лаборатории вы:
- Изучили назначение опции
-wи ее различные профили (-w 1,-w 2,-w 3). - Использовали режим бенчмарка (
-b) для установления базового уровня и измерения производительности при различных профилях. - Наблюдали прямую зависимость между скоростью взлома и отзывчивостью системы.
- Применили профиль высокой производительности к практической задаче взлома паролей.
Понимание того, как настраивать свои инструменты, является ключевым навыком для любого технического специалиста. Теперь вы можете применить эти знания для выбора подходящих настроек hashcat для любой ситуации, будь то максимальная скорость на выделенной машине или тихая фоновая задача на вашем персональном компьютере.


