Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cracken — 빠른 비밀번호 워드리스트 생성기, Smartlist 생성 및 비밀번호 하이브리드 마스크 분석 도구로, 순수하고 안전한 Rust로 작성되었습니다. | Kitploit
도구/GitHubGitHub/shmuelamar/cracken
Password CrackingPassword AttacksHash AnalysisPenetration Testing
GitHubshmuelamar/cracken

cracken

빠른 비밀번호 워드리스트 생성기, Smartlist 생성 및 비밀번호 하이브리드 마스크 분석 도구로, 순수하고 안전한 Rust로 작성되었습니다.

저장소 보기
37426134년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

크래켄

cracken crate cracken version cracken documentation cracken total downloads

Cracken은 안전한 순수 Rust로 작성된 빠른 비밀번호 단어 목록 생성기, Smartlist 생성 및 비밀번호 하이브리드-마스크 분석 도구입니다(talk/에서 더 자세히). maskprocessor, hashcat, Crunch 및 🤗 HuggingFace의 tokenizers와 같은 훌륭한 도구에서 영감을 받았습니다.

무엇? 왜? 우와??

DeepSec2021에서 우리는 NLP tokenizers를 활용하여 비밀번호에서 공통 하위 문자열을 이용한 Hybrid-Masks로 비밀번호를 분석하는 새로운 방법을 발표했습니다(talk/에서 더 자세히).

우리의 방법은 단순한 문자 마스크 대신 비밀번호를 하위 단어(subwords)로 분할합니다. HelloWorld123!는 ['Hello', 'World', '123!']로 분할되는데, 이 세 하위 단어는 다른 비밀번호에서 매우 일반적입니다.

하이브리드 마스크 & Smartlists

  • 📄 Smartlists - NLP tokenizers를 활용하여 비밀번호에서 생성된 간결하고 대표적인 하위 단어 목록
  • 🎭 Hybrid-Mask - 단어 목록과 문자의 조합으로 비밀번호를 나타내는 표현 (예: ?w1?w2?l?d)

Smartlists & Hybrid-Masks로 RockYou 비밀번호 분석:

Top25 Hybrid Masks from RockYou

전체 테이블 여기

Cracken 🐙은 다음에 사용됩니다:

  • ✅ Hybrid-Masks 생성 - 매우 매우 빠름 🦸⚡💨 (성능 섹션 참조)
  • ✅ Smartlists 구축 - 주어진 비밀번호 파일에서 간결하고 대표적인 하위 단어 목록 (🤗 HuggingFace의 tokenizers 사용)
  • ✅ 비밀번호의 Hybrid-Masks 분석 - 더 나은 비밀번호 후보를 위한 통계 구축 (역시 매우 빠름)

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. 가장 빈번한 Hybrid-Masks를 사용하여 비밀번호 후보 빠르게 생성 - cracken generate -i hybrid-masks.txt

자세한 내용은 사용법 섹션 참조

시작하기

다운로드 (현재 리눅스만 지원): 최신 릴리스 🔗

더 많은 설치 옵션은 설치 섹션 참조

Cracken 실행:

대문자로 시작하고 6개의 소문자와 숫자로 끝나는 길이 8의 모든 단어 생성:

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

두 개의 단어 목록에서 연도 접미사(1000-2999)를 포함한 단어 생성 <firstname><lastname><year>

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

rockyou.txt에서 추출한 하위 단어로 크기 50k의 Smartlist 생성

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

Smartlist를 사용하여 비밀번호 HelloWorld123!의 하이브리드 마스크 엔트로피 추정

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은 아마도 세계에서 가장 빠른 단어 목록 생성기일 것입니다:

bechmarks results

Cracken은 C로 작성된 hashcat의 빠른 maskprocessor보다 약 25% 향상된 성능을 제공합니다.

Cracken은 코어당 약 2 GB/s를 생성할 수 있습니다.

자세한 내용은 benchmarks/ 🔗 참조

속도가 중요한 이유는 무엇일까요? 일반 GPU는 비밀번호 해시 함수에 따라 초당 수십억 개의 비밀번호를 테스트할 수 있습니다. 단어 목록 생성기가 크래킹 도구가 처리할 수 있는 것보다 초당 더 적은 단어를 생성하면 크래킹 속도가 저하됩니다.

하이브리드-마스크 분석 성능

Cracken은 A* 알고리즘을 사용하여 비밀번호를 매우 빠르게 분석합니다. 약 100k 비밀번호/초 속도로 비밀번호 파일의 최소 하이브리드-마스크를 찾을 수 있습니다. (cracken entropy -f words1.txt -f words2.txt ... -p pwds.txt)

설치

Cracken 설치 또는 소스에서 컴파일

바이너리 다운로드 (현재 리눅스만 지원)

최신 릴리스 다운로드: releases 🔗

소스에서 빌드 (모든 플랫폼)

Cracken은 Rust로 작성되었으며 컴파일하려면 rustc가 필요합니다. Cracken은 Rust가 지원하는 모든 플랫폼을 지원해야 합니다.

cargo 설치 지침 🔗

소스에서 빌드하는 두 가지 옵션이 있습니다 - crates.io에서 cargo로 설치 (권장) 또는 소스에서 수동 컴파일.

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 - a fast password wordlist generator 

USAGE:
    cracken [SUBCOMMAND]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    generate    (default) - Generates newline separated words according to given mask and wordlist files
    create      Create a new smartlist from input file(s)
    entropy     
                Computes the estimated entropy of password or password file.
                The entropy of a password is the log2(len(keyspace)) of the password.
                
                There are two types of keyspace size estimations:
                  * mask - keyspace of each char (digit=10, lowercase=26...).
                  * hybrid - finding minimal split into subwords and charsets.


For specific subcommand help run: cracken <subcommand> --help


Example Usage:

  ## Generate Subcommand Examples:

  # all digits from 00000000 to 99999999
  cracken ?d?d?d?d?d?d?d?d

  # all digits from 0 to 99999999
  cracken -m 1 ?d?d?d?d?d?d?d?d

  # words with pwd prefix - pwd0000 to pwd9999
  cracken pwd?d?d?d?d

  # all passwords of length 8 starting with upper then 6 lowers then digit
  cracken ?u?l?l?l?l?l?l?d

  # same as above, write output to pwds.txt instead of stdout
  cracken -o pwds.txt ?u?l?l?l?l?l?l?d

  # custom charset - all hex values
  cracken -c 0123456789abcdef '?1?1?1?1'

  # 4 custom charsets - the order determines the id of the charset
  cracken -c 01 -c ab -c de -c ef '?1?2?3?4'

  # 4 lowercase chars with years 2000-2019 suffix
  cracken -c 01 '?l?l?l?l20?1?d'

  # starts with firstname from wordlist followed by 4 digits
  cracken -w firstnames.txt '?w1?d?d?d?d'

  # starts with firstname from wordlist with lastname from wordlist ending with symbol
  cracken -w firstnames.txt -w lastnames.txt -c '!@#$' '?w1?w2?1'

  # repeating wordlists multiple times and combining charsets
  cracken -w verbs.txt -w nouns.txt '?w1?w2?w1?w2?w2?d?d?d'


  ## Create Smartlists Subcommand Examples:

  # create smartlist from single file into smart.txt
  cracken create -f rockyou.txt --smartlist smart.txt

  # create smartlist from multiple files with multiple tokenization algorithms
  cracken create -t bpe -t unigram -t wordpiece -f rockyou.txt -f passwords.txt -f wikipedia.txt --smartlist smart.txt

  # create smartlist with minimum subword length of 3 and max numbers-only subwords of size 6
  cracken create -f rockyou.txt --min-word-len 3 --numbers-max-size 6 --smartlist smart.txt


  ## Entropy Subcommand Examples:

  # estimating entropy of a password
  cracken entropy --smartlist vocab.txt 'helloworld123!'

  # estimating entropy of a passwords file with a charset mask entropy (default is hybrid)
  cracken entropy --smartlist vocab.txt -t charset -p passwords.txt

  # estimating the entropy of a passwords file
  cracken entropy --smartlist vocab.txt -p passwords.txt

cracken-v1.0.0 linux-x86_64 compiler: rustc 1.56.1 (59eed8a2a 2021-11-01)
more info at: https://github.com/shmuelamar/cracken

Generate 하위 명령어 사용법 정보

root@kitploit:~
$ cracken generate --help
cracken-generate 
(default) - Generates newline separated words according to given mask and wordlist files

USAGE:
    cracken generate [FLAGS] [OPTIONS] <mask> --masks-file <masks-file>

FLAGS:
    -h, --help       
            Prints help information

    -s, --stats      
            prints the number of words this command will generate and exits

    -V, --version    
            Prints version information


OPTIONS:
    -c, --custom-charset <custom-charset>...    
            custom charset (string of chars). up to 9 custom charsets - ?1 to ?9. use ?1 on the mask for the first charset

    -i, --masks-file <masks-file>               
            a file containing masks to generate

    -x, --maxlen <max-length>                   
            maximum length of the mask to start from

    -m, --minlen <min-length>                   
            minimum length of the mask to start from

    -o, --output-file <output-file>             
            output file to write the wordlist to, defaults to stdout

    -w, --wordlist <wordlist>...                
            filename containing newline (0xA) separated words. note: currently all wordlists loaded to memory


ARGS:
    <mask>    
            the wordlist mask to generate.
            available masks are:
                builtin charsets:
                ?d - digits: "0123456789"
                ?l - lowercase: "abcdefghijklmnopqrstuvwxyz"
                ?u - uppercase: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
                ?s - symbols: " !\"\#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
                ?a - all characters: ?d + ?l + ?u + ?s
                ?b - all binary values: (0-255)
            
                custom charsets ?1 to ?9:
                ?1 - first custom charset specified by --charset 'mychars'
            
                wordlists ?w1 to ?w9:
                ?w1 - first wordlist specified by --wordlist 'my-wordlist.txt'

Smartlist 생성 하위 명령어 사용법 정보

root@kitploit:~
$ cracken create --help  
cracken-create 
Create a new smartlist from input file(s)

USAGE:
    cracken create [FLAGS] [OPTIONS] --file <file>... --smartlist <smartlist>

FLAGS:
    -h, --help       Prints help information
    -q, --quiet      disables printing progress bar
    -V, --version    Prints version information

OPTIONS:
    -f, --file <file>...                         input filename, can be specified multiple times for multiple files
        --min-frequency <min_frequency>          minimum frequency of a word, relevant only for BPE tokenizer
    -l, --min-word-len <min_word_len>            filters words shorter than the specified length
        --numbers-max-size <numbers_max_size>    filters numbers (all digits) longer than the specified size
    -o, --smartlist <smartlist>                  output smartlist filename
    -t, --tokenizer <tokenizer>...               tokenizer to use, can be specified multiple times.
                                                 one of: bpe,unigram,wordpiece [default: bpe]  [possible values: bpe, unigram, wordpiece]
    -m, --vocab-max-size <vocab_max_size>        max vocabulary size

Entropy 하위 명령어 사용법 정보

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

Computes the estimated entropy of password or password file.
The entropy of a password is the log2(len(keyspace)) of the password.

There are two types of keyspace size estimations:
  * mask - keyspace of each char (digit=10, lowercase=26...).
  * hybrid - finding minimal split into subwords and charsets.


USAGE:
    cracken entropy [FLAGS] [OPTIONS] <password> --smartlist <smartlist>...

FLAGS:
    -h, --help       Prints help information
    -s, --summary    output summary of entropy for password
    -V, --version    Prints version information

OPTIONS:
    -t, --mask-type <mask_type>              type of mask to output, one of: charsets(charsets only), hybrid(charsets+wordlists) [possible values: hybrid, charset]
    -p, --passwords-file <passwords-file>    newline separated password file to estimate entropy for
    -f, --smartlist <smartlist>...           smartlist input file to estimate entropy with, a newline separated text file

ARGS:
    <password>    password to

라이선스

Cracken은 MIT 라이선스로 제공됩니다. 이 프로젝트는 법적 목적으로만 사용해야 합니다 ⚖️

기여

Cracken은 활발히 개발 중입니다. 도움을 주시려면 아래는 이 프로젝트의 부분 로드맵입니다. PR을 제출하고 이슈를 개설해 주세요.

도구 다운로드