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

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

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

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

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

Категории

Все категории
Loading categories
pcfg_cracker — Генератор угадывания паролей на основе вероятностной контекстно-свободной грамматики (PCFG) | Kitploit
Инструменты/GitHubGitHub/lakiw/pcfg_cracker
Взлом паролейАтаки на ПаролиКриптографияМашинное Обучение
GitHublakiw/pcfg_cracker

pcfg_cracker

Генератор угадывания паролей на основе вероятностной контекстно-свободной грамматики (PCFG)

Репозиторий
37087141 год назадПроверено Kitploit

Популярное

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

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

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

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

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

PCFG = Вероятностная контекстно-свободная грамматика

PCFG = Очень Крутой Нечеткий Угадыватель

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

Версии инструментов

Trainer: 4.4

Guesser: 4.6

PRINCE_LING: 4.3

Password_Scorer: 4.4

Документация

Sphinx используется для динамического создания руководства разработчика на основе строк документации в коде. Чтобы собрать руководство разработчика, обратитесь к инструкциям в /doc/INSTRUCTIONS.rst

Предварительно собранный PDF-файл руководства разработчика также можно найти в /doc/build/latex/pcfgdevelopersguide.pdf. Обратите внимание: я не буду перестраивать это руководство между крупными релизами, чтобы история git оставалась чище. Иначе коммиты PDF быстро становятся беспорядочными. Поэтому предварительно собранное руководство может быть немного устаревшим; если вы используете его для помощи в написании/изменении кода, рекомендуется собрать руководство самостоятельно, а не использовать предварительно собранное.

Обзор

Этот проект использует машинное обучение для выявления привычек создания паролей пользователями. Модель PCFG создается путем обучения на списке раскрытых паролей в открытом виде (или взломанных). В контексте этого проекта модель называется набором правил и содержит множество различных частей паролей, выявленных во время обучения, вместе с их вероятностями. Такое разбиение на составные части может быть полезно для других инструментов взлома, таких как PRINCE, и/или части набора правил могут быть напрямую включены в более традиционные атаки на основе словарей. Этот проект также включает генератор предположений PCFG, который использует этот набор правил для генерации паролей в порядке убывания вероятности. Это гораздо мощнее стандартных словарных атак, и в тестах доказано, что он способен взламывать пароли в среднем с использованием значительно меньшего количества попыток, чем другие общедоступные методы. Недостатком является то, что генерация предположений в порядке вероятности медленная — в среднем 50–100 тысяч попыток в секунду, в то время как алгоритмы на GPU могут выдавать миллионы и миллиарды (и больше) попыток в секунду для быстрых алгоритмов хеширования. Поэтому угадыватель PCFG лучше всего использовать для большого количества соленых хешей или других медленных алгоритмов хеширования, где точность предположений компенсирует вычислительные затраты.

Требования и установка

  • Python3 является единственным строгим требованием для этих инструментов.
  • Настоятельно рекомендуется установить библиотеку chardet для Python3 при обучении. Хотя это не обязательно, она выполняет автоматическое определение кодировки символов обучающих паролей. Для установки:
  • Загрузите исходный код с https://pypi.python.org/pypi/chardet
  • Или установите с помощью pip3 install chardet

Краткое руководство

Обучение

Набор правил по умолчанию, включенный в этот репозиторий, был создан путем обучения на подмножестве из 1 миллиона паролей из набора RockYou. Лучшей производительности можно достичь, обучаясь на полном наборе из 32 миллионов паролей RockYou, но он был исключен, чтобы уменьшить размер загрузки. Вы можете использовать набор правил по умолчанию для начала генерации паролей без необходимости обучения на новом списке, но рекомендуется обучаться на целевом наборе паролей, который может быть ближе к тому, что вы хотите атаковать. Если вы создаете свой собственный набор правил, вот краткое руководство:

  1. Определите набор паролей в открытом виде для обучения.
  • Этот набор паролей должен содержать дублирующиеся пароли. Таким образом, программа обучения сможет выявить, что такие распространенные пароли, как 123456, являются частыми.
  • Пароли должны быть в открытом виде, без хешей и связанной информации (например, имен пользователей). Не пытайтесь использовать необработанные файлы .pot в качестве обучающего набора, так как программа обучения посчитает хеши частью пароля.
  • Пароли должны быть закодированы так же, как вы хотите генерировать предположения. То есть, если вы хотите создавать предположения в UTF-8, обучающий набор также должен быть в UTF-8. В долгосрочной перспективе возможность изменять это при генерации предположений включена в план разработки, но в настоящее время эта функция не поддерживается.
  • Размер обучающего списка паролей должен быть от 100 тысяч до 50 миллионов. Еще проводятся исследования влияния размера обучающего списка на генерацию предположений; хорошие результаты были достигнуты даже со списками всего из 10 тысяч паролей, но идеальный размер, вероятно, около 1 миллиона, с убывающей отдачей после этого.
  • Для целей этого руководства входной список паролей будет называться INPUT_PASSWORD_LIST.
  1. Выберите имя для вашего созданного набора правил. Для целей этого руководства это будет NEW_RULESET.
  2. Запустите программу обучения на входном списке паролей:
  • python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET
  • Часто используемые опциональные флаги: a. coverage: Насколько вы доверяете обучающему набору, что он соответствует целевым паролям. Более высокое значение означает использование менее умной brute-force генерации на основе марковского моделирования (в настоящее время алгоритм OMEN). Если установить coverage=1, brute-force не будет выполняться. Если установить coverage=0, будут генерироваться только предположения с помощью марковских атак. Это значение с плавающей точкой, по умолчанию 0.6, что означает ожидание 60% вероятности, что базовые слова целевого пароля будут найдены в обучающем наборе. Пример: python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET -c 0.6 b. --save_sensitive: Если указано, чувствительные данные, такие как адреса электронной почты и полные веб-сайты, обнаруженные во время обучения, будут сохранены в наборе правил. Хотя генератор предположений PCFG в настоящее время не использует эти данные, они очень ценны в реальной атаке на взлом паролей. По умолчанию эта опция отключена, чтобы упростить использование этого инструмента в академических целях. Обратите внимание: даже если эта опция отключена, в наборе правил почти наверняка останутся персональные данные, поэтому защищайте созданные наборы правил соответствующим образом. Пример: python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET --save_sensitive c. --comments: Добавляет комментарий в файл конфигурации набора правил. Это полезно, чтобы позже, взглянув на него, вы знали, почему и как был создан этот набор правил. Заключите комментарий, который хотите добавить, в кавычки.

Генерация предположений

Это генерирует предположения в stdout, используя ранее обученный набор правил PCFG. Эти предположения затем можно передать по конвейеру в любую программу, которая будет их использовать. Если набор правил не указан, будет использоваться набор правил по умолчанию DEFAULT. Для целей этого руководства предполагается, что используется набор правил NEW_RULESET.

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