Материал просмотрен 1,805 раз(а)

Казалось бы, стандартная ситуация. Забыли свой пароль от WiFi.

wifi

Если вы читали предыдущую статью, то уже без проблем можете наловить хендшейков обмена аутентификационной информацией между точкой доступа и клиентом. Осталось только расшифровать их, то есть подобрать пароль. А вот где найти нормальные словари для перебора? Конечно, можно поискать на просторах сети, только вот попадаются часто не самые лучшие варианты – либо английские слова (которые не очень часто используются в наших реалиях), либо откровенный мусор, дублирование и прочие проблемы словарей.

Но словари мы можем делать и самостоятельно! Для этого есть несколько чудесных инструментов.

Прежде всего, хотелось бы несколько слов сказать о целесообразности хранения словарей последовательного перебора. Особенно, если перебираете консольными утилитами (aircrack). Нет необходимости хранить, например, пароль из 8-значных чисел от 00000000 до 99999999. Файл словаря весит около 859 Мегабайт, (100 миллионов строк), а это достаточно большой словарь. Можно просто генерировать словарь на лету и скармливать его утилите-переборщику. Тогда на диске не будет использоваться драгоценное место, которое можно потратить на настоящие словари.

crunch

Неплохая утилитка в Linux, позволяющая сгенерировать словарь по заданным параметрам. Принимает следующие аргументы:

  1. – минимальная длина последовательности;
  2. – максимальная длина последовательности;
  3. – набор символов для генерации;
  4. – различные опции;

По части опций – богатый выбор. Полный набор конечно же есть в man, мы рассмотрим некоторые, наиболее важные:

-t – шаблон выходной строки. “@” – символ нижнего регистра, “,” – символ верхнего регистра, “%” – цифра, “^” – спецсимвол.

-f – входной набор символов;

-o – выходной файл словаря;

-s – стартовая последовательность;

Примеры:

# crunch 1 8

генерация словаря от “a” до “zzzzzzzz”.

# crunch 1 4 abcde

генерация словаря от 1 до 4 символов используя лишь символы “abcde” (от “a” до “eeee”)

А как быть если нужен пробел? Юзаем экранирующий слеш.

# crunch 3 3 abcd\

Составит трёхсимвольный словарь из набора (“a”,”b”,”c”,”d”,” “)

Кроме того, можно указывать определенные наборы символов и их комбинации:

# crunch 3 3 -f /usr/share/crunch/charset.lst ualpha-numeric -o output.dic

При этом в файле входного словаря /usr/share/crunch/charset.lst должны быть директивы:

...
ualpha-numeric = [ABCDEF....XYZ0123456789]
...

и т.д. Так можно задать отдельно для малых букв, для больших. Для цифр и пробелов. Для спец-знаков. Таким образом и комбинировать.

Если нам не нужны повторения символов (каждый встречается 1 раз) то указываем опцию -p

# crunch 1 1 -p abc

Даст нам все перестановки этих трёх символов. При указании ключа -p игнорируются минимальная и максимальная длины. Кроме того вместо последовательности abc можно указать отдельные элементы. Например Все возможные перестановки слогов “go” “me” “ri” “ko” “na” “he”

# crunch 1 1 -p go me ri ko na he

Если генерируем словари впрок, то нам пригодится возможность указать алгоритм сжатия:

# crunch 8 8 0123456789 -z gzip -o digits.dic

Такой файл занимает в разы меньше места, чем несжатый. Вот и основные примеры для работы с crunch. Остальное можно найти во встроенной справке.