crunch — генерация словарей в 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 [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 и генерации потока; будьте осторожны с размером входных данных.
Методология выбора набора символов и длины (мини-методика)
- Определите цель: поиск слабых паролей, тест политик, проверка шаблонов.
- Соберите подсказки о целевой среде (длина пароля, используемые символы, префиксы).
- Вычислите размер пространства: S^L. Оцените лимиты по диску и скорости.
- Выберите режим: шаблон (-t) для известных фрагментов, словарь (-f) для реальных слов, -p для уникальных символов.
- Тестируйте на малых диапазонах, затем масштабируйте.
Эта методика помогает избегать создания гигантских ненужных списков.
Чек-листы по ролям
Pentester:
- Проверить легальность теста.
- Собрать информацию о минимальной/максимальной длине пароля.
- Использовать шаблоны по корпоративным стандартам.
- Лимитировать генерацию по объёму.
Системный администратор:
- Использовать генерацию для теста политик сложных паролей.
- Тестировать на изолированной среде.
- Убедиться, что файлы со сгенерированными паролями защищены.
Исследователь/разработчик ПО:
- Генерировать выборки для тестирования валидаторов.
- Использовать -f для реальных слов.
- Автоматизировать в CI на небольших объёмах.
Критерии приёмки
- Сгенерированный словарь содержит только допустимые символы.
- Все записи имеют длину в заданном диапазоне.
- При шаблоне (-t) фиксированные части не изменяются.
- Нет несанкционированного утечки словаря (файлы защищены).
Тест-кейсы и приёмка
- Фиксированная длина: crunch 3 3 abc → выход = все строки длиной 3 из {a,b,c}.
- Шаблон: crunch 8 8 -t Admin@@@@ → каждая строка начинается с “Admin”.
- Без повторов: 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) для создания таргетированного словаря
- Собрать требования: допустимые символы, длина, шаблоны.
- Оценить объём S^L.
- Запустить генерацию на тестовой выборке.
- Применить фильтры (grep, sed, sort).
- Прогнать тестовый брутфорс на стенде.
- Удалить/зашифровать результаты.
Диаграмма выбора режима (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 для вашей версии.
- Начинайте с малого и масштабируйте осознанно.
- Храните и передаёте результаты безопасно.
Спасибо за чтение. Применяйте инструмент ответственно и только в рамках правового поля.
Похожие материалы
Как включить и управлять синхронизацией в Chrome
Dual Monitor Tools — управление мониторами
10 способов исправить проблемы Google Chrome
Gmail как RSS‑читалка — полная настройка
Как обновить Safari на Mac