パス付きRARファイルをJohn The Ripperで解析
JTRの真の力を全然わかっていなかったので記録に残しておきます。
MACでのzipのパス解析はいくらでも検索がヒットする一方で、rarのパス解析はなかなか難儀しました。LinuxであればRarCrackというツールがあるそうですが、ソースから引っ張ってMACでコンパイルしても動きませんでした。*1
四苦八苦してるうちにJTRでもrarのパス解析ができることがわかりました。JTRは指定された形式になっているパスファイルならば解析可能ということで、rarもファイルからパスを抽出してその形式でファイルに出力すればJTRでも読み込めます。そのパスファイルを作成してくれるツールをサードパーティが作っており、JTRのcommunity-enhanced versionに含まれています。
まずダウンロードしてから解凍。
$ mkdir tmp $ cd tmp $ wget http://www.openwall.com/john/j/john-1.8.0-jumbo-1.tar.xz $ tar xfz john-1.8.0-jumbo-1.tar.gz
srcフォルダにサードパーティが作った様々なツールのソースコードがあるのでmakeします。そのうちの1つが目的のrar2johnです。
$ cd john-1.8.0-jumbo-1/src/ $ ./configure $ make
実行ファイルはrunフォルダにあります。
$ cd ../run
パス解析のやり方はパスファイル作成で途中下車して、それをJTRに任せるという流れです。
$ ./rar2john ../test.rar > ../rar.hashes
$ ./john ../rar.hashes
デフォルトですと
1. ファイルの名前によるパス予想
2. 辞書攻撃
3. 総当り攻撃
のようです。
オプションを付ければ細かい設定ができます。
# singleモード(1.) $ ./john --single ../rar.hashes # 辞書攻撃 $ ./john --wordlist=password.lst ../rar.hashes # 総当り攻撃 $ ./john --incremental ../rar.hashes
実際の実行の様子です。パスワードはdog。
$ ./john ../testrar.hashes Warning: detected hash type "rar", but the string is also recognized as "rar-opencl" Use the "--format=rar-opencl" option to force loading these as that type instead Loaded 1 password hash (rar, RAR3 [SHA1 AES 32/64]) Press 'q' or Ctrl-C to abort, almost any other key for status 0g 0:00:00:02 0.92% 1/3 (ETA: 06:46:10) 0g/s 32.70p/s 32.70c/s 32.70C/s Rar.tsetr 0g 0:00:01:41 17.47% 1/3 (ETA: 06:52:12) 0g/s 35.20p/s 35.20c/s 35.20C/s Ttxt< 0g 0:00:08:49 81.79% 1/3 (ETA: 06:53:20) 0g/s 32.80p/s 32.80c/s 32.80C/s Testtxt1234 dog (test.rar) 1g 0:00:12:56 DONE 2/3 (2016-02-28 06:55) 0.001288g/s 31.77p/s 31.77c/s 31.77C/s dog Use the "--show" option to display all of the cracked passwords reliably Session completed
1ステージ目のファイル名からは類推できず、2ステージ目の辞書攻撃でdogと判明したようです。 ちなみに実行中に適当なキーを打つことで途中経過を見れます。
今回はrar2johnを使用しましたが、zip2johnを使用すれば全く同じようにzipファイルでパス解析できます。