【仕事依頼】旧Androidウォレットのパスワード忘れた…

採掘 お仕事依頼

63 Res. 27.09000228 MONA 2 Fav.

1 :遅刻P六段錬士:2018/01/11 02:26:40  0MONA/0人

その昔アンドロイドにちょこっとMonaを入れていたのを思い出し、しっかりバックアップもとっていたのです。
メールで保存してありました。
「添付されたファイルは暗号化されたMonacoinプライベートキーです。安全に保存し、パスワードを忘れないようにしましょう!」
ごめんなさいパスワード忘れました。
http://giraffe.topaz.ne.jp/crypttool/
にて思い当たるパスワードを片っ端から入れてみたのですが復号化されません。
総当たり攻撃できる方法はありませんでしょうか…
お教えいただいた方には5Mona差し上げますので何卒お願いします

2 :村田(Murata)六段錬士:2018/01/11 02:58:58  0.00000114MONA/1人

思いつく限りのパスフレーズを総当たりで入れて、

暗号化データ → もとのテキスト(既知)

を確認できればよいということですか?

3 :ヌコッティ六段:2018/01/11 03:24:55  0.00000114MONA/1人

John the ripperがBitcoin Walletのブルートフォースに対応しています。

http://www.gobitgo.com/articles/1005/How-To-Recover-Your-Bitcoin-Wallet-Password/

英語ですが、LinuxやShellの知識があれば出来るかと。

4 :遅刻P六段錬士:2018/01/11 03:40:41  0MONA/0人

これが、旧Androidなので、Wallet.datがあるわけではないのです。どうしたもんか、、、

5 :遅刻P六段錬士:2018/01/11 03:41:05  0MONA/0人

>>2 そうです

6 :村田(Murata)六段錬士:2018/01/11 04:11:26  0MONA/0人

総当たりのプログラムを作成してみました

7 :遅刻P六段錬士:2018/01/11 04:13:22  0MONA/0人

なんと!

8 :村田(Murata)六段錬士:2018/01/11 04:18:50  8.9MONA/1人

ブラウザで動かすスクリプトです
https://dotup.org/uploda/dotup.org1436564.txt

使い方:
1.パスフレーズに使われていそうな単語を「keywords」に入れるよう書き換える
2.暗号化前のテキストを「origText」に入れるよう書き換える
3.暗号化後のテキストを「encryptedText」に入れるよう書き換える
4.書き換えたら、スクリプトを全部コピー
5.http://giraffe.topaz.ne.jp/crypttool/ を開く
6.キーボードのF12キーを押す
7.開かれたブラウザコンソールに、コピーしたスクリプトを貼り付け、エンターキー

全ての組み合わせを試行しています。
正しいパスフレーズが見つかった場合、「見つかりました」とアラートが出ます。
見つからなかった場合、「見つかりませんでした」と出ます。

9 :遅刻P六段錬士:2018/01/11 04:21:20  0MONA/0人

初歩で申し訳ありませんが、ブラウザで開くにはどのようにすればよいでしょうか?

10 :村田(Murata)六段錬士:2018/01/11 04:24:00  0MONA/0人

>>9
スクリプトをですか?
この、リンクにアクセスするだけでOKです。
https://dotup.org/uploda/dotup.org1436564.txt

11 :村田(Murata)六段錬士:2018/01/11 04:25:19  0MONA/0人

たとえば

keywords = [
"a",
"b",
"c"
];

とした場合、総当たりで以下のパスフレーズで試行が行われます。

c, b, bc, a, ac, ab, abc, a, b, c, cb, a, ab, ac, acb, a, c, a, ac, b, bc, ba, bac, b, a, c, ca, b, ba, bc, bca, b, b, a, ab, c, cb, ca, cab, c, a, b, ba, c, ca, cb, cba, c,

12 :遅刻P六段錬士:2018/01/11 04:25:33  0MONA/0人

Chrome,Edge,IEではテキストがそのまま表示されてしまいます。
重ね重ね申し訳ありません。

13 :村田(Murata)六段錬士:2018/01/11 04:27:01  0MONA/0人

>>12
あ、なるほど
一度コピーして、メモ帳に貼り付けるなどして書き換えてください

14 :遅刻P六段錬士:2018/01/11 04:29:54  0MONA/0人

C:\直下においても、さらに拡張子を削ってもテキストがそのまま表示されてしまいます。。。

15 :村田(Murata)六段錬士:2018/01/11 04:35:47  0MONA/0人

>>14
テキストがそのまま表示というのは、こういうことですか?


それでしたらOKです

16 :遅刻P六段錬士:2018/01/11 04:39:59  0MONA/0人

https://imgur.com/AxrYY8D.png
こんな感じです

17 :村田(Murata)六段錬士:2018/01/11 04:41:08  0MONA/0人

keywordsに入れるキーワードの数は、5個か6個ならすぐ処理は終わると思います
それ以上になると結構時間がかかります 多くても7個か8個までが限界ですね

18 :村田(Murata)六段錬士:2018/01/11 04:42:32  0MONA/0人

>>16
はい。問題ありません。
コントロールキー+Aキーで、そのテキストを全て選択し、コピーしてください。

そうしたら、それをメモ帳に貼り付けるなどしてください。

19 :遅刻P六段錬士:2018/01/11 04:44:35  0MONA/0人

はい。メモ帳にはり付けた後、どうすればよいでしょう?

20 :村田(Murata)六段錬士:2018/01/11 04:47:34  0MONA/0人

>>19
貼り付けたテキストに、以下のような部分があります。

let keywords = [
"m",
"y",
"k",
"e",
"y",
];

ここに、自分の思いつく、パスフレーズに使われていそうな単語を入れていってください。

21 :村田(Murata)六段錬士:2018/01/11 04:48:00  0MONA/0人

たとえば、こんな感じに

let keywords = [
"askmona",
"monacoin",
"25",
"monacoin",
];

単語の数は多くても6つか7つくらいまでにしてください。

22 :遅刻P六段錬士:2018/01/11 04:48:27  0MONA/0人

はい。まずはそのまま走らせてみたいのですが、「ブラウザで開く」という操作がわかりません。ほんと初歩で申し訳ないです。

23 :村田(Murata)六段錬士:2018/01/11 04:51:16  0MONA/0人

>>22
多分何か読み間違えてるかと。。
ブラウザで開く とは書いてないので。

>>8に書いた使い方で言えば、どこで詰まっていますか?

24 :遅刻P六段錬士:2018/01/11 04:52:14  0MONA/0人

おおおおおおおおお!
大幅に間違えてました!すみません!

25 :村田(Murata)六段錬士:2018/01/11 04:54:12  0MONA/0人

いえいえ。

26 :遅刻P六段錬士:2018/01/11 05:03:44  0MONA/0人

シンタックスエラーが出ました ちょっと詳しく見てみます

27 :遅刻P六段錬士:2018/01/11 05:07:50  0MONA/0人

Uncought SyntaxError: Invaild or unexpected token VM207:12
と出ております

28 :村田(Murata)六段錬士:2018/01/11 05:08:37  0MONA/0人

ぶっちゃけ、本当にこれで解けるのかはかなり怪しいところです。
Monacoinプライベートキーってどういうものか自分知らないし。
キーワードごとに区切り文字の入った形式のパスフレーズならこれでは解けないし。

何か効率の良いやり方を知っている人は、遅刻P六段さんに教えてあげてください。

29 :村田(Murata)六段錬士:2018/01/11 05:11:05  0MONA/0人

>>27
スクリプトは書き換えましたか?書き換えずにそのまま実行しましたか?
12行目にエラーが出ているようです。

30 :遅刻P六段錬士:2018/01/11 05:19:56  0MONA/0人

復号前文字列のみを入れ替えました。
復号前文字列が長すぎるんでしょうか?

31 :村田(Murata)六段錬士:2018/01/11 05:22:59  0MONA/0人

>>30
この行ですね?

let origText = "secretpassword"; //暗号化前のテキスト

この行で書き換える必要があるのは secretpassword の部分のみです
ダブルコーテーションやセミコロンを無くしていないかチェックしてみてください。

32 :村田(Murata)六段錬士:2018/01/11 05:24:40  0MONA/0人

あるいは復号前文字列が改行してしまっていることが原因かもしれません。
改行コードは削除してください。

33 :遅刻P六段錬士:2018/01/11 05:26:22  0MONA/0人

はい。書き換えたのは"~~"の中身だけ書き替えました。

34 :遅刻P六段錬士:2018/01/11 05:28:17  0MONA/0人

復号前文字列に改行がないことも確認しました。
泥沼になりそうなので、募集をかけつつ一晩おいてみます。
ご親切にありがとうございました。

35 :村田(Murata)六段錬士:2018/01/11 05:29:09  0MONA/0人

>>33
うーん、そうですか
12行目に文法エラーあがるので、そのあたりの記述に問題があると思うんですが。
見て確認したいところですが、他人に見られたらいけないものですし、難しいですね。

一度、スクリプトを一切書き換えずに実行していただけますか。
https://dotup.org/uploda/dotup.org1436564.txt

36 :村田(Murata)六段錬士:2018/01/11 05:30:47  0MONA/0人

>>34
いやお力になれず申し訳ない!
復旧できるといいですね。

37 :遅刻P六段錬士:2018/01/11 05:31:17  0MONA/0人

一切書き換えずですと見つかりましたor見つかりませんがちゃんと表示されます。

38 :村田(Murata)六段錬士:2018/01/11 06:54:28  0MONA/0人

あー、深夜だったから酷い勘違いしてる…
「暗号化前」と「復号化前」で食い違ってた。

そもそも「暗号化前」のテキストを知っていたら、このトピックを立てる意味はないですよね。

大変失礼しました。

39 :村田(Murata)六段錬士:2018/01/11 06:57:56  0MONA/0人

さっきまでのはなかったことにさせてください。あまりにも恥ずかしい。m(__)m

そして余計なお世話ですが、ツールを作りました。
これで試してみてください。

http://murata-mona.info/find-pw/

40 :村田(Murata)六段錬士:2018/01/11 07:04:47  0MONA/0人

あ、でもこれも無理かも。
やっぱ暗号化前のテキストが分かってないとパスフレーズを特定するのは難しい。

・暗号化される前の元々のテキスト
・暗号化されたテキスト
・パスフレーズ

パスフレーズ以外の2つは分かっているものとしてずっと話してたんですが。
元々のテキストがどういう形式なのかが分かっていれば、完全には分からなくても可能ですが。

41 :村田(Murata)六段錬士:2018/01/11 07:18:54  0MONA/0人

暗号化される前の元々のテキストが何文字の形式であるかが分かれば、元々のテキストが分からなくても多分可能です。
>>39のは無視してください。

完全に知識不足・技術不足でした。m(__)m

42 :ヌコッティ六段:2018/01/11 21:45:15  0MONA/0人

>>40
"# KEEP YOUR PRIVATE KEYS SAFE! Anyone who can read this can spend your Bitcoins."
これが必ず含まれているよ。

ところで、これでいけましたよ。
https://github.com/gurnec/btcrecover

c:\Python27\python.exe btcrecover.py --wallet monacoin-wallet-keys-2018-01-11
BTC AndroidのウォレットとMonacoin Androidのウォレット形式同じだし、さっき試したら一瞬で見つかったわ。5モナ待ってますね。

チュートリアルは下記ね。
https://github.com/gurnec/btcrecover/blob/master/TUTORIAL.md#btcrecover-tutorial

それでは5モナ待っています。

43 :遅刻P六段錬士:2018/01/11 21:58:36  0MONA/0人

http://mizunashi-rin.hatenablog.jp/entry/2016/11/14/031916
を参考にして、テスト用Androidに新たにウォレットを作成し、新たにパスワードを設定したのですが… そもそもデコードできませんでした。
復号前文字列は
U2FsdGVkX18+GEgem3v3E6zdAF8/N/jppbBLwFkgS8X+Zi4mUlv2W/kjKkuu+Y71eZbh8n0xf/FC
WbyYQTL0aFjdro849KABPFUQaRV2sEP4Itqf//p5eySv8ivWbtkZHN9mXXMwHIQYvjrabypbjGd/
qHRSrD/bE4A1KawO8lZP9cBBDvae7zqpuIQ6CNdAyYc7JIsh4AoNzYOYzvsbEeUWZcEAvXkNZlut
kobTyyU=
パスワードはhogehogeです。これはまた勘違いをしてしまっているんだろうか…

44 :ヌコッティ六段:2018/01/11 21:59:48  0MONA/0人

>>43
Base64でデコードしてます?

45 :ヌコッティ六段:2018/01/11 22:00:50  0MONA/0人

てかその記事に書いてある通りじゃないですか。

> base64 -D -in エンコード文字列が書かれているファイル名 | openssl enc -d -aes-256-cbc

46 :遅刻P六段錬士:2018/01/11 22:08:50  0MONA/0人

質問ばかりですみません。base64 というのを調べている最中でして、Windows cmdでやると認識されないし、debianでやると-Dや-inが無効だと出ます。

47 :ヌコッティ六段:2018/01/11 22:15:53  0MONA/0人

ubuntu@ip-172-31-80-197:~$ base64 -d wallet.bk | openssl enc -d -aes-256-cbc
enter aes-256-cbc decryption password: <hogehogeと入力>
# KEEP YOUR PRIVATE KEYS SAFE! Anyone who can read this can spend your Bitcoins.
<snip>

こんな感じですね。

48 :遅刻P六段錬士:2018/01/11 22:30:07  0MONA/0人

cracker@debian:~$ base64 -d wallet.bk | openssl enc -d -aes-256-cbc
enter aes-256-cbc decryption password:<hogehogeと入力>
bad decrypt
3073083712:error:06065064:digital envelope
routines:EVP_DecryptFinal_ex:bad decrypt:../crypto/evp/evp_enc.c:535:~以下文字化け
なんとも、、、

49 :ヌコッティ六段:2018/01/12 09:31:56  0MONA/0人

パスワードが間違ってますよ。

50 :ボンバー二段錬士:2018/01/12 09:38:50  8.9MONA/1人

ubuntu@ip-172-31-80-197:~$ base64 -d wallet.bk | openssl enc -d -aes-256-cbc
enter aes-256-cbc decryption password: hogehoge
# KEEP YOUR PRIVATE KEYS SAFE! Anyone who can read this can spend your Bitcoins.
<snip>

と書いていますか?
〈〉はいらないですよ。焦ってると結構こういうミスあるんで・・・

51 :遅刻P六段錬士:2018/01/12 13:42:30  0MONA/0人

はい。カッコもなくローマ字のみで入力しました。

52 :ヌコッティ六段:2018/01/12 14:17:35  0MONA/0人

自分のubuntuでは>>43のウォレットをhogehogeで復号化できているので、ファイルの中身の問題とかですかね。

53 :遅刻P六段錬士:2018/01/12 16:40:12  0MONA/0人

ファイルの中身も問題ないように思うので、帰り次第ubuntuで試してみます

54 :ヌコッティ六段:2018/01/12 19:22:05  0MONA/0人

【参考】 Windowsで復元する方法

C:\work>type monamona.txt | openssl.exe enc -d -base64 | openssl.exe enc -d -aes-256-cbc -k hogehoge

Win32バイナリ(野良ソース)
https://slproweb.com/products/Win32OpenSSL.html

55 :遅刻P六段錬士:2018/01/12 20:26:17  0MONA/0人

C:\Users\pytha>type monamona.txt | openssl.exe enc -d -base64 | openssl.exe enc -d -aes-256-cbc -k hogehoge
s"ャ鹽圏鋕藝ナ/ェ5aゥヘーェiイ、膰 櫻3雙=ア^Zウタc堅c7テXPセR}シュ・Ej・・$4ナムe墟峵 5エ4:・ツ・ン9W・O]OGトb R&桎%X'ハメ№跿フq・ォl・ッUR贅・ャfp・bbad decrypt
6232:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:crypto\evp\evp_enc.c:536:

やっぱりファイルか?何が問題なんだ…

56 :ヌコッティ六段:2018/01/12 21:02:51  0MONA/0人

C:\work>openssl sha1 monamona.txt
SHA1(monamona.txt)= 0d2e4316af7a08a8874be4d1e6761ae1d2c1fdb4

(´・ω・`)?

57 :遅刻P六段錬士:2018/01/12 21:57:08  0MONA/0人

C:\Users\pytha>openssl sha1 monamona.txt
SHA1(monamona.txt)= 0d2e4316af7a08a8874be4d1e6761ae1d2c1fdb4

C:\Users\pytha>type monamona.txt | openssl.exe enc -d -base64 | openssl.exe enc -d -aes-256-cbc -k hogehoge
s"ャ鹽圏鋕藝ナ/ェ5aゥヘーェiイ、膰 櫻3雙=ア^Zウタc堅c7テXPセR}シュ・Ej・・$4ナムe墟峵 5エ4:・ツ・ン9W・O]OGトb R&桎%X'ハメ№跿フq・ォl・ッUR贅・ャfp・bbad decrypt
2960:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:crypto\evp\evp_enc.c:536:

ヌコッティさんありがとうございます。さっぱり泥沼です。

58 :ヌコッティ六段:2018/01/13 01:11:58  8.9MONA/1人

>>43のBase64でエンコードされたウォレットの秘密鍵はhogehogeで僕の環境では復元できましたね。

AWSのt2.microで適当に試しました。
https://twitter.com/nucottie/status/951848690259382272

59 :遅刻P六段錬士:2018/01/13 04:29:17  0MONA/0人

ubuntuでは復号できました!だが復号できたのはテスト版。やはり元のパスワードは忘れているようで…

60 :遅刻P六段錬士:2018/01/13 04:52:01  0.39MONA/1人

きたーーーーーーーー!
パスワード忘れてなかった!
なぜかubuntuでないと復号できないという俺特有の問題だった!
解決したので皆様にお約束の分のモナに、さらに3.9モナ色を付けさせていただきます。
ありがとうございました!

61 :ヌコッティ六段:2018/01/13 10:44:28  0MONA/0人

よかった。
モナありがとう。

62 :ボンバー二段錬士:2018/01/13 13:20:55  0MONA/0人

良かったですね。よろしければ活性化をお願いしますね!

63 :村田(Murata)六段錬士:2018/01/13 13:40:24  0MONA/0人

よかおめ。
全然お力なれなかったのにたくさん頂いてしまって、申し訳ないです(^.^;

お気に入り

新規登録してMONAをもらおう

登録すると、投稿したり、MONAをもらったりすることができます。質問したり、答えたりしてMONAを手に入れてください。

新規登録ログイン