Brute forcing bitcoin wallet
Plutus Bitcoin Brute Forcer
A Bitcoin wallet collider that brute forces random wallet addresses
Like This Project? Give It A Star
Python modules listed in the requirements.txt
Proof Of Concept
A private key is a secret number that allows Bitcoins to be spent. If a wallet has Bitcoins in it, then the private key will allow a person to control the wallet and spend whatever balance the wallet has. So this program attempts to find Bitcoin private keys that correlate to wallets with positive balances. However, because it is impossible to know which private keys control wallets with money and which private keys control empty wallets, we have to randomly look at every possible private key that exists and hope to find one that has a balance.
This program is essentially a brute forcing algorithm. It continuously generates random Bitcoin private keys, converts the private keys into their respective wallet addresses, then checks the balance of the addresses. If a wallet with a balance is found, then the private key, public key and wallet address are saved to the text file plutus.txt on the user’s hard drive. The ultimate goal is to randomly find a wallet with a balance out of the 2 160 possible wallets in existence.
Private keys are generated randomly to create a 32 byte hexidecimal string using the cryptographically secure os.urandom() function.
The private keys are converted into their respective public keys using the starkbank-ecdsa Python module. Then the public keys are converted into their Bitcoin wallet addresses using the binascii and hashlib standard libraries.
A pre-calculated database of every P2PKH Bitcoin address with a positive balance is included in this project. The generated address is searched within the database, and if it is found that the address has a balance, then the private key, public key and wallet address are saved to the text file plutus.txt on the user’s hard drive.
This program also utilizes multiprocessing through the multiprocessing.Process() function in order to make concurrent calculations.
It takes 0.0032457721 seconds for this progam to brute force a single Bitcoin address.
However, through multiprocessing.Process() a concurrent process is created for every CPU your computer has. So this program can brute force addresses at a speed of 0.0032457721 ÷ cpu_count() seconds.
An offline database is used to find the balance of generated Bitcoin addresses. Visit /database for information.
Every time this program checks the balance of a generated address, it will print the result to the user. If an empty wallet is found, then the wallet address will be printed to the terminal. An example is:
However, if a wallet with a balance is found, then all necessary information about the wallet will be saved to the text file plutus.txt . An example is:
hex private key: 5A4F3F1CAB44848B2C2C515AE74E9CC487A9982C9DD695810230EA48B1DCEADD
WIF private key: 5JW4RCAXDbocFLK9bxqw5cbQwuSn86fpbmz2HhT9nvKMTh68hjm
public key: 04393B30BC950F358326062FF28D194A5B28751C1FF2562C02CA4DFB2A864DE63280CC140D0D540EA1A5711D1E519C842684F42445C41CB501B7EA00361699C320
address: 1Kz2CTvjzkZ3p2BQb5x5DX6GEoHX2jFS45
This program uses approximately 2GB of RAM per CPU. Because this program uses multiprocessing, some data gets shared between threads making it difficult to accurately measure RAM usage.
The memory consumption stack trace was made by using mprof to monitor this program brute force 10,000 addresses on a 4 logical processor machine with 8GB of RAM. As a result, 4 child processes were created, each consuming 2100MiB of RAM (
Источник
Brute forcing bitcoin wallet
The purpose of this program is to try to find the password of an encrypted Peercoin (or Bitcoin, Litecoin, etc. ) wallet file (i.e. wallet.dat).
It can be used in two ways:
- try all the possible passwords given a charset
- try all the passwords in a file
There is a command line option to specify the number of threads to use.
Sending a USR1 signal to a running bruteforce-wallet process makes it print progress and continue.
The program tries to decrypt one of the encrypted addresses in the wallet by trying all the possible passwords. It is especially useful if you know something about the password (i.e. you forgot a part of your password but still remember most of it). Finding the password of a wallet without knowing anything about it would take way too much time (unless the password is really short and/or weak).
There are command line options to specify:
- the minimum password length to try
- the maximum password length to try
- the beginning of the password
- the end of the password
- the character set to use (among the characters of the current locale)
The program tries to decrypt one of the encrypted addresses in the wallet by trying all the passwords contained in a file. The file must have one password per line.
The program requires the OpenSSL and BerkeleyDB libraries. Installation on Debian & Ubuntu:
If you are building from the raw sources, you must first generate the configuration script:
Then, build the program with the commands:
To install it on your system, use the command:
The program currently only works on unix-like POSIX systems (e.g. GNU/Linux).
Different versions of BerkeleyDB are usually not compatible with each other. Therefore, for the program to work, you will have to check that the BerkeleyDB version you are using can read the databases created by the BerkeleyDB version your wallet was created with.
Try to find the password of an encrypted wallet file using 4 threads, trying only passwords with 5 characters:
Try to find the password of an encrypted wallet file using 8 threads, trying only passwords with 5 to 10 characters beginning with «W4l» and ending with «z»:
Try to find the password of an encrypted wallet file using 8 threads, trying only passwords with 10 characters using the character set «P情8ŭ»:
Try to find the password of an encrypted wallet file using 6 threads, trying the passwords contained in a dictionary file:
Print progress info:
Print progress info every 30 seconds:
Save/restore state between sessions:
About
Try to find the password of an encrypted Peercoin (or Bitcoin, Litecoin, etc. ) wallet file.
Источник
Brute forcing bitcoin wallet
Bitcoin addresses bruteforce tool via GPU OpenCL
На написание данной программы автора вдохновил проект «Large Bitcoin Collider» https://lbc.cryptoguru.org целью которого позиционируется поиск коллизий хеша ripemd160 (hash 160), являющегося основой для вычисления адреса bitcoin кошелька. Т.е. предполагается, что существует по крайней мере 2^96 различных закрытых ключей, которые будут иметь одинаковый ripemd160 хеш и, соответственно, один bitcoin адрес.
Как это работает
Данное программноге обеспечение разработано как инструмент изучения аспектов безопасности применения эллиптических кривых на практике. Программа выполняет перебор закрытых ключей, вычисляет открытый ключ и на его основе хеш ripemd160, ищет вычисленный хеш в списке хешей существующих bitcoin адресов. Если будет найдено совпадение хешей, это означает что найден закрытый ключ к одному из указанных bitcoin адресов.
Для начала потребуется создать файл со списком хешей ripemd160 интересуемых bitcoin адресов в бинарном формате. Т.е. это файл, в котором подряд друг за другом записаны хеши интересуемых адресов в бинарном формате (20 байт на хеш). К данному проекту прилагается файл с хешами bitcoin адресов (файл bitcoin.bin).
Далее, следует запустить программу с указанием созданного файла хешей в качестве параметра (о параметрах запуска смотрите соответствующий раздел).
Если начальный закрытый ключ не задан, то он генерируется случайным образом. Из закрытого ключа вычисляется открытый ключ, а из него в свою очередь вычисляется хеш ripemd160 (более детально о вычислении bitcoin адреса из закрытого ключа можно почитать тут: https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses), полученный хеш ищется в списке интересуемых хешей (если совпадение найдено, значит закрытый ключ найден, информация о находке будет выведена на экран и записана в файл found.txt в пвпку с программой), далее закрытый ключ инкрементируется на единицу и процесс повторяется.
Проведем синтетический тест, который более наглядно покажет работу программы.
Предположим, нас интересует несколько кошельков:
Private key: 6AA3789CFE067047480EED275D4A017B812D19AE6A4B82105E0B7DCEAF64A1B5
Public key: 0446C360263B1794E429E7D672A878B5083C37D6BA177BFB68405EED3DB01804A210BDFD925C8E2CD16C054C3919C6F0889376E96EDC6B2BAF5D06D8F139601268
Private key: 4C9FC687F5604F80F224BAC08999006E6967D5071331C121F503D8352556D61C
Public key: 045C6D700D71FD80E75AA4965DFB3B3398062B03DA419379F95F5C9DBF5E9AD8C2BD9FE30F4C46B24ADAB8CBEB2F4AC51002971EB45E7086822E14BC362BAAAACC
Сохраним хеши RIPEMD-160 в бинарном формате в файле «test1.bin»
Программу запускаем со следующими параметрами: ./oclexplorer -b ./test1.bin -k 6AA3789CFE067047480EED275D4A017B812D19AE6A4B82105E0B7DCEAF000000 -u
Через некоторое время работы программы, будет найдено совпадение вычисляемого хеша с одним из хешей, сохраненных в файле «test1.bin»
Результат поиска будет выведен на экран и сохранен в файл «found.txt»
TIME: 2018-01-25 16:03:42
TIME: Дата и время нахождения
PRIV: Найденный приватный ключ
PUBL: Публичный ключ
HASH: Хеш bitcoin адреса в формате RIPEMD-160
ADDR: Bitcoin адрес
SALT: Приватный ключ, от которого начались вычисления
OFST: Дельта между найденным и начальным приватными ключами
GPUH: Хеш bitcoin адреса RIPEMD-160, вычисленный на GPU, всегда должен быть равен HASH
Установка и настройка
Работоспособность тестировалась на ОС Gentoo, Linux Mint, Debian. Тестирование проводилось на видеокартах: Nvidia GTX 230, Nvidia GT 730, Nvidia GTX 1060, Nvidia GTX 1080 ti, Radeon RX 570. Для работы требуются установленные библиотеки OpenCL и OpenSSL с включенной поддержкой эллиптических кривых.
Отказ от ответственности
Автор не несет ответственность за последствия, вызванные использованием Вами данного программного обеспечения. Помните, что нахождение закрытого ключа bitcoin кошелька и присвоение находящихся на нем средств в зависимости от вашей юрисдикции может считаться кражей и поэтому является незаконным.
Если Вас заинтересовал данный софт, но Вам нужно его модифицировать или написать аналогичный, автор всегда открыт к сотрудничеству, почта для связи: svtrostov@yandex.ru
Если данное программное обеспечение помогло Вам, буду рад вашей благодарности:
Источник
Белая Получаем доступ к чужому крипто-кошельку blockchain.com и Atomic Wallet
Monetka787
Monetka787
Monetka787
1. Для начала нужно сгенерировать Mnemonic code ( Мнемоническая фраза восстановления — это список слов, в которых хранится вся информация, необходимая для восстановления биткойн-кошелька. Для этого нужно перейти на этот сайт — ТЫК , выбираем количество слов 12 и нажимаем на GENERATE:
2. Копируем полученную фразу и переходим по этой ссылке — https://login.blockchain.com/#/recover
3. Вставляем фразу в строку и нажимаем «CONTINUE»:
4. Вводим новые данные для кошелька и кликаем на «RECOVER FUNDS»:
5. Если всё сделали правильно, то должно появиться такое сообщение —
Через несколько секунд нас перекинет уже на сам аккаунт:
Сразу скажу что шанс получить аккаунт с балансом примерно 1% , поэтому чтобы увеличить шансы получения аккунтов с балансом, можно использовать софт, который будет делать всё автоматически и сохранять данные
от аккаунтов в txt формате —
- Первый софт
- Второй софт
- Если нет VPN, так как на сайт для скачивания он требуется.То можно с Яндекс скачать тут,я перезалил.(Скорость низкая у сайта,у Яндекс хорошая.)Это второй софт. https://yadi.sk/d/M6Z2Qtz9pd3FCQ Проверка второго софта на вирусы VirusTotal
Результат с софтом:
Скрин работы второго софта.Много вкладок не открываю,4-5 хватает.Зависит от мощности компа и интернета.
Первый софт не тестил.
Так же можно поставить на дедик и забыть,проверять изредко.
ВЗЛОМ Atomic Wallet
1. Также генерируем Mnemonic code и копируем его
2. Переходим в кошелёк (ПК или мобильное приложение Atomic Wallet) и кликаем на «RESTORE FROM BACKUP»:
3. В строку вставляем Mnemonic и нажимаем на «RESTORE»:
4. Придумываем новый пароль от кошелька и получаем доступ к аккаунту:
В мобильном приложении всё делается также —
Для повторного входа в кошелёк нужен тот же Mnemonic, который использовали для взлома и пароль который вы изменили. Софт для автоматического взлома Atomic Wallet не был найден
Источник