Программа как создать словарь

Этичный хакинг и тестирование на проникновение, информационная безопасность

Программы для создания словарей

Crunch VS Hashcat

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

Это очень гибкая программа по генерации словарей.

Hashcat — это самый быстрый в мире восстановитель (взломщик) паролей. Но нас интересует не эта функция. Hashcat также может генерировать словари. Для того, чтобы не взламывать пароли, а только показать кандидаты в Hashcat есть опция —stdout

Hashcat использует различные способы генерации паролей (по маске, комбинаторная, перестановочная, основанная на правиле атаки и другие). Самым востребованном способом является генерация паролей по маске.

Как сделать программу переводчик с нуля.

Чтобы не запутаться в терминах, будем называть символ в определённом месте маски или паттерна (образца) «позицией». Например, первый символ в кандидатах в пароли – это первая позиция. Второй символ – это вторая позиция и т.д.

Используя маску, мы можем получить контроль над каждой позицией.

Например, одну из позиций мы хотим сделать статичным символом (всегда одинаковым во всех кандидатах в пароли) – так может и Crunch. Но мы также можем использовать для определённых позиций пользовательские наборы символов. Например, мы знаем, что во второй позиции встречаются только цифры от 1, 3, 5. В Hashcat мы можем создать пользовательский набор символов, включающий в себя цифры 1, 3, 5 и в маске поставить этот пользовательский набор во вторую позицию.

В Crunch нет понятия «маска», но есть понятие «паттерн», «образец». В сущности, он эквивалентен маске. Более того, в Crunch также можно создавать до четырёх пользовательских наборов символов. Т.е. по функционалу Crunch не уступает возможностям Hashcat.

В Crunch есть пара опций, аналоги которых отсутствуют в Hashcat. Например, -d – позволяет указывать максимальное количество повторяющихся символов. А опция -p создаёт словари без повторяющихся символов. Т.е. эта программа имеет свои уникальные возможности.

Генерация словарей с Crunch

Простой пример использования:

crunch [набор символов]
crunch 3 7 abcd

создаст все пароли от 3 до 7 символов, содержащих символы ‘abcdef’ в качестве набора символов и выведет всё это в стандартный вывод.

Опция -o позволяет вам указать файл для записи вывода, например:

crunch 3 7 abcd -o dict.txt

Опция -t позволяет создавать образцы. В терминах Hashcat это «маски».

Для обозначения набора символов используются следующие сокращения:

crunch 1 1 -t ^

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

Например, образец 8905%%%%%%% — означает генерацию кандидатов в пароли, каждый из которых будет начинаться с 8905, а затем будут следовать семь цифр. Полная команда будет выглядеть так:

32 Словари (dict) Python. Операции и методы словаря.


crunch 11 11 -t 8905%%%%%%%

Пользовательские наборы символов Crunch

В Crunch используются следующие сокращения для набора символов (пронумеруем их):

Любой из них можно переназначить. Для этого после указания диапазона длины пароля нужно записать четыре группы пользовательских символов, если какую-то группу вы не хотите переназначать, что поставьте вместо своих символов знак + (плюс). Пример:

V1 V2 V3 R1 R2 R3 b1 b2 b3 51 52 53

Рассмотрим ещё один пример:

знак плюс (+) — это заполнитель, таким образом вы можете указать пользовательский набор символов для наборов любого типа. Crunch будет использовать конкретный тип набора символов по умолчанию когда встречает знак плюс (+) в командной строке. Вы должны либо указать значения каждого типа наборов символов или использовать знак плюс. Т.е., если вы имеете два типа наборов символов вы ДОЛЖНЫ либо указать значения для каждого типа или использовать знак плюс. Т.е. в предыдущем примере будут использоваться следующие наборы символов:

Читайте также:
Программа чтоб запускались игры

на конце вышеприведённой строки есть пробел, вывод начнётся с 11a! и закончится за «33z «. Кавычки показывают пробел на конце строки.

Рекомендуется ознакомиться со всеми опциями, а также с дополнительными примерами использования Crunch: https://kali.tools/?p=720

Генерация паролей с Hashcat и maskprocessor

Если у вас не работает Hashcat (она требует установку драйверов видеокарты), то вы можете использовать программу maskprocessor.

Maskprocessor — это высокопроизводительный генератор слов (словарей), упакованный в отдельный исполняемый файл, в котором можно настроить символы для каждой позиции.

maskprocessor [опции]. маска

Маска составляется из встроенного набора символов и (или) пользовательского набора символов.

Встроенные наборы символов:

Все символы, кроме тех, которые означает набор (?l, ?u, ?d и т.д.) попадают в пароль без изменения.

Если вы хотите составить словарь, который содержит пароли из шести цифр:

maskprocessor ?d?d?d?d?d?d

Если вы хотите, чтобы в четырёх символьных паролях чередовались большие и маленькие буквы:

maskprocessor ?u?l?u?l

Пароль начинается со слова voro, затем идут четыре цифры, а затем два больших буквы:

maskprocessor voro?d?d?d?d?u?u

Пользовательские наборы символов:

-1, —custom-charset1=CS Пользовательские наборы символов -2, —custom-charset2=CS Пример: -3, —custom-charset3=CS —custom-charset1=?dabcdef -4, —custom-charset4=CS устанавливает для ?1 символы 0123456789abcdef

К примеру, в первой позиции должны быть цифры от 1 до 3, во второй позиции буквы AbCd, в третьей позиции любая цифра или маленькая буква, а последними двумя символами должны быть большие буквы:

maskprocessor -1 123 -2 AbCd -3 ?l?d ?1?2?3?u?u

  • -1 123 – первый пользовательский набор символов, включающий символы 123
  • -2 AbCd – второй пользовательский набор символов, включающий символы AbCd
  • -3 ?l?d – третий пользовательский набор символов, включающий символы ?l?d, т.е. все маленькие буквы и цифры
  • ?1?2?3?u?u – маска, составленная из пользовательских и стандартных наборов символов.

Дополнительные полезные опции:

* Приращение: -i, —increment=ЧИСЛО:ЧИСЛО Включить режим приращения. Первое ЧИСЛО=начало, второе ЧИСЛО=конец Пример: -i 4:8 интересующая длинна 4-8 (включая) * Разное: —combinations Посчитать количество комбинаций —hex-charset Предположить, что символы даны в шестнадцатеричном виде -q, —seq-max=ЧИСЛО Максимальное число одинаковых повторяющиеся символов -r, —occurrence-max=ЧИСЛО Максимальное число вхождения одного символа * Ресурсы: -s, —start-at=СЛОВО Начать с конкретной позиции -l, —stop-at=СЛОВО Закончить на конкретной позиции * Файлы: -o, —output-file=ФАЙЛ Файл вывода

Hashcat VS maskprocessor

Хотя, в целом, для генерации паролей maskprocessor и Hashcat являются взаимозаменяемыми, нужно помнить, что для выбора режима брутфорса/атаки по маске нужно указывать опцию -a 3 (поскольку Hashcat поддерживает различные режимы атаки, а не только по маске). Также нужно использовать опцию —stdout, которая означает показывать кандидаты в пароли (без взлома хеша).

Hashcat (при использовании маски) не позволяет задать максимальное число одинаковых повторяющиеся символов, максимальное число вхождения одного символа, начать или закончить на конкретной позиции. Но такой результат можно получить используя Атаку на основе правил.

С запуском Hashcat на Linux системах могут быть проблемы из-за необходимости иметь проприетарные драйвера.

Приращение длины пароля делается другими опциями:

Короткая / Длинная опция | Тип | Описание | Пример ==============================+======+===================================+======================= -i, —increment | | Включить режим приращения маски | —increment-min | Числ | Начать прирост маски на X | —increment-min=4 —increment-max | Числ | Остановить прирост маски на X | —increment-max=8

Генерация словарей в John the Ripper

Программа John the Ripper также поддерживает генерацию словарей по маске. Причём синтаксис очень похож на синтаксис масок в Hashcat. Но есть и отличие: John the Ripper более гибок, он позволяет использовать диапазоны при записи масок, любые символы в шестнадцатеричной записи, имеет больше стандартных наборов символов.

Маска может включать:

  • Статические символы.
  • Диапазоны в синтаксисе [aouei] или [a-z]. Или оба, [0-9abcdef] совпадает с [0-9a-f].
  • Заполнители, которые являются лишь сокращённой формой для диапазонов, например ?l, что на 100% эквивалентно [a-z].
  • ?l — это строчные буквы ASCII
  • ?u — это заглавные буквы ASCII
  • ?d — это цифры
  • ?s — это специальные (все печатаемые символы ASCII кроме включённых в ?l, ?u или ?d)
  • ?a — это полный «печатный» ASCII. Обратите внимание, что для форматов, которые не распознают регистр (например, LM), это обозначение включает только символы нижнего регистра, что значительно сокращает пространство ключей (количество возможных кандидатов в пароли), но при этом охватывает все возможные варианты, доступные для данного вида хеша.
  • ?B — это все 8-битные (0x80-0xff)
  • ?b — это все (0x01-0xff) (символ NULL в настоящее время не поддерживается ядром).
  • ?h — это строчные шестнадцатеричные цифры (0-9, a-f)
  • ?H — это цифры верхнего регистра HEX (0-9, A-F)
  • ?L — это строчные буквы, не-ASCII
  • ?U — это заглавные буквы, не-ASCII
  • ?D — это «цифры», не-ASCII
  • ?S — это не-ASCII «специальные символы»
  • ?A — это все допустимые символы в текущей кодовой странице (включая ASCII). Обратите внимание, что для форматов, которые не распознают регистр (например, LM), это включает только символы нижнего регистра, что значительно сокращает количество кандидатов в пароли без ущерба для взлома.
  • Заполнители, которые определяются пользователем, поэтому мы можем, например, установить значение ?1 и присвоить ему значение, например, [?u?l]. В Hashcat это называется «пользовательские наборы символов».
  • ?1 .. ?9 — это определяемый пользователем заполнитель 1 .. 9
  • Заполнители для режима гибридной маски:
  • ?w — это в Режиме гибридной маски обозначает исходное слово, созданное родительским режимом.
  • ?W это как ?w, за исключением того, что в исходном слове учитывается регистр (поэтому PassWord становится PASSWORD).
Читайте также:
Как найти папки удаленных программ

Обычный режим маски создаёт слова из маски, например ?u?l?l будет генерировать все возможные трёхбуквенные слова, причём первый символ будет в верхнем регистре, а остальные — в нижнем.

Маски переменной длины

В john.conf также есть маска по умолчанию (по умолчанию такая же, как у hashcat). Её следует использовать с -max-len (и, возможно, -min-len), чтобы получилось что-то полезное.

Параметр -max-len=N усекает маску, поэтому слова длиннее N не выводятся.

Параметр -min-len=N пропустит создание слов короче N.

Если не в режиме «гибридной маски» и использовалась опция -min-len или -max-len, мы будем перебирать пароли с длиной (как в «инкрементной маске») от -min-len до -max-len (или пароли с минимальной и максимальной длинной для данного формата, если эти опции были указаны). Итак, чтобы создать все возможные слова от 3 до 5 букв, используйте -mask=?l -min-len=3 -max-len=5. В случае, если указанная маска короче, последняя её часть будет расширена, например, «-mask=?u?l -max-len=5» будет использовать эффективную маску ?u?l?l?l?l. Всякий раз, когда используется инкрементная маска, ETA (время до завершения перебора всех кандидатов в пароли) в любой момент времени показывает расчётное время для завершения проверки паролей по маске текущей длины, а не всего прогона со всеми масками разной длины.

Специальные символы в масках

Вы можете экранировать специальные символы с помощью . Итак, чтобы создать буквальное «?l», вы можете сказать ?l или ?l, и это не будет анализироваться как заполнитель. Точно так же вы можете экранировать дефисы или скобки, чтобы они не анализировались как специальные символы. Чтобы создать буквальную обратную косую черту, используйте \.

Существует также специальная шестнадцатеричная запись xHH для указания любого кода символа. Например, x41 — это «A», а x09 — это код для TAB.

У нас есть поддержка режима маски на устройстве для большинства быстрых типов хешей, для которых у нас вообще есть поддержка OpenCL. Кроме того, такая поддержка масок на устройстве может использоваться вместе с предоставленным хостом потоком частичных возможных паролей для формирования множества гибридных режимов. Например, все следующие примеры являются правильными:

  • Протестировать любые 7-символьные печатаемые строки ASCII с разумным количеством позиций маски, обрабатываемых на устройстве (JtR решает как оптимально разделить маску между хостом и устройством):

—mask=’?a?a?a?a?a?a?a’
—mask=’?a’ —min-length=7 —max-length=7

То же, но для диапазона длин от 1 до 8:

—mask=’?a’ —min-length=1 —max-length=8

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

—mask=’start?l?d’ —min-length=7 —max-length=14

Другие, более сложные примеры использования маски, будут рассмотрены в отдельной части, полностью посвящённой режимам генерации, изменения и обработки паролей.

Как посмотреть генерируемые пароли. Как создать словарь

С помощью опции —stdout вы можете вместо запуска взлома показать создаваемые кандидаты в пароли. Это может быть полезно при проверке написанных масок и при генерации словарей.

Например, чтобы показать все кандидаты в пароли для маски ‘?d?d?d?d’:

./john —mask=’?d?d?d?d’ —stdout

Чтобы сохранить все пароли для маски ‘?d?d?d?d’ (четыре любые цифры) в файл:

./john —mask=’?d?d?d?d’ —stdout > 4d.txt

Чтобы создать словарь, содержащий все цифры от 1 до 9999 и сохранить его в файл 1-4d.txt:

./john —mask=’?d?d?d?d’ —min-length=1 —max-length=4 —stdout > 1-4d.txt

Чтобы создать файл с паролями телефонов, начинающихся на «8905143»:

./john —mask=’8905143?d?d?d?d’ —stdout > beeline.txt

Вы можете вывести кандидаты в пароли с обрезкой по ДЛИНЕ, для этого используйте опцию вида —stdout=ДЛИНА.

Заключение

Crunch – очень гибкая программа для генерации словарей. Из минусов можно отметить некоторую запутанность назначения пользовательского набора символов, а также то, что пользовательские наборы символов перезаписывают стандартные наборы.

Hashcat не имеет некоторых опций, связанных с регулированием количества повторяющихся символов в пароле.

maskprocessor является хорошей альтернативой Crunch. Программа полностью повторяет функционал Crunch, при этом позволяет назначать пользовательские наборы символов без перезаписи стандартных наборов. Сам синтаксис назначение представляется более наглядным. Программы Hashcat и maskprocessor работают и на Linux, и на Windows.

John the Ripper включает в себя все возможности генерации списков слов по маске которые есть у Hashcat, но также имеет дополнительные возможности, некоторые из которых могут быть интересны профессионалам.

Связанные статьи:

  • Продвинутые техники создания словарей (97.4%)
  • Генерация и модификация словарей по заданным правилам (88.9%)
  • Взлом WPA/WPA2 паролей с Aircrack-ng: перебор по словарю, совместная работа с Hashcat, maskprocessor, statsprocessor, John the Ripper, Crunch, взлом в Windows (88%)
  • Как создать словари, соответствующие определённым политикам надёжности паролей (с помощью Атаки на основе правил) (79.1%)
  • Как генерировать кандидаты в пароли, соответствующих политикам надёжности паролей (фильтрация слов с помощью grep) (72.1%)
  • Новый выпуск Kali Linux 2018.2 (RANDOM — 0.6%)

Источник: hackware.ru

Пять способов создать словарь

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

Я знаю пять (!) способов создать словарь в Python. С помощью литералов словаря:

fish =

Используя конструктор явно:

snail = dict( eat=”leaves”, move=”ground”, say=None )

Или инициализируя его кортежами:

cow = dict([ (“move”, “ground”), (“eat”, “grass”), (“say, “moo”) ])

Четвертый, с помощью генераторных выражений (версия интерпретатора 3.5 и выше):

>>> animals = [“snail”, “fish”, “cow”] >>>

Этот трюк еще бывает полезен, если нужно поменять местами ключи и значения:

Только будьте осторожны, потому что ключи в словаре должны быть уникальны. Если какие-то значения исходного словаря совпадали, то, когда они станут ключами нового, дубликаты исчезнут.

И последний, который я использую, когда мне надо взять ключи из одного контейнера, а значения из другого:

>>> animals = [«frog», «snail», «bird»] >>> numbers = [1, 2, 3] >>> dict(zip(animals, numbers))

Почему так много? Потому что каждый удобен под свой случай.

Источник: pythonist.ru

Программа как создать словарь

Комментарии

Популярные По порядку
Не удалось загрузить комментарии.

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

DeepFake-туториал: создаем собственный дипфейк в DeepFaceLab

Рассказываем о технологии DeepFake и шаг за шагом учимся делать дипфейки в DeepFaceLab – нейросетевой программе, меняющей лица в видеороликах.

ООП на Python: концепции, принципы и примеры реализации

Программирование на Python допускает различные методологии, но в его основе лежит объектный подход, поэтому работать в стиле ООП на Python очень просто.

Программирование на Python: от новичка до профессионала

Пошаговая инструкция для всех, кто хочет изучить программирование на Python (или программирование вообще), но не знает, куда сделать первый шаг.

Источник: proglib.io

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru