Гид по технологиям

Взлом хэшей в Linux с hashcat

7 min read Кибербезопасность Обновлено 26 Dec 2025
Взлом хэшей в Linux с hashcat
Взлом хэшей в Linux с hashcat

Взлом хэшей в Linux с помощью hashcat

Что такое хэши

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

Краткие свойства хеширования:

  • Быстро вычисляются.
  • Детеминированы: один и тот же вход даёт один и тот же результат.
  • Малые изменения во входе кардинально меняют выход.
  • Надёжные алгоритмы минимизируют вероятность коллизий (разных входов с одинаковым выводом).

Важно: хеширование отличают от шифрования тем, что для хэша обычно нет «ключа», который позволил бы восстановить исходные данные.

Зачем использовать hashcat

Hashcat — это многопоточный инструмент для перебора паролей по хэшам. Его основные преимущества:

  • Поддержка сотен алгоритмов (MD5, NTLM, bcrypt, SHA-* и др.).
  • Несколько режимов атак: словарные, комбинаторные, правила, маски, гибридные и брутфорс.
  • Использование как CPU, так и GPU для ускорения.
  • Кроссплатформенность: Windows, Linux, BSD и др.

Краткое руководство по выбору режима атаки:

  • Словарь — быстрый старт при наличии предположений о пароле.
  • Правила — расширяют словарь преобразованиями (Append, Prepend, заменами).
  • Маска — эффективна, когда известен формат пароля (например, 2 буквы + 4 цифры).
  • Брутфорс — гарантированно найдёт пароль в пределах заданного алфавита и длины, но может быть крайне медленным.

Режимы атак hashcat — что они делают и когда не работают

  1. Словарная атака (dictionary)

    • Описание: проверяет слова из файла-словника против хэша.
    • Подходит если цель использует простые или скомпрометированные пароли.
    • Когда не работает: пользователи применяют длинные случайные пароли или фразы.
  2. Правила (rule-based)

    • Описание: применяет трансформации к словнику (замены, добавления символов, изменение регистра).
    • Подходит для экономии времени при известных паттернах пользователя.
    • Когда не работает: если пароль полностью случайный.
  3. Маска (mask)

    • Описание: перебор по заранее заданной структуре (например ?u?l?d?d — загл, стр, цифра, цифра).
    • Подходит при знании формата (микросервисы, шаблоны учета паролей).
    • Когда не работает: когда формат неизвестен или слишком вариативен.
  4. Комбинационная атака

    • Описание: комбинирует два словника (например имя + год).
    • Подходит при использовании комбинаций знакомых слов.
  5. Брутфорс

    • Описание: полный перебор всех возможных комбинаций в заданном диапазоне.
    • Подходит как крайняя мера.
    • Когда не работает: при отсутствии времени и слишком большой поисковой области.
  6. Гибрид (dictionary + mask)

    • Описание: берёт слово из словника и дополняет маской (например пароль + 2 цифры).
    • Подходит при частичном знании структуры пароля.

Как установить hashcat в Linux

Установка в разных дистрибутивах (выполняйте от пользователя с sudo):

Ubuntu / Debian:

sudo apt update
sudo apt install hashcat

Fedora / RHEL / CentOS (dnf):

sudo dnf update
sudo dnf install hashcat

Arch Linux:

sudo pacman -Syu
sudo pacman -S hashcat

Проверка после установки:

hashcat --help

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

Основные опции hashcat

КороткаяПараметрОписание
-mтип хэшаРеференсный номер типа хэша (например в примере SHA512 — 1800)
-aрежим атаки0 — словарь, 1 — комбинатор, 3 — брутфорс/маска и т.д.
-ooutput-fileСохранение найденных паролей в файл
wordlistПуть к словарю паролей (файл)

Примечание: hashcat использует числовые коды для типов хэшей; найдите соответствие через справку или документацию.

Важно: перед запуском убедитесь, что у вас есть законное разрешение на тестирование целевой системы.

Пример: извлечение хэшей из /etc/shadow и взлом

Файл /etc/shadow в Linux хранит хэши паролей. Он доступен только root. Если вы получили его копию незаконным способом — это инцидент безопасности. В тестовой среде или с разрешения можно провести анализ.

Создадим тестового пользователя и зададим пароль (демонстрация в контролируемой среде):

sudo su
sudo useradd -c "Alice" alice
passwd alice

Посмотреть строку пользователя в /etc/shadow:

grep '^alice:' /etc/shadow

Пример вывода (обрезано):

alice:$y$j9T$TANXgpk59y8r3jgPbDl/w/$UqiK6yahwqfyqhcegWLa1.z64TyePP5.VQpUnLqI3VD:19023:0:99999:7::

Сохраните строку хэша в файл hash.txt:

echo 'alice:$y$j9T$TANXgpk59y8r3jgPbDl/w/$UqiK6yahwqfyqhcegWLa1.z64TyePP5.VQpUnLqI3VD' > hash.txt

Определение типа хэша:

  • В /etc/login.defs может содержаться ENCRYPT_METHOD.
grep ENCRYPT_METHOD /etc/login.defs

Хэш пароля пользователя Alice и метод хеширования

  • Вы также можете искать подсказки в значении префикса ($6$ — обычно SHA512). Проверка через hashcat можно выполнить так:
hashcat -h | grep -i sha512

Поиск режима sha512 в справке hashcat

В примере SHA512 в hashcat соответствует коду 1800. Запускаем атаку словарём rockyou (пример в тестовой среде):

hashcat -m 1800 -a 0 hash.txt /usr/share/wordlists/rockyou.txt

Фрагмент вывода (обозначено ):


.
.
$y$j9T$TANXgpk59y8r3jgPbDl/w/$UqiK6yahwqfyqhcegWLa1.z64TyePP5.VQpUnLqI3VD:12345
.
.

Примечание: в Kali Linux rockyou.txt часто предустановлен в /usr/share/wordlists. Для других дистрибутивов можно искать словари или скачать из репозиториев:

locate wordlists | less

Пример расположения словарей в Kali Linux

Пример загрузки словаря из репозитория (в исходной статье использован пример):

wget https://github.com/danielmiessler/SecLists/blob/master/Passwords/Leaked-Databases/rockyou-20.txt

Методология для тестировщика (мини-плейбук)

  1. Сбор и валидация:
    • Убедитесь в правовом основании теста.
    • Соберите копию /etc/shadow и /etc/passwd (в тестовой среде).
  2. Идентификация:
    • Определите формат хэша (префиксы, login.defs, справка hashcat).
  3. Подготовка словарей:
    • Начните со стандартных словарей и локальных списков (rockyou, SecLists).
    • Постройте пользовательские словари по профайлу цели.
  4. Выбор режима:
    • Словарь + правила → маска → брутфорс (по возрастанию затрат).
  5. Запуск и мониторинг:
    • Контролируйте нагрузку на систему и использование GPU.
    • Сохраняйте найденные пары в файл с -o.
  6. Отчёт и ремедиация:
    • Документируйте методику, время и найденные пароли.
    • Предложите рекомендации по защите.

Критерии приёмки:

  • Получен список успешных паролей для тестовых аккаунтов.
  • Подготовлены рекомендации по исправлению уязвимостей.
  • Работа проведена в рамках согласованных правил и времени.

Чек-лист ролей: Ред-тим и Сисадмин

Ред-тим:

  • Иметь письменное разрешение на тестирование.
  • Собрать артефакты: /etc/shadow, конфиги, профайлы.
  • Использовать отдельную тестовую среду при возможности.
  • Логировать все команды и результаты.

Сисадмин:

  • Проверить, что /etc/shadow доступен только root.
  • Включить сложную политику паролей и MFA.
  • Использовать современный KDF (argon2id, bcrypt или scrypt) с параметрами, соответствующими производительности.
  • Проводить периодическую смену и аудит паролей.

Защита от атак восстановления паролей

Практические рекомендации по защите учетных записей и хэшей:

  • Использовать сильные KDF: argon2id (предпочтительный), bcrypt, scrypt. Эти алгоритмы намеренно медленные и затратные по памяти, что замедляет перебор.
  • Добавлять соль (salt) к каждому паролю — уникальную и длинную.
  • Увеличивать коэффициент итераций/параметры нагрузки KDF с учётом возможностей сервера.
  • Включать многофакторную аутентификацию (MFA).
  • Ограничивать доступ к файлу /etc/shadow и проводить мониторинг чтения/копирования системных файлов.
  • Принудительная смена пароля при подозрительных утечках.

Безопасная политика паролей:

  • Минимальная длина не менее 12–16 символов для пользовательских паролей.
  • Поощрение случайно сгенерированных паролей и использование менеджеров паролей.

Когда hashcat не поможет быстро

  • Пароль длинный и случайный (генератор паролей/фразы).
  • Используется сильный KDF с высокой стоимостью (argon2id с высокой памятью и временем).
  • Пароль состоит только из символов вне выбранного алфавита или использует Unicode-символы, не учтённые в маске.

Дополнительные инструменты и альтернативы

  • John the Ripper — альтернатива для восстановления паролей, имеет свои режимы и плагины.
  • Hash-Identifier / online resources — для предварительной идентификации типа хэша (только для известных и разрешённых случаев).
  • GPU-ускорение и распределённые очереди — применять с осторожностью и правовым обоснованием.

Блок с полезными шаблонами и сочетаниями команд

Пример запуска rule-based атаки с выводом в файл:

hashcat -m 1800 -a 0 -r /usr/share/hashcat/rules/best64.rule hash.txt /usr/share/wordlists/rockyou.txt -o cracked.txt

Пример маски (одна заглавная, 5 строчных, 2 цифры):

hashcat -m 1800 -a 3 hash.txt ?u?l?l?l?l?l?d?d

Запуск в режиме комбинаторики (2 словаря):

hashcat -m 1800 -a 1 hash.txt dict1.txt dict2.txt

Этические и правовые замечания

  • Всегда имейте письменное разрешение на тестирование. Несанкционированное получение и использование хэшей — преступление.
  • Инструменты восстановления паролей применимы только в контролируемой среде или в рамках разрешённого пентеста.

Краткое резюме

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

Важно: любой тест должен проводиться в рамках правового поля и корпоративной политики.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро