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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
vuke — 취약한 암호화 키 생성(brainwallet, PRNG, milksad, LCG, xorshift)을 연구하기 위한 도구 | Kitploit
도구/GitHubGitHub/oritwoen/vuke
Password CrackingVulnerability AnalysisExploitationForensicsCryptographyPapers & ResearchLearning & Education
GitHuboritwoen/vuke

vuke

취약한 암호화 키 생성(brainwallet, PRNG, milksad, LCG, xorshift)을 연구하기 위한 도구

저장소 보기
185146개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

vuke

크레이트.io 다운로드 라이선스 DeepWiki에 질문하기

취약한 비트코인 키 생성을 분석하고 재현하기 위한 연구 도구입니다.

기능

  • 모듈식 아키텍처 - 플러그 가능한 소스와 변환
  • 다중 입력 소스
    • 숫자 범위 (취약한 시드 테스트)
    • 워드리스트 (브레인월렛 분석)
    • 타임스탬프 (시간 기반 PRNG 악용)
    • Stdin 스트리밍 (파이프라인 통합)
  • 역사적 취약점 변환
    • 직접 (원시 바이트를 키로)
    • SHA256 (클래식 브레인월렛)
    • 이중 SHA256 (비트코인 스타일 해싱)
    • MD5 (레거시 취약 해싱)
    • SHA256 체인 (반복/인덱스 기반 결정론적 파생)
    • Milksad (MT19937 PRNG - CVE-2023-39910)
    • MultiBit HD (시드를 엔트로피로 사용하는 버그)
    • Electrum pre-BIP39 (2011-2014 결정론적 파생)
    • Armory (레거시 HD 파생)
  • 키 출처 분석 - 취약한 생성 방법의 역탐지
  • Rayon을 통한 병렬 처리
  • 주소 일치 - 알려진 대상 스캔 용
  • 파일 출력 - 결과 저장용
  • 클라우드 스토리지 - S3/R2/MinIO에 비동기 업로드
  • 순수 Rust 구현

이 프로젝트의 목적

이 도구는 보안 연구를 위해 설계되었습니다. 과거에 취약한 키가 어떻게 생성되었는지 이해하는 것은 현대 지갑 보안을 개선하는 데 도움이 됩니다.

이 도구가 재현할 수 있는 역사적 취약점:

취약점연도영향
Brainwallets2011-2015SHA256(암호문) 쉽게 크랙됨
Weak PRNGs2013-2023예측 가능한 시드 (타임스탬프, PID)
Milksad2023libbitcoin bx가 32비트 시드로 MT19937 사용
MultiBit HD2014-201664바이트 BIP39 시드가 엔트로피로 사용됨
Electrum pre-BIP392011-2014약한 스트레칭을 사용한 맞춤형 결정론적 파생
Armory HD2012-2016BIP32 이전 결정론적 파생
LCG PRNGs1990s-2010sglibc rand(), MINSTD, MSVC - 31-32비트 상태만
Xorshift PRNGs2003-presentV8/SpiderMonkey Math.random() - 64-128비트 상태
SHA256 chains2010s-present약한 시드로부터의 결정론적 키 파생

설치

Cargo```bash

cargo install vuke

### 소스에서```bash
git clone https://github.com/oritwoen/vuke
cd vuke
cargo build --release

사용법

패스프레이즈로 단일 키 생성```bash

vuke single "correct horse battery staple" --transform sha256

출력:```
Passphrase: "correct horse battery staple"
Transform: sha256
Source: correct horse battery staple
---
Private Key (hex):     c4bbcb1fbec99d65bf59d85c8cb62ee2db963f0fe106f483d9afa73bd4e39a8a
WIF (compressed):      L3p8oAcQTtuokSCRHQ7i4MhjWc9zornvpJLfmg62sYpLRJF9woSu
---
P2PKH (compressed):   1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
P2WPKH:               bc1qfnpg7ceg02y64qrskgz0drwp3y6hma3q6wvnzr

알려진 주소 스캔 워드리스트```bash

vuke scan --transform=sha256 --targets known_addresses.txt wordlist --file passwords.txt

### 데이터 제공자

파일 경로 대신 동적 대상 로딩을 위해 공급자 참조를 사용하세요:```bash
# Scan all unsolved b1000 puzzles
vuke scan --transform=milksad --targets boha:b1000:unsolved range --start 1 --end 1000000

# Scan specific collection with filter
vuke scan --transform=sha256 --targets boha:b1000:with-pubkey wordlist --file words.txt

# Available filters: all, unsolved, solved, with-pubkey
vuke scan --targets boha:hash_collision:unsolved wordlist --file words.txt

Provider syntax: provider:collection:filter or provider:collection:id

사용 가능한 컬렉션 (boha 프로바이더):

  • b1000 - 비트코인 퍼즐 1000 (256개 퍼즐, 1-256비트)
  • gsmg - GSMG 퍼즐
  • bitaps - Bitaps 퍼즐
  • hash_collision - 해시 충돌 퍼즐
  • zden - Zden 퍼즐
  • bitimage - Bitimage 퍼즐

숫자 범위 테스트 (약한 시드)```bash

vuke generate --transform=milksad range --start 1 --end 1000000

### 테스트 LCG 기반 키```bash
# Generate keys using glibc rand() (default big-endian)
vuke generate --transform=lcg:glibc range --start 1 --end 1000000

# Use MINSTD variant with big-endian byte order
vuke generate --transform=lcg:minstd:be range --start 1 --end 1000

# Test all LCG variants at once
vuke generate --transform=lcg range --start 1 --end 100

xorshift 기반 키 테스트```bash

Generate keys using all xorshift variants (requires cascade filter for analysis)

vuke generate --transform=xorshift range --start 1 --end 1000000

Use specific variant

vuke generate --transform=xorshift:64 range --start 1 --end 1000 vuke generate --transform=xorshift:128 range --start 1 --end 1000 vuke generate --transform=xorshift:128plus range --start 1 --end 1000 vuke generate --transform=xorshift:xoroshiro range --start 1 --end 1000

### 타임스탬프 기반 키 테스트```bash
vuke scan --transform=sha256 --targets addresses.txt timestamps --start 2015-01-01 --end 2015-01-31

파일로부터 키 파생 (Bitimage)```bash

Generate key from a single file

vuke generate --transform=bitimage files --file image.jpg

Scan directory recursively

vuke generate --transform=bitimage files --dir ./images/

With custom derivation path and passphrase

vuke generate --transform=bitimage --bitimage-path "m/44'/0'/0'/0/0" --bitimage-passphrase "secret" files --file photo.png

Derive multiple addresses per file

vuke generate --transform=bitimage --bitimage-derive-count 10 files --dir ./data/

Brute-force passphrases from wordlist

vuke scan --transform=bitimage --bitimage-passphrase-wordlist passphrases.txt --targets addresses.txt files --dir ./images/

### 다중 변환```bash
vuke scan --transform=sha256 --transform=double_sha256 --transform=md5 --targets addresses.txt wordlist --file words.txt

stdin에서 파이프```bash

cat passwords.txt | vuke generate --transform=sha256 stdin

### 결과를 파일에 저장```bash
vuke generate --output results.csv range --start 1 --end 1000000
vuke generate --output results.txt --verbose range --start 1 --end 1000
vuke scan --output hits.txt --targets addresses.txt wordlist --file passwords.txt

영구 저장소 (Parquet)

TB 규모 분석을 위해 결과를 Parquet 형식으로 저장합니다 (storage 기능 필요):```bash

Build with storage support

cargo build --release --features storage

Store generated keys to Parquet

vuke generate --storage ./results --transform milksad range --start 1 --end 1000000

Configure chunk rotation

vuke generate --storage ./results --chunk-records 500000 --chunk-bytes 50M range --start 1 --end 10000000

Configure compression (default: zstd level 3)

vuke generate --storage ./results --compression zstd --compression-level 9 range --start 1 --end 1000000

No compression (fastest writes)

vuke generate --storage ./results --compression none range --start 1 --end 1000000

Available algorithms: none, snappy, gzip, lz4, zstd

### 저장된 결과 쿼리 (SQL)

SQL을 사용하여 저장된 Parquet 파일을 쿼리합니다 (`storage-query` 기능 필요):```bash
# Build with query support
cargo build --release --features storage-query

# Count results by transform
vuke query ./results "SELECT transform, COUNT(*) FROM results GROUP BY transform"

# Find matches
vuke query ./results "SELECT * FROM results WHERE matched_target IS NOT NULL LIMIT 10"

# Export to JSON
vuke query ./results --format json "SELECT source, wif_compressed FROM results LIMIT 100"

# Export to CSV
vuke query ./results --format csv "SELECT address_p2pkh_compressed, wif_compressed FROM results" > export.csv

# Show schema
vuke query ./results --schema

출력 형식: table (기본값), json, csv

클라우드 업로드 (S3 호환)

Parquet 결과를 S3 호환 스토리지에 업로드 (storage-cloud 기능 필요):```bash

Build with cloud upload support

cargo build --release --features storage-cloud

Set credentials (AWS S3)

export AWS_ACCESS_KEY_ID=your_key export AWS_SECRET_ACCESS_KEY=your_secret

Upload to AWS S3

vuke generate --storage ./results --cloud-upload --cloud-bucket my-bucket
--transform milksad range --start 1 --end 1000000

Upload to Cloudflare R2

vuke generate --storage ./results --cloud-upload
--cloud-endpoint https://account.r2.cloudflarestorage.com
--cloud-bucket my-r2-bucket
--transform milksad range --start 1 --end 1000000

Upload to MinIO (self-hosted)

vuke generate --storage ./results --cloud-upload
--cloud-endpoint http://localhost:9000
--cloud-bucket vuke-results
--transform milksad range --start 1 --end 1000000

도구 다운로드