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

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

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

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

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

Категории

Все категории
Loading categories
cracken — быстрый генератор списков паролей, инструмент для создания Smartlist и гибридного маскировочного анализа паролей, написанный на чистом безопасном Rust | Kitploit
Инструменты/GitHubGitHub/shmuelamar/cracken
Взлом паролейАтаки на ПаролиАнализ хэшейТестирование на Проникновение
GitHubshmuelamar/cracken

cracken

быстрый генератор списков паролей, инструмент для создания Smartlist и гибридного маскировочного анализа паролей, написанный на чистом безопасном Rust

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

Популярное

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

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

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

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

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

Cracken

cracken crate cracken version cracken documentation cracken total downloads

Cracken — быстрый генератор списков паролей, инструмент для создания Smartlist и анализа гибридных масок паролей, написанный на чистом безопасном Rust (подробнее в talk/). Вдохновлён такими замечательными инструментами, как maskprocessor, hashcat, Crunch и 🤗 HuggingFace tokenizers.

Что? Зачем? Как??

На конференции DeepSec2021 мы представили новый метод анализа паролей как гибридных масок, использующий общие подстроки в паролях с помощью NLP-токенизаторов (подробнее в talk/).

Наш метод разделяет пароль на подслова вместо обычной маски символов. HelloWorld123! разбивается на ['Hello', 'World', '123!'], поскольку эти три подслова очень распространены и в других паролях.

Гибридные маски и Smartlist'ы

  • 📄 Smartlist'ы — компактные и представительные списки подслов, созданные из паролей с помощью NLP-токенизаторов.
  • 🎭 Гибридная маска — представление пароля как комбинации списков слов и символов (например, ?w1?w2?l?d).

Анализ паролей RockYou с помощью Smartlist'ов и гибридных масок:

Топ-25 гибридных масок из RockYou

полная таблица здесь

Cracken 🐙 используется для:

  • ✅ Генерации гибридных масок ОЧЕНЬ БЫСТРО 🦸⚡💨 (см. раздел производительность)
  • ✅ Создания Smartlist'ов — компактных и представительных списков подслов из заданных файлов паролей (с использованием 🤗 HuggingFace tokenizers)
  • ✅ Анализа паролей на предмет их гибридных масок — построения статистики для лучших кандидатов паролей (опять же очень быстро)

Возможные сценарии работы с Cracken:

Простой:

  1. Генерация кандидатов паролей из гибридной маски, например: cracken -w rockyou.txt -w 100-most-common.txt '?w1?w2?d?d?d?d?s'
  2. Вы можете передавать пароли, генерируемые Cracken, в hashcat, john или любую другую программу для взлома паролей.

Продвинутый:

  1. Создать Smartlist из существующих паролей — cracken create
  2. Проанализировать список открытых паролей — cracken entropy
  3. Использовать наиболее часто встречающиеся гибридные маски для быстрой генерации кандидатов паролей — cracken generate -i hybrid-masks.txt

Подробнее см. раздел Использование

Начало работы

скачать (только Linux на данный момент): последний релиз 🔗

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

Запуск Cracken:

сгенерировать все слова длиной 8, начинающиеся с заглавной буквы, затем 6 строчных и цифра:

root@kitploit:~
$ cracken -o pwdz.lst '?u?l?l?l?l?l?l?d'

сгенерировать слова из двух списков слов с суффиксом года (1000–2999) <имя><фамилия><год>

root@kitploit:~
$ cracken --wordlist firstnames.txt --wordlist lastnames.lst --charset '12' '?w1?w2?1?d?d?d'

создать Smartlist размером 50 000 из подслов, извлечённых из rockyou.txt

root@kitploit:~
$ cracken create -f rockyou.txt -m 50000 --smartlist smart.lst

оценить энтропию гибридной маски пароля HelloWorld123! с использованием Smartlist'а

root@kitploit:~
$ cracken entropy -f smart.lst 'HelloWorld123!'

hybrid-min-split: ["hello", "world1", "2", "3", "!"]
hybrid-mask: ?w1?w1?d?d?s
hybrid-min-entropy: 42.73
--
charset-mask: ?l?l?l?l?l?l?l?l?l?l?d?d?d?s
charset-mask-entropy: 61.97

Производительность

На момент написания Cracken, вероятно, самый быстрый в мире генератор списков паролей:

результаты тестов

Cracken имеет примерно 25% прирост производительности по сравнению с быстрым maskprocessor от hashcat, написанным на C.

Cracken может генерировать около 2 ГБ/с на ядро.

Подробнее в benchmarks/ 🔗

Почему скорость важна? Типичный GPU может проверять миллиарды паролей в секунду в зависимости от хеш-функции пароля. Если генератор списков паролей выдает меньше слов в секунду, чем может обработать инструмент взлома, скорость взлома снижается.

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

Cracken использует алгоритм A* для очень быстрого анализа паролей. Он может найти минимальную гибридную маску файла паролей со скоростью ~100 000 паролей/с (cracken entropy -f words1.txt -f words2.txt ... -p pwds.txt)

Установка

установить Cracken или скомпилировать из исходников

Скачать бинарный файл (только Linux на данный момент)

скачать последний релиз из releases 🔗

Сборка из исходников (все платформы)

Cracken написан на Rust и требует rustc для компиляции. Cracken должен поддерживать все платформы, которые поддерживает Rust.

инструкции по установке cargo 🔗

Есть два варианта сборки из исходников — установка через cargo из crates.io (предпочтительно) или ручная компиляция из исходников.

1. Установка из crates.io (предпочтительно)

установка с помощью cargo:

root@kitploit:~
$ cargo install cracken

2. Сборка из исходников

клонировать Cracken:

root@kitploit:~
$ git clone https://github.com/shmuelamar/cracken

собрать Cracken:

root@kitploit:~
$ cd cracken
$ cargo build --release

запустить:

root@kitploit:~
$ ./target/release/cracken --help

Информация об использовании

root@kitploit:~
$ cracken --help
Cracken v1.0.0 - быстрый генератор списков паролей 

ИСПОЛЬЗОВАНИЕ:
    cracken [SUBCOMMAND]

ФЛАГИ:
    -h, --help       Вывод справки
    -V, --version    Вывод версии

ПОДКОМАНДЫ:
    generate    (по умолчанию) - Генерирует слова, разделённые новой строкой, в соответствии с заданной маской и файлами списков слов
    create      Создать новый smartlist из входного файла(ов)
    entropy     
                Вычисляет приблизительную энтропию пароля или файла паролей.
                Энтропия пароля — это log2(размер пространства) пароля.
                
                Существует два типа оценки размера пространства:
                  * mask — пространство каждого символа (цифры=10, строчные=26...).
                  * hybrid — поиск минимального разбиения на подслова и наборы символов.


Для справки по конкретной подкоманде выполните: cracken <subcommand> --help


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

  ## Примеры подкоманды Generate:

  # все цифры от 00000000 до 99999999
  cracken ?d?d?d?d?d?d?d?d

  # все цифры от 0 до 99999999
  cracken -m 1 ?d?d?d?d?d?d?d?d

  # слова с префиксом pwd - pwd0000 до pwd9999
  cracken pwd?d?d?d?d

  # все пароли длиной 8, начинающиеся с заглавной, затем 6 строчных, затем цифра
  cracken ?u?l?l?l?l?l?l?d

  # то же, но вывод в pwds.txt вместо stdout
  cracken -o pwds.txt ?u?l?l?l?l?l?l?d

  # пользовательский набор символов - все шестнадцатеричные значения
  cracken -c 0123456789abcdef '?1?1?1?1'

  # 4 пользовательских набора символов - порядок определяет id набора
  cracken -c 01 -c ab -c de -c ef '?1?2?3?4'

  # 4 строчных символа с суффиксом годов 2000-2019
  cracken -c 01 '?l?l?l?l20?1?d'

  # начинается с имени из списка слов, затем 4 цифры
  cracken -w firstnames.txt '?w1?d?d?d?d'

  # начинается с имени из списка слов с фамилией из списка слов, оканчивается символом
  cracken -w firstnames.txt -w lastnames.txt -c '!@#$' '?w1?w2?1'

  # повторение списков слов несколько раз и комбинирование наборов символов
  cracken -w verbs.txt -w nouns.txt '?w1?w2?w1?w2?w2?d?d?d'


  ## Примеры подкоманды Create Smartlist:

  # создать smartlist из одного файла в smart.txt
  cracken create -f rockyou.txt --smartlist smart.txt

  # создать smartlist из нескольких файлов с несколькими алгоритмами токенизации
  cracken create -t bpe -t unigram -t wordpiece -f rockyou.txt -f passwords.txt -f wikipedia.txt --smartlist smart.txt

  # создать smartlist с минимальной длиной подслова 3 и максимальным размером подслов, состоящих только из цифр, 6
  cracken create -f rockyou.txt --min-word-len 3 --numbers-max-size 6 --smartlist smart.txt


  ## Примеры подкоманды Entropy:

  # оценка энтропии пароля
  cracken entropy --smartlist vocab.txt 'helloworld123!'

  # оценка энтропии файла паролей с помощью энтропии по маске набора символов (по умолчанию гибридная)
  cracken entropy --smartlist vocab.txt -t charset -p passwords.txt

  # оценка энтропии файла паролей
  cracken entropy --smartlist vocab.txt -p passwords.txt

cracken-v1.0.0 linux-x86_64 компилятор: rustc 1.56.1 (59eed8a2a 2021-11-01)
подробнее: https://github.com/shmuelamar/cracken

Информация об использовании подкоманды Generate

root@kitploit:~
$ cracken generate --help
cracken-generate 
(по умолчанию) - Генерирует слова, разделённые новой строкой, в соответствии с заданной маской и файлами списков слов

ИСПОЛЬЗОВАНИЕ:
    cracken generate [FLAGS] [OPTIONS] <mask> --masks-file <masks-file>

ФЛАГИ:
    -h, --help       
            Вывод справки

    -s, --stats      
            Выводит количество слов, которые будут сгенерированы этой командой, и завершает работу

    -V, --version    
            Вывод версии


ОПЦИИ:
    -c, --custom-charset <custom-charset>...    
            Пользовательский набор символов (строка символов). До 9 пользовательских наборов - ?1 до ?9. Используйте ?1 в маске для первого набора

    -i, --masks-file <masks-file>               
            Файл, содержащий маски для генерации

    -x, --maxlen <max-length>                   
            Максимальная длина маски, с которой начинать

    -m, --minlen <min-length>                   
            Минимальная длина маски, с которой начинать

    -o, --output-file <output-file>             
            Выходной файл для записи списка слов; по умолчанию stdout

    -w, --wordlist <wordlist>...                
            Имя файла, содержащего слова, разделённые новой строкой (0xA). Примечание: в настоящее время все списки слов загружаются в память


АРГУМЕНТЫ:
    <mask>    
            Маска списка слов для генерации.
            Доступные маски:
                встроенные наборы символов:
                ?d - цифры: "0123456789"
                ?l - строчные: "abcdefghijklmnopqrstuvwxyz"
                ?u - заглавные: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
                ?s - символы: " !\"\#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
                ?a - все символы: ?d + ?l + ?u + ?s
                ?b - все двоичные значения: (0-255)
            
                пользовательские наборы символов ?1 до ?9:
                ?1 - первый пользовательский набор, заданный --charset 'mychars'
            
                списки слов ?w1 до ?w9:
                ?w1 - первый список слов, заданный --wordlist 'my-wordlist.txt'

Информация об использовании подкоманды Create Smartlist

root@kitploit:~
$ cracken create --help  
cracken-create 
Создать новый smartlist из входного файла(ов)

ИСПОЛЬЗОВАНИЕ:
    cracken create [FLAGS] [OPTIONS] --file <file>... --smartlist <smartlist>

ФЛАГИ:
    -h, --help       Вывод справки
    -q, --quiet      Отключает отображение индикатора прогресса
    -V, --version    Вывод версии

ОПЦИИ:
    -f, --file <file>...                         Входное имя файла; можно указать несколько раз для нескольких файлов
        --min-frequency <min_frequency>          Минимальная частота слова; актуально только для токенизатора BPE
    -l, --min-word-len <min_word_len>            Фильтрует слова короче указанной длины
        --numbers-max-size <numbers_max_size>    Фильтрует числа (только цифры) длиннее указанного размера
    -o, --smartlist <smartlist>                  Выходное имя файла smartlist
    -t, --tokenizer <tokenizer>...               Используемый токенизатор; можно указать несколько раз.
                                                 Один из: bpe, unigram, wordpiece [по умолчанию: bpe]  [возможные значения: bpe, unigram, wordpiece]
    -m, --vocab-max-size <vocab_max_size>        Максимальный размер словаря

Информация об использовании подкоманды Entropy

root@kitploit:~
$ cracken entropy --help
cracken-entropy 

Вычисляет приблизительную энтропию пароля или файла паролей.
Энтропия пароля — это log2(размер пространства) пароля.

Существует два типа оценки размера пространства:
  * mask — пространство каждого символа (цифры=10, строчные=26...).
  * hybrid — поиск минимального разбиения на подслова и наборы символов.


ИСПОЛЬЗОВАНИЕ:
    cracken entropy [FLAGS] [OPTIONS] <password> --smartlist <smartlist>...

ФЛАГИ:
    -h, --help       Вывод справки
    -s, --summary    Вывод сводки энтропии для пароля
    -V, --version    Вывод версии

ОПЦИИ:
    -t, --mask-type <mask_type>              Тип маски для вывода; один из: charsets(только наборы символов), hybrid(наборы символов+списки слов) [возможные значения: hybrid, charset]
    -p, --passwords-file <passwords-file>    Файл паролей, разделённых новой строкой, для оценки энтропии
    -f, --smartlist <smartlist>...           Входной файл smartlist для оценки энтропии; текстовый файл, разделённый новой строкой

АРГУМЕНТЫ:
    <password>    Пароль для

Лицензия

Cracken лицензирован под MIT. ДАННЫЙ ПРОЕКТ ДОЛЖЕН ИСПОЛЬЗОВАТЬСЯ ТОЛЬКО В ЗАКОННЫХ ЦЕЛЯХ ⚖️

Участие

Cracken находится в активной разработке; если вы хотите помочь, ниже представлен частичный план развития этого проекта. Не стесняйтесь отправлять pull request'ы и открывать issues.

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