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

crunch — генерация словарей в Kali Linux

6 min read Безопасность Обновлено 31 Dec 2025
crunch: генерация словарей в Kali Linux
crunch: генерация словарей в Kali Linux

Скриншот рабочего стола Kali Linux

Введение

crunch — утилита для создания словарей, полезная в тестировании безопасности, подборе паролей и подготовке wordlist для инструментов типа hydra, john или hashcat. Ключевая идея: вы задаёте набор символов и длину слов — crunch генерирует все возможные строки по заданным правилам.

Определение: словарь (wordlist) — файл со списком строк (обычно паролей) для перебора или анализа.

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

Содержание (быстрый обзор)

  • Установка
  • Базовый синтаксис
  • Символьные наборы и диапазоны
  • Вывод в файл и управление размером
  • Режимы: bruteforce, комбинации, шаблоны, словари, без повторений
  • Комбинации с unix-командами
  • Методология выбора набора символов и длины
  • Чек-листы для разных ролей
  • Критерии приёмки, тест-кейсы и советы по оптимизации

Установка crunch на Kali Linux

Обычно crunch уже установлен в Kali. Если его нет, обновите пакеты и установите из репозиториев:

sudo apt update
sudo apt install crunch

Проверка помощи и страницы man:

crunch -h
man crunch

Вывод справки crunch -h в терминале

Базовый синтаксис

crunch   [options]

Где min — минимальная длина генерируемых слов, max — максимальная. Если нужно фиксированное число символов, задайте min и max одинаковыми.

Пример: все комбинации символов “abc” длиной ровно 3:

crunch 3 3 abc

Математическая формула: количество комбинаций для фиксированной длины L и размера набора S равно S^L. Формула помогает оценить объём выходного файла.

Задание символьных наборов

Вы можете указывать любой набор символов прямо в командной строке.

Примеры:

  • Нижние буквы, длина от 4 до 6:
crunch 4 6 abcdefghijklmnopqrstuvwxyz
  • Только цифры длиной 10:
crunch 10 10 0123456789

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

Вывод словаря в файл

Опция -o задаёт файл вывода:

crunch 4 4 abc123 -o wordlist.txt

Если файл уже существует, crunch перезапишет его.

Важно: учитывайте объём – файлы словарей могут быстро вырасти до десятков гигабайт. Оцените S^L до запуска (см. выше).

Режим bruteforce (-b)

Опция -b позволяет указать набор символов для брутфорс-генерации и управляет форматом вывода (часто используется для разбивки файлов по размеру). Пример:

crunch 6 6 -b 1234567890abcdef -o bruteforce.txt

Это создаст все возможные шестизначные комбинации из шестнадцатеричных символов. Используйте -b аккуратно: при большом наборе и длине объём быстро становится непрактичным.

Режим комбинаций (-c)

Опция -c используется для объединения наборов (в разных версиях crunch поведение может отличаться — смотрите man):

crunch 8 8 -c 1@% -o combinations.txt

Пример выше комбинирует наборы символов “1” и “@%” и генерирует восьмизначные строки. Перед использованием проверьте синтаксис в вашей версии crunch.

Шаблонный режим (-t)

Опция -t позволяет задать фиксированные подстроки и позиции для переменных символов. Символ @ (и другие метасимволы в конкретной реализации) обычно обозначает место для замены.

Пример:

crunch 8 8 -t MyPass@@@@ -o unique.txt

Где “MyPass” будет константой, а “@@@@” — четыре переменных символа. Набор символов для замен зависит от текущего набора по умолчанию (обычно алфавитно-цифровой), но его можно явно указать.

Практическое применение: генерация паролей с известным префиксом (корпоративные шаблоны, тестирование политик паролей).

Использование внешнего словаря (-f)

Опция -f или -d (в зависимости от версии) позволяет брать источником готовый файл со словами (например, /usr/share/dict/words):

crunch 6 6 -f /usr/share/dict/words -o dictionary-list.txt

Этот режим фильтрует/подбирает слова по длине из указанного словаря.

Генерация слов без повторяющихся символов (-p)

Опция -p запрещает повтор символов в словах (каждый символ уникален в слове):

crunch 6 6 -p ABCDEF -o non-repeating-words.txt

Реально полезно при тестировании систем, где пароли/ключи не допускают повтора символов.

Комбинирование с другими Linux-командами

crunch даёт поток на stdout, поэтому его удобно соединять с grep, sort, uniq, wc и другими утилитами:

crunch 6 6 abc123 | grep '^a' | sort | uniq > starts-with-a.txt
wc -l starts-with-a.txt

Пример интеграции с hydra (только при легальном тестировании):

hydra -L users.txt -P <(crunch 6 6 abc123) ssh://192.168.0.1

Заметка: синтаксис <(…) требует bash и генерации потока; будьте осторожны с размером входных данных.

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

  1. Определите цель: поиск слабых паролей, тест политик, проверка шаблонов.
  2. Соберите подсказки о целевой среде (длина пароля, используемые символы, префиксы).
  3. Вычислите размер пространства: S^L. Оцените лимиты по диску и скорости.
  4. Выберите режим: шаблон (-t) для известных фрагментов, словарь (-f) для реальных слов, -p для уникальных символов.
  5. Тестируйте на малых диапазонах, затем масштабируйте.

Эта методика помогает избегать создания гигантских ненужных списков.

Чек-листы по ролям

Pentester:

  • Проверить легальность теста.
  • Собрать информацию о минимальной/максимальной длине пароля.
  • Использовать шаблоны по корпоративным стандартам.
  • Лимитировать генерацию по объёму.

Системный администратор:

  • Использовать генерацию для теста политик сложных паролей.
  • Тестировать на изолированной среде.
  • Убедиться, что файлы со сгенерированными паролями защищены.

Исследователь/разработчик ПО:

  • Генерировать выборки для тестирования валидаторов.
  • Использовать -f для реальных слов.
  • Автоматизировать в CI на небольших объёмах.

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

  • Сгенерированный словарь содержит только допустимые символы.
  • Все записи имеют длину в заданном диапазоне.
  • При шаблоне (-t) фиксированные части не изменяются.
  • Нет несанкционированного утечки словаря (файлы защищены).

Тест-кейсы и приёмка

  1. Фиксированная длина: crunch 3 3 abc → выход = все строки длиной 3 из {a,b,c}.
  2. Шаблон: crunch 8 8 -t Admin@@@@ → каждая строка начинается с “Admin”.
  3. Без повторов: crunch 4 4 -p AB12 → никакие символы не повторяются.

Советы по производительности и безопасности

  • Начинайте с малых наборов и длины при тестировании.
  • Не храните чувствительные словари в общих директориях.
  • Используйте компрессию (gzip) для долгосрочного хранения: crunch … -o - | gzip > list.gz
  • При больших объёмах генерируйте на выделенном диске с достаточным пространством.

Когда подход не работает (контрпримеры)

  • Если пространство S^L слишком велико — brute-force непрактичен.
  • Для слов, зависящих от речевых особенностей языка, лучше использовать реальные словари и мутации.
  • Если пароль содержит контекстные маркеры (имя компании, даты), шаблоны с реальными подсказками эффективнее.

Мероприятия по снижению риска

  • Удаляйте временные файлы после тестирования.
  • Шифруйте архивы со словарями.
  • Храните журналы и результаты в изолированной среде.

Шпаргалка команд (cheat sheet)

# Установить
sudo apt install crunch

# Помощь
crunch -h
man crunch

# Примеры
crunch 3 3 abc
crunch 4 6 abcdefghijklmnopqrstuvwxyz
crunch 4 4 abc123 -o wordlist.txt
crunch 6 6 -b 1234567890abcdef -o bruteforce.txt
crunch 8 8 -t MyPass@@@@ -o unique.txt
crunch 6 6 -p ABCDEF -o non-repeating-words.txt
crunch 6 6 -f /usr/share/dict/words -o dictionary-list.txt

Совместимость и замечания по версиям

Разные дистрибутивы и версии crunch могут слегка отличаться в синтаксисе опций (-b, -c, -f, -p). Всегда проверяйте вывод crunch -h и man crunch в вашей среде.

Короткая процедура (SOP) для создания таргетированного словаря

  1. Собрать требования: допустимые символы, длина, шаблоны.
  2. Оценить объём S^L.
  3. Запустить генерацию на тестовой выборке.
  4. Применить фильтры (grep, sed, sort).
  5. Прогнать тестовый брутфорс на стенде.
  6. Удалить/зашифровать результаты.

Диаграмма выбора режима (Mermaid)

flowchart TD
  A[Начало] --> B{Есть ли шаблон?}
  B -- Да --> C[Использовать -t]
  B -- Нет --> D{Есть ли внешний словарь?}
  D -- Да --> E[Использовать -f]
  D -- Нет --> F{Нужны уникальные символы?}
  F -- Да --> G[Использовать -p]
  F -- Нет --> H[Стандартная генерация]
  C --> I[Оценить объём и запуск]
  E --> I
  G --> I
  H --> I
  I --> Z[Завершение]

Короткий глоссарий (одной строкой)

  • Wordlist: файл со списком возможных паролей/строк для перебора.
  • Charset: набор символов, используемых для генерации.
  • Шаблон: фиксированная часть строки + переменные позиции.

Итог и рекомендации

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

Краткие рекомендации:

  • Проверяйте help и man для вашей версии.
  • Начинайте с малого и масштабируйте осознанно.
  • Храните и передаёте результаты безопасно.

Спасибо за чтение. Применяйте инструмент ответственно и только в рамках правового поля.

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

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

Как включить и управлять синхронизацией в Chrome
Руководство

Как включить и управлять синхронизацией в Chrome

Dual Monitor Tools — управление мониторами
Продуктивность

Dual Monitor Tools — управление мониторами

10 способов исправить проблемы Google Chrome
Технологии

10 способов исправить проблемы Google Chrome

Gmail как RSS‑читалка — полная настройка
Продуктивность

Gmail как RSS‑читалка — полная настройка

Как обновить Safari на Mac
Mac

Как обновить Safari на Mac

Safari AutoFill: логины и карты — настройка и безопасность
Guides

Safari AutoFill: логины и карты — настройка и безопасность