Crunch
Описание Crunch
Crunch — это генератор списка слов, в котором вы можете указать один из стандартных наборов символов (цифры, большие и маленькие буквы) или набор символов по своему выбору. crunch может генерировать все возможные комбинации и перестановки в соответствии с заданными критериями. Данные, которые выводит crunch, могут быть отображены на экране, сохранены в файл или переданы в другую программу.
Особенности:
- crunch генерирует списки слов (словари) как методом комбинации, так и методом перестановки
- он может разбить вывод по количеству строк или размеру файла
- поддерживается возобновление процесса после остановки
- образец (паттерн) поддерживает числа и символы
- образец поддерживает по отдельности символы верхнего и нижнего регистра
- работая с несколькими файлами, выводит отчёт о статусе
- новая опция -l для буквальной поддержки, @,% ^
- новая опция -d для ограничения дублирования символов, смотрите man-файл для деталей
- поддержка unicode
Домашняя страница: http://sourceforge.net/projects/crunch-wordlist/
Автор: bofh28
Лицензия: GPLv2
Справка по Crunch
синтаксис:
./crunch <с_длина> <до_длина> [-f <путь до набор_символов.lst> имя набора символов] [-o wordlist.txt или START] [-t [FIXED]@@@@] [-s блок_начала]
Опции
-b : максимум байт для записи в файл вывода. зависит от размера блоков файлов, может быть меньше на несколько байтов чем установлено, но никогда не больше. -c : количество строк для записи в файл вывода, работает только если используется "-o START", например: 60. Файл вывода будет в формате "начальные буквы-конечные буквы", например: crunch 1 5 -f /pentest/password/charset.lst mixalpha -o START -c 52 создаст 2 файла: a-7.txt и8-\ .txt. Причина наличия слэша во втором файле в том, что он экранирует пробел. Да его нужно писать, когда указываете имя файла с пробелом. -d : установка -d [n][@,%^] подавляет генерацию строк с более чем [n] смежных дубликатов из заданного набора символов. Например: ./crunch 5 5 -d 2@ Напечатает все комбинации с 2 или менее смежными дубликатами в нижнем регистре. -e : говорит crunch остановить генерацию слов в строку. Полезно когда передаёте вывод crunch в другую программу. -f : путь до файла содержащего список набора символов, например: charset.lst имя набора символов в файле выше, например: mixalpha-numeric-all-space -i : инвертирует вывод так, что первый символ будет меняться очень часто -l : буквальные символы для использования в -t @,%^ -o : позволяет вам указать файл для записи вывода, например: wordlist.txt -p : печатает перестановки без повторяющихся символов. Эта опция НЕ МОЖЕТ использоваться с -s. Она также игнорирует минимальную и максимальную длины. -q : Как и опция -p, но читает строку из указанного файла. Она НЕ МОЖЕТ быть использована с -s. Она также игнорирует минимальные и максимальные длины. -r : возобновить предыдущую сессию. Вы должны использовать ту же самую командную строку как и в предыдущей сессии. -s : позволяет вам указывать начальную строку, например: 03god22fs -t [FIXED]@,%^ : позволяет вам указывать паттерн, например: @@god@@@@ где только @ будут изменены на буквы нижнего регистра , будут заменены на буквы верхнего регистра % будут заменены на цифры ^ будет заменён на символы -u : Опция -u отключает поток вывода процентов. Она должна быть последней опцией. -z : добавляет поддержку для сжатия сгенерированного вывода. Должна использоваться с опцией -o. Поддерживает только gzip, bzip, lzma и 7z.
Использование crunch
Простой пример использования:
crunch <минимальная-длина> <максимальная-длина> [набор символов]
Например:
crunch 3 7 abcd
Этот пример создаст все пароли от 3 до 7 символов, содержащих символы 'abcdef' в качестве набора символов и выведет всё это в стандартный вывод.
Ещё один пример:
crunch <минимальная-длинна> <максимальная длина> [-f <путь до charset.lst> имя-набора-символов] [-o wordlist.txt или START] [-t [FIXED]@@@@] [-s начальный_блок]
- @ означает символы в нижнем регистре
- , означает символы в верхнем регистре
- % означает цифры
- ^ означает разные символы, общим количеством 33. Вы можете посмотреть их командой:
crunch 1 1 -t ^
Как создать словарь в crunch
Перейдите в Приложения > Kali Linux > Password Attacks > crunch
Или введите в Терминале:
crunch
Правила для создания словаря.
crunch <min> <max> <charset> -t <pattern> – o <filename.lst>
Где,
- min = минимальное количество символов в паролях словаря
- max = максимальное количество символов в паролях словаря
- charset = символы, которые хотите добавить в пароли в словаре. Например: abcd или 123455
- pattern = образец пароля. Например хотите создать словарь вида 98*******, т.е. первые две цифры будут статические и последние цифры — переменными.
Например, я хочу создать словарь из минимум 10 цифр, максимум 10 цифр, с символами abcd987 и образцом abc@@@@@@@ с последующим сохранением файла словаря на рабочем столе.
Вводим в терминале:
crunch 10 10 abcd987 -t abc@@@@@@@ -o /root/Рабочий\ стол/file.txt
это создаст 823543 комбинаций пароля.
Руководство по Crunch
ОПИСАНИЕ. ОБЯЗАТЕЛЬНЫЕ ОПЦИИ
Crunch может создавать словарь, основанный на указанных вами критериях. Вывод из crunch может быть отправлен на экран, файл или в другую программу. Требуемыми параметрами являются:
минимальная-длинна
Минимальная длина строки, с которой вы хотите чтобы crunch начал. Эта опция требуется даже для параметров, которые не будут использовать эту величину.
максимальная-длинна
Максимальная длина строки, с которой вы хотите чтобы crunch начал. Эта опция требуется даже для параметров, которые не будут использовать эту величину.
строка набор-символов
Вы можете указать в командной строке набор символов для использования в crunch или оставить его пустым, чтобы crunch использовал набор символов по умолчанию. Символы ДОЛЖНЫ указываться в следующем порядке: буквы нижнего регистра, буквы верхнего регистра, цифры, а затем символы. Если вы не будете следовать этому порядку, то вы не получите результата который хотите. Вы ДОЛЖНЫ указать или величины для типа символов или знак плюс.
ПРИМЕЧАНИЕ: Если вы хотите включить символ пробела в ваш набор символов, вы должны экранировать его символом \ или заключить ваш набор символов в кавычки, например, "abc ". Смотрите примеры 3, 11, 12 и 13 для большего понимания.
НЕОБЯЗАТЕЛЬНЫЕ ОПЦИИ
-b число[тип]
Определяет размер файла вывода, работает только если используется -o START, например: 60MB.
Имена выводных файлов будут в формате «начальные буквы-конечные буквы», пример:
./crunch 4 5 -b 20mib -o START
сгенерирует 4 файла: aaaa-gvfed.txt, gvfee-ombqy.txt, ombqz-wcydt.txt, wcydu-zzzzz.txt.
Валидными величинами для типов являются kb, mb, gb, kib, mib, and gib. Первые три типа основываются на 1000, а последние три типа основываются на 1024.
ПРИМЕЧАНИЕ: между цифрой и типом нет пробела. Например, 500mb — это правильно, а 500 mb — это НЕ правильно.
-c число
Задаёт число строк для записи в файл вывода, работает только если используется -o START, пример: 60.
Имена выводных файлов будут в формате «начальные буквы-конечные буквы», например:
./crunch 1 1 -f /pentest/password/crunch/charset.lst mixalpha-numeric-all-space -o START -c 60
создаст 2 файла: a-7.txt и 8-\ .txt. Причина наличия слэша во втором имени файлов: конечный символ — пробел, который должен быть экранирован для его печати. Да, вам нужно добавить \ когда указываете имя файла, поскольку последний символ — это пробел.
-d числосимволы
Ограничивает количество повторяющихся одинаковых символов. -d 2@ ограничивает вывод для символов нижнего регистра, к примеру в выводе будут слова от aab до aac. aaa не будет сгенерировано, поскольку имеет три последовательных буквы a. Формат: число, а за ним символ, где число — это максимальное количество последовательных символов, а символ — это тот символ из набора знаков, который вы хотите ограничить, к примеру @,%^. Смотрите примеры 17-19.
-e строка
Указывает, когда crunch должен остановиться досрочно. При генерации этой строки (пароля) программа прекращает свою работу.
-f /путь/до/набора/символов.lst имя-набора-символов
Указывает набор символов из charset.lst. В Kali Linux этот файл размещён здесь: /usr/share/crunch/charset.lst.
-i
Инвертирует вывод, т. е. вместо aaa,aab,aac,aad и т. д., вы получите aaa,baa,caa,daa,aba,bba и т.д.
-l
Когда вы используете опцию -t, эта опция говорит crunch какой символ нужно обрабатывать буквально. Это позволит вам использовать буквы в качестве заполнителей в паттернах. Опция -l должна быть такой же длины как опция -t. Смотрите пример 15.
-m
Объединена с -p. Пожалуйста, вместо неё используйте -p.
-o wordlist.txt
Указывает файл для записи вывода, например: wordlist.txt
-p символы ИЛИ -p слово1 слово2 …
Говорит crunch генерировать слова, которые не имеют повторяющихся символов. По умолчанию crunch будет генерировать словарь, размер которого можно посчитать по формуле: (количество символов в наборе символов) в степени (максимальная длина слов). Вместо этого эта опция будет генерировать количество слов равное факториалу количества символов в наборе символов. Например, набор символов abc и максимальная длина — 4. По умолчанию Crunch создаст 3^4 = 81 слов. При использовании этой опции будет сгенерировано 3! = 3x2x1 = 6 слов (abc, acb, bac, bca, cab, cba). ОНА ДОЛЖНА БЫТЬ ПОСЛЕДНЕЙ ОПЦИЕЙ! Эта опция НЕ МОЖЕТ использоваться с -s и она игнорирует максимальную и минимальную длину паролей, при этом вам всё равно нужно указывать эти два числа.
-q имя_файла.txt
Говорит crunch прочитать имя_файла.txt и перемешать то, что прочитано. Это похоже на опцию -p, но разница в том, что вывод берётся из имя_файла.txt.
-r
Говорит crunch возобновить генерацию слов с того места, где она была прервана. -r работает только если вы используете -o. Вы должны использовать ту же команду как используется оригинальная команда для генерации слов. Единственное исключение — это опция -s. Если ваша оригинальная команда использует опцию -s, вы ДОЛЖНЫ удалить её перед возобновлением сессии. Просто добавьте -r в конец оригинальной команды.
-s начало_блока
Указывает начало строки, например: 03god22fs
-t @,%^
Определяет паттерны (образцы), например @@god@@@@ где будут изменяться только @, ,[запятая], % и ^.
- @ вставит буквы нижнего регистра
- , вставит буквы верхнего регистра
- % вставит цифры
- ^ вставит символы
-u
Опция -u отключает поток печати процентов. Она должна быть последней опцией.
-z gzip, bzip2, lzma, и 7z
Сжимают вывод из опции -o. Валидными параметрами являются gzip, bzip2, lzma и 7z.
gzip — самый быстрый, но сжатие минимальное. bzip2 помедленнее чем gzip но имеет улучшенную компрессию. 7z самый медленный, но имеет наилучшее сжатие.
ПЕРЕНАПРАВЛЕНИЕ
Вы можете использовать вывод crunch и перенаправлять его по трубе (|) в другие программы. Двумя наиболее популярными программами для принятия вывода из crunch являются aircrack-ng и airolib-ng. Синтаксис следующий:
crunch 2 4 abcdefghijklmnopqrstuvwxyz | aircrack-ng /root/Mycapfile.cap -e MyESSID -w-
crunch 10 10 12345 --stdout | airolib-ng testdb -import passwd -
ПРИМЕЧАНИЯ
- Начиная с версии 2.6 crunch будет отображать как много данных генерируется. В 2.7 программа также будет отображать как много строк будет сгенерировано. Теперь Crunch будет ждать 3 секунды ДО начала генерации данных для того, чтобы дать вам время нажать Ctrl-C для отмены. Это сделано на тот случай, если количество будущих данных слишком велико и вы этого не оиждали.
- В charset.lst добавлены буквы нижнего регистра в шестнадцатеричном формате (0123456789abcdef) и буквы верхнего регистра в шестнадцатеричном формате (0123456789ABCDEF).
- Некоторые люди запросили добавление поддержки в crunch символов пробелов, crunch всегда имел поддержку символов пробелов в командной строке и в charset.lst. Для добавления пробела в командную строку вы должны его экранировать используя символ /. Смотрите синтаксис в примере 3. Возможно вам понадобиться экранировать некоторые другие символы вроде ! Или # - это зависит от вашей операционной системы.
- Начиная с 2.7 если вы генерируете файл, то каждые 10 секунд вы будете получать процент сделанного.
- Начиная с 3.0 автор изменил символ -t * на , поскольку * является зарезервированным символом. Вы всё ещё можете использовать его если поставите \ перед *. Да, это ломает синтаксис crunch и автор делает всё возможное для избежания этого, но в этом случае проще сделать это изменение для долгосрочной поддерджки.
- Некоторый вывод отсутствует. Файл не генерируется.
Это обычно объясняется тем, что у вас закончилось место на диске. Если вы перепроверили, что у вас предостаточно дискового пространства, значит наиболее вероятно, что проблема в имени файла, которое начинается с точки. В Linux имена файлы, имена которых начинаются с точки, являются скрытыми. Чтобы их увидеть сделайте так ls -l .*
- Crunch говорит, что максимальная и минимальная длины должны быть такого же размера, как и ваш паттерн, при этом длина установлена правильно.
Это обычно означает, что ваш паттерн содержит символы, которые нужно экранировать. В bash вам нужно экранировать следующее: &, *, пробел, \, (, ), |, ', ", ;, <, >.
Символом экранирования в bash является \. Поэтому паттерны, которые содержат & и * должны выглядеть примерно так:
crunch 4 4 -t \&\*d@
Альтернатива экранирования символов — это обёртывание строки кавычками. Например:
crunch 4 4 -t "&*d@"
Если вы хотите использовать " в вашем паттерне, вам нужно экранировать его примерно так:
crunch 4 4 -t "&*\"@"
Пожалуйста помните, что различные терминалы имеют различные символы экранирования и, возможно, имеют различные символы которые вы должны экранировать. Пожалуйста, проверьте страницу man для вашего терминала для поиска информации о символах экранирования и о тех символах, которые нужно экранировать.
- Когда используете опцию -z 7z, 7z не удаляет оригинальный файл. Вам нужно будет удалить его вручную.
Примеры запуска Crunch
Примеры использования crunch
Пример 1
crunch 1 8
crunch отобразит список слов, который начинается с a и заканчивается на zzzzzzzz
Пример 2
crunch 1 6 abcdefg
crunch отобразит список слов, в паролях которого используется набор abcdefg который начинается на a и заканчивается gggggg
Пример 3
crunch 1 6 abcdefg\
В конце строки есть символ пробела. Чтобы crunch мог использовать пробел, вам нужно экранировать его, поставив перед ним символ \. В этом примере вы можете также использовать кавычки вокруг букв тогда вам не нужен \, например "abcdefg ". Crunch отобразит список слов, использующих набор символов abcdefg , который начинается на a, а заканчивается на шесть пробелов.
Пример 4
crunch 1 8 -f charset.lst mixalpha-numeric-all-space -o wordlist.txt
crunch будет использовать набор символов mixalpha-numeric-all-space из charset.lst и выведет сгенерированные пароли в файл с названием wordlist.txt. Этот файл начнётся с a и закончится на " "
Пример 5
crunch 8 8 -f charset.lst mixalpha-numeric-all-space -o wordlist.txt -t @@dog@@@ -s cbdogaaa
crunch сгенерирует восьмисимвольный список слов, используя набор символов mixalpha-number-all-space из charset.lst и запишет список паролей в файл wordlist.txt. Файл начнётся с cbdogaaa и закончится на " dog "
Пример 6
crunch 2 3 -f charset.lst ualpha -s BB
crunch начнёт генерировать словарь с BB и закончит на ZZZ. Это полезно если вы должны остановить посередине генерацию словаря. Просто сделайте завершающий словарь и установите параметр -s на следующее слово в последовательности. Убедитесь, что переименовали оригинальный словарь ДО того, как вы начали, иначе crunch перезапишет существующий словарь.
Пример 7
crunch 4 5 -p abc
Номера не обрабатываются, но необходимы.
crunch сгенерирует abc, acb, bac, bca, cab, cba.
Пример 8
crunch 4 5 -p dog cat bird
Номера не обрабатываются, но необходимы.
crunch сгенерирует birdcatdog, birddogcat, catbirddog, catdogbird, dogbirdcat, dogcatbird.
Пример 9
crunch 1 5 -o START -c 6000 -z bzip2
crunch сгенерирует сжатые в bzip2 файлы, каждый из которых содержит по 6000 слова. Имена сжатых файлов будут в формате «первое_слово-последнее-слово.txt.bz2».
time ./crunch 1 4 -o START -c 6000 -z gzip real 0m2.729s user 0m2.216s sys 0m0.360s time ./crunch 1 4 -o START -c 6000 -z bzip2 real 0m3.414s user 0m2.620s sys 0m0.580s time ./crunch 1 4 -o START -c 6000 -z lzma real 0m43.060s user 0m9.965s sys 0m32.634s size filename 30K aaaa-aiwt.txt 12K aaaa-aiwt.txt.gz 3.8K aaaa-aiwt.txt.bz2 1.1K aaaa-aiwt.txt.lzma
Пример 10
crunch 4 5 -b 20mib -o START
сгенерирует 4 файла: aaaa-gvfed.txt, gvfee-ombqy.txt, ombqz-wcydt.txt, wcydu-zzzzz.txt. Первые три файла по 20 мегабайт и последний файл — 11 мегабайт.
Пример 11
crunch 3 3 abc + 123 '!@#' -t '@%^'
реализация пользовательских наборов символов. Будут сгенерированы слова в 3 символа (-t '@%^'). Первым символом будет буква из набора abc, вторым символом будет цифра из второго набора 123, и третьим символом будет символ из набора !@#. Важен порядок, в котором вы указываете символы. Вы должны их расположить в таком порядке: буквы нижнего регистра, буквы верхнего регистра, цифры и символы. Если вы не используете особенные наборы символов, то используйте знак плюс в качестве заполнителя. Как вы можете увидеть, в примере не используются буквы верхнего регистра, поэтому используется знак плюс в качестве заполнителя. Вышеприведённый пример начнётся с a1! и закончится на c3#.
Пример 12
crunch 3 3 abc + 123 '!@#' -t ^%@
сгенерирует трёхсимвольные слова, начинающиеся с !1a и заканчивающиеся на #3c.
Пример 13
crunch 4 4 + + 123 + -t %%@^
знак плюс (+) - это заполнитель, таким образом вы можете указать пользовательский набор символов для наборов любого типа. crunch будет использовать конкретный тип набора символов по умолчанию когда встречает знак плюс (+) в командной строке. Вы должны либо указать значения каждого типа наборов символов или использовать знак плюс. Т.е., если вы имеете два типа наборов символов вы ДОЛЖНЫ либо указать значения для каждого типа или использовать знак плюс. Т.е. в этом примере будут использоваться следующие наборы символов:
- abcdefghijklmnopqrstuvwxyz
- ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 123
- !@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/
на конце вышеприведённой строки есть пробел, вывод начнётся с 11a! и закончится за "33z ". Кавычки показывают пробел на конце строки.
Пример 14
crunch 5 5 -t ddd@@ -o j -p dog cat bird
любые символы отличные от @,%^ являются заполнителями для слов которые нужно переставлять. Символы @,%^ имеют ту же функцию, что и с -t. Если вы хотите использовать @,%^ в вашем выводе вы можете использовать опцию -l для указания, какие символы crunch должен воспринимать буквально.
Результатом будет
birdcatdogaa birdcatdogab birdcatdogac <пропуск> dogcatbirdzy dogcatbirdzz
Пример 15
crunch 7 7 -t p@ss,%^ -l a@aaaaa
crunch теперь будет обрабатывать символ @ как буквальный символ и не будет заменять символом буквы в верхнем регистре
будет сгенерировано следующее
p@ssA0! p@ssA0@ p@ssA0# p@ssA0$ <пропущено> p@ssZ9
Пример 16
crunch 5 5 -s @4#S2 -t @%^,2 -e @8 Q2 -l @dddd -b 10KB -o START
crunch сгенерирует пятисимвольные строки начиная с @4#S2 и заканчивая на @8 Q2. Вывод будет порублен в файлы размером по 10 килобайт, названных по образцу «начальные символы-конечные символы».
Пример 17
crunch 5 5 -d 2@ -t @@@%%
crunch сгенерирует пятисимвольные строки начиная с aab00 и кончая на zzy99. Обратите внимание, что присутствуют aaa и zzz.
Пример 18
crunch 10 10 -t @@@^%%%%^^ -d 2@ -d 3% -b 20mb -o START
crunch сгенерирует строки из 10 символов, начиная с aab!0001!! и заканчивая на zzy 9998. Вывод будет записан в файлы по 20 мегабайт.
Пример 19
crunch 8 8 -d 2@
crunch сгенерирует восьмисимвольные слова, в которых ограничено двумя количество одинаковых последовательных букв в нижнем регистре. Crunch начнёт с aabaabaa и закончит на zzyzzyzz.
Пример 20
crunch 4 4 -f unicode_test.lst japanese -t @@%% -l @xdd
crunch загрузить некоторые японские символы из файла набора символов unicode_test. Вы вод начнётся с @日00 и закончится в @語99.
Установка Crunch
Установка в Kali Linux
Программа предустановлена в Kali Linux.
Установка в BlackArch
sudo pacman -S crunch
Установка Crunch в Linux
Скачайте исходный код программы с официального сайта: http://sourceforge.net/projects/crunch-wordlist/
Это же можно сделать из командйно строки (будет загружена самая последняя версия):
wget https://sourceforge.net/projects/crunch-wordlist/files/latest/download -O crunch-.tgz
Распакуйте архив
tar xvzf crunch-*.tgz
Перейдите в распакованный каталог
cd crunch-*/
Компилируем:
sudo make PREFIX=/usr INSTALL_OPTIONS=geninstall
Запуск скомпилированного бинарного файла (портативная версия):
./crunch
Установка:
sudo make install
Теперь из любого места система запуск:
crunch
Скриншоты Crunch
Инструкции по Crunch
- Взлом WPA/WPA2 паролей с Aircrack-ng: перебор по словарю, совместная работа с Hashcat, maskprocessor, statsprocessor, John the Ripper, Crunch, взлом в Windows
- Программы для генерации словарей
Comments are Closed