Pages:
Author

Topic: lost password on blockchain.info wallet - page 2. (Read 26697 times)

newbie
Activity: 39
Merit: 0
October 09, 2014, 10:43:29 PM
#18
that's easy, because blockchain is a online wallet and owned by blockchain, you only need to prove that the wallet is really belong to yours , and then they will help you deal with it.
hero member
Activity: 672
Merit: 504
a.k.a. gurnec on GitHub
October 09, 2014, 04:38:47 PM
#17
Well, I should have read better! Since english is not my native language and there was a lot of text I did not read everything (yet)
Also due to the fact I could not wait to begin testing Smiley

Wait, you're not a native English speaker?? Your English is much better than many (most?) native speakers I've seen on this board...

I'm trying to use a wordlist with JtR but I can't really get it to work.
My hash file looks good, I extracted the hash from a blockchain.info wallet with the tool called blockchain2john.
The password is something like house1tree2
I made a wordlist.txt
Code:
house
1
tree
2
car
3
...

Sorry, I actually don't know that much about JtR... but I think that the --wordlist option just takes the input file and uses each line as a single password, so nothing at all like btcrecover's token file. JtR can make all sorts of alterations to each line, but I don't know much about making JtR construct whole passwords the way btcrecover does.

You can however use both programs together: you can run btcrecover with the --listpass option (and with no --wallet), and it will generate and output whole passwords to test, one per line, and then you can use JtR (with it's better cracking speed) to actually try the passwords. I imagine there's a way for JtR to accept passwords directly from it's stdin, so you could pipe the output of btcrecover directly to JtR, e.g.

Code:
btcrecover.py --token tokens.txt --listpass | john --options...

By the way, there is a small error in the code you gave earlier.
...

Oops, my mistake, thanks.
legendary
Activity: 1022
Merit: 1008
Delusional crypto obsessionist
October 09, 2014, 04:18:50 PM
#16
, I mean if you know that the password contains "house" and "tree" and 2 or 5 other characters/numbers. Is it still possible to bruteforce through all these options?
Like
housetree11111
housetree11112
housetree11113

Sure, here's a token file:

Code:
house
tree
%2,5d

That third token becomes all combinations of numeric digits, between 2 and 5 digits long, and can appear in the beginning, end, or between the other two tokens. It's described here in the tutorial: https://github.com/gurnec/btcrecover/blob/master/TUTORIAL.md#expanding-wildcards

If you'd like to restrict that wildcard token to the end, you'd use this:

Code:
house
tree
%2,5d$

That "$" forces it to be at the end (if present at all, it doesn't make the token required in every try). That feature is described here: https://github.com/gurnec/btcrecover/blob/master/TUTORIAL.md#anchors

Well, I should have read better! Since english is not my native language and there was a lot of text I did not read everything (yet)
Also due to the fact I could not wait to begin testing Smiley

I'm trying to use a wordlist with JtR but I can't really get it to work.
My hash file looks good, I extracted the hash from a blockchain.info wallet with the tool called blockchain2john.
The password is something like house1tree2
I made a wordlist.txt
Code:
house
1
tree
2
car
3

But when I run john with:
Code:
./john --wordlist=../../wordlist.txt --rules ../../wallet.hash

I get:
Code:
Loaded 1 password hash (Blockchain, My Wallet [PBKDF2-SHA1 AES 4x SSE2])
Will run 2 OpenMP threads
Note: This format may emit false positives, so it will keep trying even after
finding a possible candidate.
Press 'q' or Ctrl-C to abort, almost any other key for status
0g 0:00:00:00 DONE (2014-10-09 23:13) 0g/s 536.6p/s 536.6c/s 536.6C/s Caring
Session completed

Then I do:
Code:
./john --show ../../wallet.hash

and get:
Code:
0 password hashes cracked, 1 left

What's wrong? All the words are in the wordslist.

By the way, there is a small error in the code you gave earlier.
Code:
python -c "import urllib2,json;f=urllib2.urlopen('https://blockchain.info/wallet/9bb4c672-563e-4806-9012-a3e8f86a0eca?format=json');print json.loads(f.read())['payload']" > wallet.json.aes

should be:
Code:
python -c "import urllib2,json;f=urllib2.urlopen('https://blockchain.info/wallet/9bb4c672-563e-4806-9012-a3e8f86a0eca?format=json');print json.loads(f.read())['payload']" > wallet.aes.json
(wallet extension changed from json.aes to aes.json)
hero member
Activity: 672
Merit: 504
a.k.a. gurnec on GitHub
October 09, 2014, 03:38:41 PM
#15
, I mean if you know that the password contains "house" and "tree" and 2 or 5 other characters/numbers. Is it still possible to bruteforce through all these options?
Like
housetree11111
housetree11112
housetree11113

Sure, here's a token file:

Code:
house
tree
%2,5d

That third token becomes all combinations of numeric digits, between 2 and 5 digits long, and can appear in the beginning, end, or between the other two tokens. It's described here in the tutorial: https://github.com/gurnec/btcrecover/blob/master/TUTORIAL.md#expanding-wildcards

If you'd like to restrict that wildcard token to the end, you'd use this:

Code:
house
tree
%2,5d$

That "$" forces it to be at the end (if present at all, it doesn't make the token required in every try). That feature is described here: https://github.com/gurnec/btcrecover/blob/master/TUTORIAL.md#anchors
legendary
Activity: 1022
Merit: 1008
Delusional crypto obsessionist
October 09, 2014, 03:28:00 PM
#14
So I got this up and running and was able to crack a zip file which I encrypted with a simple password.
I was amazed to see how quick the password was cracked.
First I had to extract the password hash from the encrypted zip file and then I had to do "./john zip.hash"

But how do I extract the password hash from the "wallet.aes.json"?
edit: now downloading bleeding version, I saw something about blockchain2john, might be it.

Yup, that's the one. I don't know if you've finished compiling the bleeding version yet,
Yes, it's already bruteforcing a "wallet.aes.json" file without wordlist. It seems to work, no success with the password yet (just testing on a slow laptop)

but it might be worth getting an OpenCL or Cuda version compiled and working, it runs around 8ish times faster than the CPU-only version (and FYI CPU-only JtR runs about 6 times faster than btcrecover with Python 2.7.8+).
It seems that no special effort should be done to compile for OpenCL or Cuda. Am I right?
The install file says:
Code:
./configure should find and enable any extra stuff you have, including OMP,
OpenCL, CUDA and extra libraries mentioned above.

I also managed to have this tool up and running. I made myself a new blockchain wallet with a password like "house23tree1"
It took 30 seconds to crack the wallet. I made a token file with about 7 words and numbers.
Very nice tool if you know all contents of a password, but not exactly what came first and last.
As far as I can see I was not able to bruteforce any unknown characters. You really should put everything into the token file

What do you mean by "bruteforce any unknown characters"?

Well, I mean if you know that the password contains "house" and "tree" and 2 or 5 other characters/numbers. Is it still possible to bruteforce through all these options?
Like
housetree11111
housetree11112
housetree11113
hero member
Activity: 672
Merit: 504
a.k.a. gurnec on GitHub
October 09, 2014, 03:08:25 PM
#13
So I got this up and running and was able to crack a zip file which I encrypted with a simple password.
I was amazed to see how quick the password was cracked.
First I had to extract the password hash from the encrypted zip file and then I had to do "./john zip.hash"

But how do I extract the password hash from the "wallet.aes.json"?
edit: now downloading bleeding version, I saw something about blockchain2john, might be it.

Yup, that's the one. I don't know if you've finished compiling the bleeding version yet, but it might be worth getting an OpenCL or Cuda version compiled and working, it runs around 8ish times faster than the CPU-only version (and FYI CPU-only JtR runs about 6 times faster than btcrecover with Python 2.7.8+).

I also managed to have this tool up and running. I made myself a new blockchain wallet with a password like "house23tree1"
It took 30 seconds to crack the wallet. I made a token file with about 7 words and numbers.
Very nice tool if you know all contents of a password, but not exactly what came first and last.
As far as I can see I was not able to bruteforce any unknown characters. You really should put everything into the token file

What do you mean by "bruteforce any unknown characters"?
legendary
Activity: 1022
Merit: 1008
Delusional crypto obsessionist
October 09, 2014, 02:04:26 PM
#12
If the downloaded file doesn't start with these two characters: {" , and if you've created or modified (e.g. added new receiving addresses) to it at sometime after March, 2012 (when the wallet format changed again), and if you're on (or have easy access to) Linux and are comfortable compiling software, then I'd recommend John the Ripper ("bleeding-jumbo" version). It's faster than the alternative (and much faster with a GPU).
So I got this up and running and was able to crack a zip file which I encrypted with a simple password.
I was amazed to see how quick the password was cracked.
First I had to extract the password hash from the encrypted zip file and then I had to do "./john zip.hash"

But how do I extract the password hash from the "wallet.aes.json"?
edit: now downloading bleeding version, I saw something about blockchain2john, might be it.
edit2: definitely it! I'm now trying to bruteforce his wallet Cheesy I might try it first with my own test wallet and some tokens to see if it is really succesful

Otherwise, I'd recommend btcrecover (course I'm biased since I'm the dev of that one...). It supports some blockchain.info wallet formats that JtR doesn't, and it's easier to set up (no compilation necessary), especially on Windows. The Quick Start is available here: https://github.com/gurnec/btcrecover/blob/master/TUTORIAL.md#btcrecover-tutorial. Let me know if you have any questions about it...
I also managed to have this tool up and running. I made myself a new blockchain wallet with a password like "house23tree1"
It took 30 seconds to crack the wallet. I made a token file with about 7 words and numbers.
Very nice tool if you know all contents of a password, but not exactly what came first and last.
As far as I can see I was not able to bruteforce any unknown characters. You really should put everything into the token file

legendary
Activity: 1022
Merit: 1008
Delusional crypto obsessionist
October 09, 2014, 05:50:21 AM
#11
I happened to come across this thread about an hour ago randomly and I think it might be perfect timing for you and your friend to get some help in a safe & secure way by a trusted member. Good luck to you guys I hope you are able to regain access to your wallet.
Great find!
I might consider using this service when I'm not able to bruteforce it myself.

Thanks.
hero member
Activity: 910
Merit: 530
$5 24k Gold FREE 4 sign-up! Mene.com/invite/h5ZRRP
October 09, 2014, 05:08:41 AM
#10
I happened to come across this thread about an hour ago randomly and I think it might be perfect timing for you and your friend to get some help in a safe & secure way by a trusted member. Good luck to you guys I hope you are able to regain access to your wallet.
legendary
Activity: 1022
Merit: 1008
Delusional crypto obsessionist
October 09, 2014, 04:05:01 AM
#9
I thought I might be able to help out a little bit here...

To download the (encrypted) wallet from blockchain.info, run this from the command line (Linux or Windows, but for Windows you need to install Python 2.x first).

Code:
python -c "import urllib2,json;f=urllib2.urlopen('https://blockchain.info/wallet/9bb4c672-563e-4806-9012-a3e8f86a0eca?format=json');print json.loads(f.read())['payload']" > wallet.json.aes

(Obviously you'll need to change the UUID to match yours first.)
Thank you very much! This is very helpful

For brute-forcing the password, I'd recommend one of two options.

If the downloaded file doesn't start with these two characters: {" , and if you've created or modified (e.g. added new receiving addresses) to it at sometime after March, 2012 (when the wallet format changed again), and if you're on (or have easy access to) Linux and are comfortable compiling software, then I'd recommend John the Ripper ("bleeding-jumbo" version). It's faster than the alternative (and much faster with a GPU).

Otherwise, I'd recommend btcrecover (course I'm biased since I'm the dev of that one...). It supports some blockchain.info wallet formats that JtR doesn't, and it's easier to set up (no compilation necessary), especially on Windows. The Quick Start is available here: https://github.com/gurnec/btcrecover/blob/master/TUTORIAL.md#btcrecover-tutorial. Let me know if you have any questions about it...

I will go for John the Ripper first. I'm on linux as well as windows.
I don't have much compilation experience but I did it a few times in the past. Last time I had to do it with vanitygen which worked out well.
Otherwise I will try the btcrecover method.

Thank you very much for your help, I hope I'm able to recover the wallet.
I asked my friend if there is a bounty, if so, you'll get 50% of my bounty if I'm successful Wink



hero member
Activity: 672
Merit: 504
a.k.a. gurnec on GitHub
October 08, 2014, 05:30:34 PM
#8
I thought I might be able to help out a little bit here...

To download the (encrypted) wallet from blockchain.info, run this from the command line (Linux or Windows, but for Windows you need to install Python 2.x first).

Code:
python -c "import urllib2,json;f=urllib2.urlopen('https://blockchain.info/wallet/9bb4c672-563e-4806-9012-a3e8f86a0eca?format=json');print json.loads(f.read())['payload']" > wallet.json.aes

(Obviously you'll need to change the UUID to match yours first.)

For brute-forcing the password, I'd recommend one of two options.

If the downloaded file doesn't start with these two characters: {" , and if you've created or modified (e.g. added new receiving addresses) to it at sometime after March, 2012 (when the wallet format changed again), and if you're on (or have easy access to) Linux and are comfortable compiling software, then I'd recommend John the Ripper ("bleeding-jumbo" version). It's faster than the alternative (and much faster with a GPU).

Otherwise, I'd recommend btcrecover (course I'm biased since I'm the dev of that one...). It supports some blockchain.info wallet formats that JtR doesn't, and it's easier to set up (no compilation necessary), especially on Windows. The Quick Start is available here: https://github.com/gurnec/btcrecover/blob/master/TUTORIAL.md#btcrecover-tutorial. Let me know if you have any questions about it...
legendary
Activity: 1022
Merit: 1008
Delusional crypto obsessionist
October 08, 2014, 02:27:26 PM
#7
The wallet is probably somewhere hidden in these lines of code

Code:
   
   
   
legendary
Activity: 1022
Merit: 1008
Delusional crypto obsessionist
October 08, 2014, 02:24:20 PM
#6
If so, knowing the public key as well, I can try to brute force the password or am I missing something?
The wallet contains 0.22 BTC
To brute-force the password, you'll need to know as much as possible about what the password is likely to be.  Then you'll need to use the identifier to get a copy of the encrypted wallet.  Then you can attempt to decrypt the wallet with the various possible passwords until you find one that successfully decrypts it.

Do you happen to know the encryption method used to encrypt the wallet?
edit: it is aes, just found out.

Where is the wallet stored when accessing the wallet through a browser in windows?
blockchain.info stores it in their database.  They send a copy to your browser when you supply the identifier.

So I fill in the identifier and look in my browser cache?
edit: if I save the page, I see a lot of stuff, but not a file called "wallet.aes.json"

Thanks for the detailed answer btw.
legendary
Activity: 3472
Merit: 4801
October 08, 2014, 02:15:37 PM
#5
a friend of mine can't access his wallet anymore.
The passwords are not accepted. He probably forgot his password.

This is not good.  The wallet cannot be accessed without discovering the correct password.

He probably used an easy password as well.

This helps. As long as the password is "easy" enough, you may be able to brute-force it.

But he hasn't got a backup of the wallet, but he does have the identifier.

As long as you are certain that you have the correct identifier, you shouldn't need a backup of the wallet.  If you don't have the correct identifier, you'll either need a backup or you'll need to figure out what the correct identifier is.

Does the identifier represent the encrypted private key?

No.  The identifier is a unique identifier created by blockchain.info.  It is a reference into their database indicating where the encrypted wallet is stored on their system.

If so, knowing the public key as well, I can try to brute force the password or am I missing something?
The wallet contains 0.22 BTC

To brute-force the password, you'll need to know as much as possible about what the password is likely to be.  Then you'll need to use the identifier to get a copy of the encrypted wallet.  Then you can attempt to decrypt the wallet with the various possible passwords until you find one that successfully decrypts it.

The website says that when you forget your password, you'll lose all your stored bitcoins.

Correct.  The private keys are all encrypted with the password.  blockchain.info does not store the password.  Therefore, if you don't have the password, you cannot decrypt the private keys.

Edit: I don't think that the identifier represents the encrypted private key.

Correct.  The identifier is just information for blockchain.info telling them where on their system they have stored the encrypted wallet.

Edit 2
: I don't think that the public key has anything to do with the blockchain password.

Correct.

He has got an iphone.
Where could the wallet be stored in an iphone?

I'm not sure if they store a copy of the wallet on the phone.  Regardless, as long as you have the identifier you should be able to get the wallet from blockchain.info

Where is the wallet stored when accessing the wallet through a browser in windows?

blockchain.info stores it in their database.  They send a copy to your browser when you supply the identifier.

legendary
Activity: 1022
Merit: 1008
Delusional crypto obsessionist
October 08, 2014, 01:42:14 PM
#4
The identifier is the filename of your wallet, your identifier do not change when you change your wallet password. The wallet file is encrypted with your password. You forget your password, you loose your coins. Blockchain.info can't reset it for you.
He has got an iphone.
Where could the wallet be stored in an iphone?
Where is the wallet stored when accessing the wallet through a browser in windows?

I know blockchain can't reset the password. I'm looking for the wallet file.
hero member
Activity: 672
Merit: 500
October 08, 2014, 01:39:17 PM
#3
The identifier is the filename of your wallet, your identifier do not change when you change your wallet password. The wallet file is encrypted with your password. You forget your password, you loose your coins. Blockchain.info can't reset it for you.
hero member
Activity: 1008
Merit: 515
October 08, 2014, 01:31:47 PM
#2
The website says that when you forget your password, you'll lose all your stored bitcoins.

Edit: I don't think that the identifier represents the encrypted private key.
If that was the case, anyone who knew the identifier could bruteforce it.

Edit 2: I don't think that the public key has anything to do with the blockchain password.
legendary
Activity: 1022
Merit: 1008
Delusional crypto obsessionist
October 08, 2014, 01:19:17 PM
#1
a friend of mine can't access his wallet anymore.
The passwords are not accepted. He probably forgot his password.
He probably used an easy password as well.
But he hasn't got a backup of the wallet, but he does have the identifier.

Does the identifier represent the encrypted private key?
If so, knowing the public key as well, I can try to brute force the password or am I missing something?
The wallet contains 0.22 BTC

Pages:
Jump to: