Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
pack — PACK (Набор для анализа и взлома паролей) | Kitploit
Инструменты/GitHubGitHub/iphelix/pack
Взлом паролейАтаки на ПаролиАнализ хэшейУтилиты и фреймворки
GitHubiphelix/pack

pack

PACK (Набор для анализа и взлома паролей)

РепозиторийСайт
890174317 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Password Analysis and Cracking Kit от Peter Kacherginsky (iphelix)

PACK (Password Analysis and Cracking Toolkit) — это набор утилит, разработанных для анализа списков паролей с целью повышения эффективности их взлома за счёт обнаружения закономерностей в масках, правилах, наборах символов и других характеристиках паролей. Инструментарий генерирует корректные входные файлы для семейства программ для взлома паролей Hashcat.

ПРИМЕЧАНИЕ: Сам инструментарий не умеет взламывать пароли, а предназначен для повышения эффективности работы программ взлома.

Выбор списков паролей для анализа

Прежде чем мы сможем начать работу с инструментарием, необходимо установить критерии выбора списков паролей. Поскольку мы стремимся проанализировать, как люди создают свои пароли, мы должны получить как можно большую выборку утёкших паролей. Одним из таких отличных списков является список, основанный на утечке RockYou.com. Этот список предоставляет достаточно большую и разнообразную коллекцию, дающую хорошие результаты для распространённых паролей, используемых на подобных сайтах (например, социальных сетях). Анализ, полученный из этого списка, может не подойти для организаций со специфическими политиками паролей. Поэтому выбор входной выборки должен быть максимально близок к вашей цели. Кроме того, старайтесь избегать получения списков, основанных на уже взломанных паролях, так как это создаст статистическое смещение в сторону правил и масок, использованных лицом(ами), взломавшим(и) список, а не actual пользователей.

StatsGen

Самый простой анализ, который вы можете выполнить — это просто получение наиболее распространённой длины, набора символов и других характеристик паролей в предоставленном списке. В примере ниже мы будем использовать 'rockyou.txt', содержащий около 14 миллионов паролей. Запустите statsgen.py со следующей командой:

$ python statsgen.py rockyou.txt

Ниже представлен вывод указанной команды:

                       _
     StatsGen #.#.#   | |
      _ __   __ _  ___| | _
     | '_ \ / _` |/ __| |/ /
     | |_) | (_| | (__|   < 
     | .__/ \__,_|\___|_|\_\
     | |                    
     |_| [email protected]


[*] Анализ паролей в [rockyou.txt]
[+] Проанализировано 100% (14344390/14344390) паролей
    ПРИМЕЧАНИЕ: Статистика ниже приведена относительно количества проанализированных паролей, а не общего количества паролей

[*] Длина:
[+]                         8: 20% (2966037)
[+]                         7: 17% (2506271)
[+]                         9: 15% (2191039)
[+]                        10: 14% (2013695)
[+]                         6: 13% (1947798)
...

[*] Набор символов:
[+]             loweralphanum: 42% (6074867)
[+]                loweralpha: 25% (3726129)
[+]                   numeric: 16% (2346744)
[+]      loweralphaspecialnum: 02% (426353)
[+]             upperalphanum: 02% (407431)
...

[*] Сложность пароля:
[+]                     digit: min(0) max(255)
[+]                     lower: min(0) max(255)
[+]                     upper: min(0) max(187)
[+]                   special: min(0) max(255)

[*] Простые маски:
[+]               stringdigit: 37% (5339556)
[+]                    string: 28% (4115314)
[+]                     digit: 16% (2346744)
[+]               digitstring: 04% (663951)
[+]                 othermask: 04% (576324)
...

[*] Расширенные маски:
[+]          ?l?l?l?l?l?l?l?l: 04% (687991)
[+]              ?l?l?l?l?l?l: 04% (601152)
[+]            ?l?l?l?l?l?l?l: 04% (585013)
[+]        ?l?l?l?l?l?l?l?l?l: 03% (516830)
[+]            ?d?d?d?d?d?d?d: 03% (487429)
...

ПРИМЕЧАНИЕ: Вы можете уменьшить количество отображаемых выбросов, включив флаг --hiderare, который не будет показывать элементы с частотой встречаемости менее 1%.

Вот что мы можем сразу узнать из приведённого списка:

  • Большинство паролей имеют длину от 6 до 10 символов.
  • Большинство паролей имеют набор символов loweralphanumeric.
  • Не существует очевидной минимальной или максимальной сложности пароля.
  • Проанализированные пароли, как правило, следуют простой маске "строка, за которой следуют цифры".

Последний раздел, "Расширенные маски", содержит наиболее часто встречающиеся маски в формате Hashcat. Отдельные символы можно интерпретировать следующим образом:

?l - один символ в нижнем регистре
?u - один символ в верхнем регистре
?d - одна цифра
?s - один специальный символ

Например, самая первая маска, "?l?l?l?l?l?l?l?l", будет соответствовать всем паролям из строчных букв. Учитывая размер выборки, вы сможете взломать примерно 4% паролей. Однако после генерации первоначального вывода вам может быть интересно использовать фильтры для сужения данных о паролях.

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

Давайте посмотрим, как пользователи RockYou склонны выбирать свои пароли, используя простую маску "stringdigit" (строка, за которой следуют цифры):

$ python statsgen.py ../PACK-0.0.3/archive/rockyou.txt --simplemask stringdigit -q --hiderare

[*] Анализ паролей в [rockyou.txt]
[+] Проанализировано 37% (5339556/14344390) паролей
    ПРИМЕЧАНИЕ: Статистика ниже приведена относительно количества проанализированных паролей, а не общего количества паролей

[*] Длина:
[+]                         8: 23% (1267260)
[+]                         7: 18% (981432)
[+]                         9: 17% (939971)
[+]                        10: 14% (750938)
[+]                         6: 11% (618983)
[+]                        11: 05% (294869)
[+]                        12: 03% (175875)
[+]                        13: 01% (103047)
[+]                        14: 01% (65958)

[*] Набор символов:
[+]             loweralphanum: 88% (4720184)
[+]             upperalphanum: 06% (325941)
[+]             mixedalphanum: 05% (293431)

[*] Сложность пароля:
[+]                     digit: min(1) max(252)
[+]                     lower: min(0) max(46)
[+]                     upper: min(0) max(31)
[+]                   special: min(0) max(0)

[*] Простые маски:
[+]               stringdigit: 100% (5339556)

[*] Расширенные маски:
[+]          ?l?l?l?l?l?l?d?d: 07% (420318)
[+]            ?l?l?l?l?l?d?d: 05% (292306)
[+]        ?l?l?l?l?l?l?l?d?d: 05% (273624)
[+]          ?l?l?l?l?d?d?d?d: 04% (235360)
[+]              ?l?l?l?l?d?d: 04% (215074)
...

В самом верху вывода указано, какой процент от общего числа паролей был проанализирован. В данном случае, взламывая только пароли, соответствующие маске "stringdigit", можно восстановить лишь около 37% от общего набора, как и было показано в первоначальном выводе. Далее видно, что только 11% паролей этого типа содержат символы, отличные от строчных. Поэтому было бы разумно сосредоточиться только на строках из строчных букв, соответствующих этой маске. Наконец, в разделе "Расширенные маски" мы видим, что большинство паролей "stringdigit" состоят из строки, после которой следуют две или четыре цифры. Используя информацию, полученную из приведённого вывода, мы можем начать создавать мысленный образ шаблонов генерации паролей целевых пользователей.

Существует несколько других фильтров для длины пароля, маски и набора символов:

Length: --minlength и/или --maxlength

Simple Mask: --simplemask [numeric, loweralpha, upperalpha, mixedalpha, loweralphanum и т.д.]

Character sets: --charset [digit, string, stringdigit, digitstring, digitstringdigit и т.д.]

ПРИМЕЧАНИЕ: Можно указать более одного фильтра одного класса, перечислив их через запятую:

--simplemask="stringdigit,digitstring"

Сохранение расширенных масок

Скачать инструмент