Страницы

Как создать словарь паролей используя - CRUNCH

CRUNCH - программа предназначенная для создания собственных словарей. 

Размеры списков не определены, однако crunch может использовать так называемые “шаблоны” для уменьшения размеров словаря; 
crunch может сжимать выходные файлы в различных форматах и (начиная с версии 2.6) выводит сообщения о том, какого размера будет словарь.




Набор опций


Перед тем, как начинать использовать crunch, давайте пробежимся по опциям:
-b - задание размера файла; эта опция используется, если вы хотите задать размер файла в KB/MB/GB (должна использоваться с опцией “-o START“)
-c - задание количества строк (должна использоваться с опцией “-o START“)
-d - ограничение числа последовательно одинаковых символов
-e - задается тогда, когда нужно остановить crunch (crunch v3.1)
-f - задает путь к файлу charset.lst
-i - инвертирует вывод; вместо слева-направо будет справа-налево (т.е. вместо ААС, ААВ, ААF будет САА, ВАА, FAA)
-o - позволяет указать выходной файл
-p - перестановка слов или символов (командная строка)
-q - перестановка слов или символов (указать в файле)
-r - возобновить синтаксис предыдущей сессии для использования след. -r
-s - позволяет указать начальную строку в wordlist
-t - позволяет указать конкретный шаблон для использования
-u - запрещает вывод размера словаря и кол-во строк до начала генерации
-z - добавляет поддержку сжатия вывода (поддерживается gzip, bzip & lzma)


Установка crunch


Установить crunch можно несколькими способами, например из исходных кодов. Для этого скачиваем crunch http://sourceforge.net/projects/crunch-wordlist/. После чего выполняем следующие команды:

# tar -xvf crunch-3.6.tgz
# cd crunch3.6
# make && make install


Основное использование


По умолчанию crunch устанавливается в следующий каталог (на примере BackTrack): /pentest/passwords/crunch/. Основной синтаксис команды:# crunch [min_length] [max_length] [character_set] [options]

min_length - минимальная длина слова
max_length - максимальная длина слова
character_set - набор символов
options - опции


Синтаксис:

crunch [min length] [max length] [character set] [options]



Если вы не определили набор символов, тогда cranch будет использовать по умолчанию нижний регистр букв (alpha):

# crunch 4 4



Задать символы вручную:

# crunch 6 6 0123456789ABCDEF



Некоторые символы необходимо “изолировать” косой чертой \ :

# crunch 6 6 ABC\!\@\#\$



Создание списков слов по блокам определенного размера


Чтобы указать crunch создавать списки слов определенного размера, используется опция -b. Должно быть использовано в сочетании с опцией -o START. Размер файлов может задаваться в след. форматах: kb, mb, gb или kib, mib, gib. kb, mb и gb - основывается на 10 (т.е. 1KB = 1000 bytes). kib, mib и gib основывается на 2 (т.е. 1KB = 1024 bytes).


Создать словарь, файлы которого не будут превышать 1mb:

# crunch 6 6 0123456789 -b 1mb -o START


Создать словарь, файлы которого не будут превышать 100mb:

# crunch 8 8 abcDEF123 -b 100mb -o START


Создать словарь, файлы которого не будут превышать 10kb:

# crunch 4 4 0123456789 -b 10kb -o START


Создать словарь, файлы которого не будут превышать 2GB:

# crunch 8 8 0123456789ABCDEF -b 2gb -o START



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

Используя опцию -с, можно “сказать” crunch, чтобы он создавал файлы с определенным количеством строк. Для этого, также нужно использовать -o START.


Создать словарь, файлы которого будут содержать не более 200000 строк:

# crunch 6 6 0123456789 -c 200000 -o START



Создать список слов, файлы которых будут содержать не более 150000 строк:

# crunch 6 6 abcDEF123 -c 150000 -o START

Остановка crunch в заданное время (на определенном слове)


В версии Crunch v3.1 появилась новая опция -e, которая “говорит” crunch остановиться, когда он дойдет до определенного слова. Например следующая команда указывает crunch остановиться тогда, когда он дойдет до 333333:

# crunch 6 6 -t %%%%%% -e 333333

Использование фиксированных наборов символов


Crunch позволяет работать с фиксированными наборами символов, названия которых находятся в файле charset.lst. Это позволяет сэкономить время при вводе:

# charset configuration file for winrtgen v1.2 by Massimiliano Montoro (mao@oxid.it) 

# compatible with rainbowcrack 1.1 and later by Zhu Shuanglei <shuanglei@hotmail.com> 

hex-lower = [0123456789abcdef] 
hex-upper = [0123456789ABCDEF] 

 
numeric = [0123456789] 
numeric-space = [0123456789 ] 

 
symbols14 = [!@#$%^&*()-_+=] 
symbols14-space = [!@#$%^&*()-_+= ] 
symbols-all = [!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/] 
symbols-all-space = [!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ] 

 
ualpha = [ABCDEFGHIJKLMNOPQRSTUVWXYZ] 

ualpha-space = [ABCDEFGHIJKLMNOPQRSTUVWXYZ ] 

ualpha-numeric = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789] 

ualpha-numeric-space = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ] 

ualpha-numeric-symbol14 = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=] 

ualpha-numeric-symbol14-space = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+= ] 

ualpha-numeric-all = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/] 

ualpha-numeric-all-space = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ] 

 
lalpha = [abcdefghijklmnopqrstuvwxyz] 

lalpha-space = [abcdefghijklmnopqrstuvwxyz ] 

lalpha-numeric = [abcdefghijklmnopqrstuvwxyz0123456789] 

lalpha-numeric-space = [abcdefghijklmnopqrstuvwxyz0123456789 ] 

lalpha-numeric-symbol14 = [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+=] 

lalpha-numeric-symbol14-space = [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+= ] 

lalpha-numeric-all = [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/] 

lalpha-numeric-all-space = [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ] 

 
mixalpha = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ] 

mixalpha-space = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ] 

mixalpha-numeric = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]

mixalpha-numeric-space = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ] 

mixalpha-numeric-symbol14 = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=] 

mixalpha-numeric-symbol14-space = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+= ] 

mixalpha-numeric-all = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/] 

mixalpha-numeric-all-space = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ] 

######################################################################################### 
# SWEDISH CHAR-SUPPORT # 
######################################################################################### 

######################### 
# Uppercase # 
######################### 

ualpha-sv = [ABCDEFGHIJKLMNOPQRSTUVWXYZ???] 

ualpha-space-sv = [ABCDEFGHIJKLMNOPQRSTUVWXYZ??? ] 

ualpha-numeric-sv = [ABCDEFGHIJKLMNOPQRSTUVWXYZ???0123456789] 

ualpha-numeric-space-sv = [ABCDEFGHIJKLMNOPQRSTUVWXYZ???0123456789 ] 

ualpha-numeric-symbol14-sv =[ABCDEFGHIJKLMNOPQRSTUVWXYZ???0123456789!@#$%^&*()-_+=] 


ualpha-numeric-symbol14-space-sv =[ABCDEFGHIJKLMNOPQRSTUVWXYZ???0123456789!@#$%^&*()-_+= ] 

ualpha-numeric-all-sv = [ABCDEFGHIJKLMNOPQRSTUVWXYZ???0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/] 

ualpha-numeric-all-space-sv = [ABCDEFGHIJKLMNOPQRSTUVWXYZ???0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ] 

######################### 
# Lowercase # 
######################### 

lalpha-sv = [abcdefghijklmnopqrstuvwxyz???] 

lalpha-space-sv = [abcdefghijklmnopqrstuvwxyz??? ] 

lalpha-numeric-sv = [abcdefghijklmnopqrstuvwxyz???0123456789] 

lalpha-numeric-space-sv = [abcdefghijklmnopqrstuvwxyz???0123456789 ] 

lalpha-numeric-symbol14-sv = [abcdefghijklmnopqrstuvwxyz???0123456789!@#$%^&*()-_+=] 

lalpha-numeric-symbol14-space-sv = [abcdefghijklmnopqrstuvwxyz???0123456789!@#$%^&*()-_+= ] 

lalpha-numeric-all-sv = [abcdefghijklmnopqrstuvwxyz???0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/] 

lalpha-numeric-all-space-sv = [abcdefghijklmnopqrstuvwxyz???0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ] 

######################### 
# Mixcase # 
######################### 

 
mixalpha-sv = [abcdefghijklmnopqrstuvwxyz???ABCDEFGHIJKLMNOPQRSTUVWXYZ???] 

mixalpha-space-sv = [abcdefghijklmnopqrstuvwxyz???ABCDEFGHIJKLMNOPQRSTUVWXYZ??? ] 

mixalpha-numeric-sv = [abcdefghijklmnopqrstuvwxyz???ABCDEFGHIJKLMNOPQRSTUVWXYZ???0123456789] 

mixalpha-numeric-space-sv = [abcdefghijklmnopqrstuvwxyz???ABCDEFGHIJKLMNOPQRSTUVWXYZ???0123456789 ] 

mixalpha-numeric-symbol14-sv = [abcdefghijklmnopqrstuvwxyz???ABCDEFGHIJKLMNOPQRSTUVWXYZ???0123456789!@#$%^&*()-_+=] 

mixalpha-numeric-symbol14-space-sv = [abcdefghijklmnopqrstuvwxyz???ABCDEFGHIJKLMNOPQRSTUVWXYZ???0123456789!@#$%^&*()-_+= ] 

mixalpha-numeric-all-sv = [abcdefghijklmnopqrstuvwxyz???ABCDEFGHIJKLMNOPQRSTUVWXYZ???0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/] 

mixalpha-numeric-all-space-sv = [abcdefghijklmnopqrstuvwxyz???ABCDEFGHIJKLMNOPQRSTUVWXYZ???0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]



Для того, чтобы воспользоваться фиксированными наборами символов, используйте опцию -f. Например, чтобы создать список слов ualpha (заглавные буквы), воcпользуйтесь следующей командой:

# crunch 6 6 -f charset.lst ualpha


Создать числовой (numeric) список слов:

# crunch 6 6 -f charset.lst numeric


Создать шестнадцатеричный список слов, где символы ABCDEF будут заглавными (hex-upper):

# crunch 8 8 -f charset.lst hex-upper



Использование инверсии в crunch


Используя опцию -i можно заставить crunch создавать список слов справа налево. В принципе в этой опции нету особо смысла, так как в любом случае будет тоже самое, но только наоборот. Например:

# crunch 4 4 -i

Опция -i может использоваться, как при ручном наборе символов (см. пример выше), так и при фиксированном наборе:

# crunch 4 4 -f charset.lst ualpha -i


Создание подстановок


Crunch может быть использован для создания подстановок, которые включают:
символы/слова введенные в команду – опция -p
строки в списке слов – опция -q


С помощью опции -p можно создавать перестановки символов или слов, введенные в командной строке. Создание перестановки букв (анаграмма):

# crunch 1 1 -p abcd



Создание перестановки со списком слов:

# crunch 1 1 -p bird cat dog



Опция -p должна находиться последней в команде. Для примера возьмем опцию -u, которая не выводит “подавляет” информацию о размере будущего файла. Т.е. команда будет следующего вида:

# crunch 1 1 -p abcd -u


В результате crunch посчитает ее как (abcd + -u). Так что будьте внимательны. А теперь запишем команду, так как надо. Т.е. поставим опцию -p последней:

# crunch 1 1 -u -p abcd



В результате мы получили то, что хотели, а также “подавили” вывод размера будущего файла с помощью опции -u. Используя опцию -q можно создать список слов со всевозможными комбинациями из файла. Т.е. опция -q берет каждую строку из файла и комбинирует ее с другими строками.
Например создадим файл test.txt с тремя строками bird, cat и dog:
# touch test.txt && echo "bird" > test.txt && echo "cat" >> test.txt && echo "dog" >> test.txt
# cat test.txt bird cat dog
# crunch 1 1 -q test.txt

Crunch will now generate approximately the following amount of data:
66 bytes
0 MB
0 GB
0 TB
0 PB

Crunch will now generate the following number of lines: 6
birdcatdog
birddogcat
catbirddog
catdogbird
dogbirdcat
dogcatbird



Как видно, crunch скомбинировала каждую строку из файла в новое слово. Думаю смысл понятен. Возобновление создания списка слов, после отмены Crunch позволяет создавать список слов (словарь), после его отмены (остановки). Для этого нужно воспользоваться опцией -r (resume – возобновление):

# crunch 8 8 0123456789 -o test.txt



Останавливаем выполнение команды нажатием Crtl + C, после чего добавляем в предыдущую команду опцию -r:

# crunch 8 8 0123456789 -o test.txt -r


Если словарь начинается с определенной позиции (см. главу ниже), то при возобновлении, опция -s не должна выводиться. Рассмотрим этот случай на примере. Для этого создаем список слов (словарь) с фиксированным начальным пределом, опция -s:

# crunch 8 8 0123456789 -s 59999999 -o test.txt
root@bt:/pentest/passwords/crunch# head -n 2 test.txt
59999999
60000000
root@bt:/pentest/passwords/crunch# tail -n 2 test.txt
99999998
99999999


После чего останавливаем выполнение (Crtl + C) и запускаем команду с опцией -r, но уже без опции -s:

# crunch 8 8 0123456789 -o test.txt -r


Запуск с определенной позиции


Если нужно создать список слов (словарь) с определенной позиции, используйте опцию -s. Допустим, что при создании словаря у вас закончилось место на HDD или еще что то случилось, после чего вы остановили работу crunch. В этом случае вам поможет временный файл “START”, который находится в директории /pentest/passwords/crunch/.


1. создаем список слов (словарь):


# crunch 7 7 0123456789 -o test.txt


2. останавливаем выполнение программы - Ctrl + C


3. проверяем последние две записи:


# tail -n 2 START


4. копируем/переименовываем словарь:


# cp START file1.txt


5. возобновляем работу crunch с последней записи:

# crunch 7 7 0123456789 -s 9670549 -o test.txt



Важно!

crunch перезапишет временный файл START, когда начнется новый процесс создания списка слов (словаря), поэтому не забудьте скопировать/переименовать файл START, если вы хотите сохранить предыдущую работу.


Создание шаблонов


Настоящая сила crunch в шаблонах. Для задания шаблона используйте опцию -t. Crunch поддерживает четыре вида шаблонов:
@ – строчные буквы
, – заглавные буквы
% – цифры
^ – спец. символы


Создать список слов (словарь) состоящий из строчных букв, длинной 6 символов, начинающиеся с dog:

# crunch 6 6 -t dog@@@


Чтобы dog был в конце:

# crunch 6 6 -t @@@dog


Чтобы dog был по середине:

# crunch 7 7 -t @@dog@@


Или, чтобы dog следовал за заглавной буквы, потом цифра, а потом спец. символ:

# crunch 6 6 -t dog,%^


Также можно комбинировать шаблоны, так как вам взбредет в голову:

# crunch 8 8 -t ,,^^@@%%


Создание словаря только из строчных букв:

# crunch 4 4 -t @@@@


Создание словаря только из цифр:

# crunch 4 4 -t %%%%


Создание словаря только из заглавных букв:

# crunch 4 4 -t ,,,,


Создание словаря только из спец. символов:

# crunch 4 4 -t ^^^^



Можно указать crunch использовать шаблоны, но только с определенным набором символов. Например, давайте создадим список слов (словарь), который будет в себя включать:
abcdef - буквы нижнего регистра
ABCDEF - буквы верхнего регистра
12345 - символы
@#$% - спец. символы

# crunch 8 8 abcdef ABCDEF 12345 @#$%- -t @@,,%%^^



Некоторые спец. символы нужно экранировать \ :

# crunch 10 10 123abcDEF\!\@\# -t TESTING@@@



Если вы решили добавить пробел к своим символам, тогда это можно сделать так:

# crunch "123abcDEF " -t TEST@@@@

9 комментариев:

  1. Один вопрос. Если я хочу скомбинировать слова bird cat dog в ином порядке:
    bird
    cat
    dog
    birdcat
    birddog
    catbird и т.д. Чтобы под конец были комбинации 5,7,100 слов т.е. Каких будет угодно как с символами. Какая для этого команда нужна?

    ОтветитьУдалить
    Ответы
    1. Для создания списка, состоящего из перестановок всех слов, которые содержатся в определенном текстовом файле, следует указать его название после -q.
      Пример: /crunch 1 1 -q words.txt создаст список из всех слов, которые находятся в файле words.txt (в папке /crunch/)

      Удалить
    2. Как сделать чтобы слова (в словаре: dog, cat, bird) скомбинировались к примеру от 1 до 4:
      dog
      dogdog
      catdog
      catdogdog
      .............

      Удалить
  2. как создать словарь, если не известны не которые символы?
    к примеру 1234????qwer
    Нужно чтобы за место символа "?", был перебор от 1 до 4.

    ОтветитьУдалить
  3. как создать шаблон чтобы в слове использовались буквы верхнего и нижнего регистра, цифры. Но чтобы рядом стоящие символы не были одинаковыми?!

    ОтветитьУдалить
  4. Как сохранить словарь - 1) crunch 13 13 -t Q91L2,,00%%%% -o cd /home/nicolai/Рабочий стол/dict.txt.
    2) nicolai@Kali:~$ cd /home/nicolai/Рабочий\ стол
    nicolai@Kali:~/Рабочий стол$
    3) Место сохранения ставим в -закладки- клик 2 раза на Рабочйй стол.Окно Круха на весь экран.Сверху на Меню клик на права и ставим бифиду на вкладки.Иначе не сохраняется файл словаря на экране !
    Пишите nicavatar@rambler.ru , Николай.

    ОтветитьУдалить
  5. Есть файл 1 с буквами типа A Aa AAa AAaa и т.д. и файл 2 с цифрами типа 1 12 123 147 и т.д. Можна ли заставить Crunch подставлять по очереди ВСЕ значения файла 2 к КАЖДОМУ значению файла 1 и записывать все это в файл?

    ОтветитьУдалить
  6. фигня со списка своего нельзя сгенерировать пароли слов.

    ОтветитьУдалить