Текущее местоположение: Главная / Резервные копии и безопасность после восстановления / Текст статьи

Восстановление кошелька Parity с помощью HashCat: полное руководство по работе с мнемонической фразой и keystore-файлом

Восстановление кошелька Parity с помощью HashCat: полное руководство по работе с мнемонической фразой и keystore-файлом

Кошелёк Parity (позднее OpenEthereum) долгое время оставался одним из самых популярных клиентов Ethereum. Многие пользователи до сих пор хранят средства на адресах, созданных в этом приложении, и периодически сталкиваются с классической проблемой: мнемоническая фраза и keystore-файл на месте, а вот пароль от аккаунта забыт. В такой ситуации на помощь приходит HashCat — самый известный в мире инструмент восстановления паролей, поддерживающий алгоритмы шифрования кошельков Ethereum.

Важно: данная статья носит исключительно образовательный характер и предназначена для восстановления доступа к собственным кошелькам. Попытка несанкционированного доступа к чужим средствам является уголовно наказуемым деянием.

Почему HashCat подходит для Parity

Parity хранит закрытые ключи в keystore-файлах формата JSON, зашифрованных паролем пользователя. В отличие от ранних версий Geth, где применялся алгоритм scrypt, Parity по умолчанию использует функцию PBKDF2-HMAC-SHA256 с 10240 итерациями. От этого напрямую зависит выбор режима атаки в HashCat:

  • Режим 15600 — Ethereum Wallet, PBKDF2-HMAC-SHA256 (основной режим для keystore-файлов Parity);
  • Режим 15700 — Ethereum Wallet, SCRYPT (если файл создан в Geth или MyEtherWallet);
  • Режим 16300 — Ethereum Pre-Sale Wallet (для кошельков, созданных на пресейле Ethereum).

Таким образом, если вы помните мнемоническую фразу, но забыли пароль от конкретного аккаунта, либо у вас остался только keystore-файл, HashCat позволяет системно перебрать возможные варианты пароля и вернуть контроль над средствами.

Подготовка: что понадобится

  1. Компьютер с дискретной видеокартой (NVIDIA или AMD) — перебор на CPU будет мучительно медленным.
  2. Свежая версия HashCat с официального сайта hashcat.net.
  3. Keystore-файл (обычно имеет имя вида UTC--дата--адрес). Стандартные пути:
    • Windows: %APPDATA%\Parity\Ethereum\keys\ethereum
    • Linux: ~/.local/share/io.parity.ethereum/keys/ethereum
    • macOS: ~/Library/Application Support/io.parity.ethereum/keys/ethereum
  4. Словари паролей (например, rockyou.txt) и собственные списки вероятных вариантов.
  5. Желательно — изолированная офлайн-машина без доступа к интернету: keystore и пароли не должны покидать ваше устройство.

Шаг 1. Извлечение хеша из keystore-файла

HashCat не умеет читать JSON-файл напрямую — из него необходимо извлечь хеш в специальном формате. Проще всего воспользоваться скриптом ethereum2hashcat.py, который входит в набор инструментов HashCat и BTCRecover:


![брутфорс пароля](/upload/upload/17/ba598040ee49ba0efa40dac02f7347cc_800_600.jpg)

python ethereum2hashcat.py UTC--2020-01-01T00-00-00Z--адрес > parity.hash

Для режима 15600 результат выглядит примерно так:

$ethereum$p*10240*<соль>*<зашифрованный_ключ>*<mac>

Все значения берутся из секции crypto keystore-файла: параметры итераций из kdfparams, соль, зашифрованный закрытый ключ и контрольная сумма MAC. Проверьте, что хеш записан одной строкой без пробелов и переносов.

Шаг 2. Выбор режима атаки

HashCat предлагает несколько стратегий перебора, и правильный выбор экономит недели машинного времени:

  • Словарная атака (-a 0) — перебор по готовому списку паролей. Эффективна, если вы использовали типичные или ранее утёкшие пароли.
  • Атака по маске (-a 3) — прямой перебор по шаблону, если вы помните структуру пароля (например, «слово + 4 цифры»).
  • Комбинаторная (-a 1) — склейка слов из двух словарей.
  • Гибридные атаки (-a 6, -a 7) — словарь плюс маска в конце или в начале. Идеальны для паролей вида «имя + год рождения».
  • Правила (-r) — мутации словарных слов: замена букв на цифры, заглавные буквы, добавление символов.

Шаг 3. Практические примеры команд

Словарная атака с правилами мутации:

hashcat -m 15600 -a 0 parity.hash wordlists/rockyou.txt -r rules/best64.rule -w 3

Атака по маске (заглавная буква, 5 строчных, 2 цифры — типичный паттерн):

мнемоническая фраза Parity

hashcat -m 15600 -a 3 parity.hash ?u?l?l?l?l?l?d?d -w 3

Гибридная атака (слово из вашего списка + 4 цифры в конце):

hashcat -m 15600 -a 6 parity.hash my_words.txt ?d?d?d?d -w 3

Работа с сессиями для длительного перебора с возможностью паузы:

hashcat -m 15600 -a 3 parity.hash ?a?a?a?a?a?a?a?a --session parity_restore -w 3
hashcat --session parity_restore --restore

Просмотр найденного пароля после завершения:

hashcat -m 15600 parity.hash --show

Обозначения масок: ?l — строчная буква, ?u — заглавная, ?d — цифра, ?s — спецсимвол, ?a — любой символ. Пользовательские наборы символов задаются параметрами -1, -2 и т. д.

Советы по составлению масок и словарей

Ключ к успеху — не мощность видеокарты, а точность гипотез. Вспомните свои привычки:

  • Начинали ли вы пароль с заглавной буквы?
  • Добавляли ли год, дату рождения или «!» в конце?

keystore Ethereum

  • Использовали ли замены вроде «a» → «@», «o» → «0»?
  • Какой была примерная длина пароля?

Составьте персональный словарь из старых паролей, имён, кличек, важных дат и прогоните его с правилами best64.rule или dive.rule. Это покрывает огромное количество реальных человеческих паттернов за считанные часы.

Производительность и оптимизация

  • Параметр -w 3 (или 4) максимально загружает GPU.
  • Опция -O включает оптимизированное ядро, но ограничивает максимальную длину пароля.
  • PBKDF2 с 10240 итерациями — относительно «медленный» алгоритм: в зависимости от видеокарты рассчитывайте на десятки–сотни тысяч проверок в секунду. Режим scrypt (15700) ещё тяжелее на порядок.
  • Следите за температурой: длительный перебор требует хорошего охлаждения и актуальных драйверов.
  • Никогда не задавайте маски шире реальной памяти о пароле: каждый лишний символ ?a увеличивает время перебора почти в 100 раз.

Если утеряна часть самой мнемоники

Важно понимать ограничение: HashCat перебирает пароли от keystore, а не слова seed-фразы BIP-39. Если вы потеряли 1–4 слова мнемоники, забыли их порядок или допустили опечатку, используйте связку с BTCRecover (модуль seedrecover.py) — он перебирает варианты словаря BIP-39 и проверяет полученные адреса. Связка «BTCRecover для фразы + HashCat для пароля» закрывает практически все сценарии восстановления Parity.

Что делать после успешного восстановления

  1. Импортируйте расшифрованный ключ в актуальный кошелёк (MetaMask, Rabby, MyEtherWallet).
  2. Немедленно переведите средства на новый адрес со свежей мнемонической фразой — старый ключ мог скомпрометироваться за годы хранения.
  3. Безвозвратно удалите временные файлы: хеши, словари с личными паролями, potfile HashCat.

Типичные ошибки новичков

  • Неверный режим: выбор 15700 вместо 15600 приведёт к мгновенной ошибке или бессмысленному перебору. Всегда проверяйте поле kdf в JSON.
  • Повреждённый keystore: неполное копирование файла ломает структуру хеша.
  • Лишние символы: переносы строк и пробелы в файле с хешом вызывают ошибку парсинга.
  • Завышенные ожидания: полный перебор пароля из 9–10 случайных символов нереален даже на ферме из GPU — делайте ставку на память и логику, а не на грубую силу.

Заключение

HashCat остаётся золотым стандартом восстановления паролей кошельков Parity: правильно извлечённый хеш, грамотно подобранный режим 15600 и продуманные маски превращают безнадёжную ситуацию в решаемую инженерную задачу. Действуйте методично, начинайте с самых вероятных гипотез, работайте офлайн — и помните, что восстановление собственного кошелька легально, а вот чужого — категорически нет.