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

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

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

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

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

Категории

Все категории
Loading categories
vuke — Инструмент для исследования уязвимой генерации криптографических ключей (brainwallet, PRNG, milksad, LCG, xorshift) | Kitploit
Инструменты/GitHubGitHub/oritwoen/vuke
Взлом паролейАнализ уязвимостейЭксплуатацияФорензикаКриптографияСтатьи и ИсследованияОбучение и Образование
GitHuboritwoen/vuke

vuke

Инструмент для исследования уязвимой генерации криптографических ключей (brainwallet, PRNG, milksad, LCG, xorshift)

Репозиторий
185146 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

vuke

Crates.io Downloads License Ask DeepWiki

Исследовательский инструмент для анализа и воспроизведения уязвимой генерации ключей Bitcoin.

Особенности

  • Модульная архитектура — подключаемые источники и преобразования
  • Несколько источников ввода
    • Числовые диапазоны (тестирование слабых seed)
    • Списки слов (анализ brainwallet)
    • Метки времени (эксплуатация PRNG на основе времени)
    • Потоковый ввод stdin (интеграция в конвейеры)
  • Преобразования исторических уязвимостей
    • Direct (сырые байты как ключ)
    • SHA256 (классический brainwallet)
    • Double SHA256 (хеширование в стиле Bitcoin)
    • MD5 (устаревшее слабое хеширование)
    • SHA256 chain (итерированная/индексированная детерминированная деривация)
    • Milksad (PRNG MT19937 — CVE-2023-39910)
    • MultiBit HD (ошибка seed-как-энтропия)
    • Electrum pre-BIP39 (2011-2014 детерминированная деривация)
    • Armory (устаревшая HD деривация)
  • Анализ происхождения ключа — обратное обнаружение уязвимых методов генерации
  • Параллельная обработка через Rayon
  • Сопоставление адресов для сканирования известных целей
  • Вывод в файл для сохранения результатов
  • Облачное хранилище — асинхронная загрузка в S3/R2/MinIO
  • Реализация на чистом Rust

Зачем этот проект?

Этот инструмент предназначен для исследования безопасности — понимание того, как в прошлом генерировались уязвимые ключи, помогает улучшить безопасность современных кошельков.

Исторические уязвимости, которые может воспроизвести этот инструмент:

УязвимостьГодВоздействие
Brainwallets2011-2015SHA256(пароль) легко взламывается
Слабые PRNG2013-2023Предсказуемые seed (метки времени, PID)
Milksad2023libbitcoin bx использовал MT19937 с 32-битными seed
MultiBit HD2014-201664-байтовый seed BIP39 использовался как энтропия
Electrum pre-BIP392011-2014Пользовательская детерминированная деривация с слабым растяжением
Armory HD2012-2016Детерминированная деривация до BIP32
LCG PRNG1990-е-2010-еglibc rand(), MINSTD, MSVC — только 31-32-битное состояние
Xorshift PRNG2003-наст. времяV8/SpiderMonkey Math.random() — 64-128-битное состояние
SHA256 chain2010-е-наст. времяДетерминированная деривация ключей из слабых seed

Установка

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:collection:filter или provider:collection:id

Доступные коллекции (провайдер boha):

  • b1000 - Головоломка Bitcoin 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-based ключей```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)

Сохраняйте результаты в формате 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)

Запрос сохраненных файлов Parquet с помощью SQL (требуется функция `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"
Скачать инструмент