John The RipperをMacにインストールした【OS X】

John the Ripperとは?


John the Ripperとは、パスワードクラック用のオープンソースフリーソフトです。
http://www.openwall.com/john/www.openwall.com
クラックといっても、あくまでパスワードが強固かどうかを確認するためのソフトなので悪用してはいけません。Yes Hacker, No Cracker。
授業の課題でこれ使って解いてこいと言われたのでインストールしました。
インストール方法と使い方を軽く紹介します。

1. パッケージダウンロード


John the Ripper password cracker
John the Ripper 1.8.0-jumbo-1をダウンロードします。
jumboは豊富なスクリプトが入ってるのでお得です。
一応Homebrewやapt-getにもありますが、中身が少し足りないという書き込みも見かけたので念のためサイトから直接落としました。

2. configure & make

解凍したら、srcディレクトリに移動します。

$ cd john-1.8.0-jumbo-1/src/

環境が揃っているか確認・makeします。

$ ./configure && make

ここで環境に不十分なところがあれば実行が止まるので、直してから再実行してください。
私はopensslのヘッダが参照できないと怒られたので(前記事参照)シンボリックを貼ってもう一度やったら通りました。
ちなみにインストール方法はdoc/INSTALLにも書いてあります。

3. 実行テスト

makeが済んだらrunディレクトリに移動してjohnが動くか確認します。

$ cd ../run
$ ./john --test

「--test」は実行テスト・各ハッシュ毎のベンチマークを表示します。
オプション・引数なしで実行すると使い方を確認できます。

4. 実際にクラックしてみる


実際にパスワードを破ってみます。
ファイルが中でごちゃごちゃするとアレなので一度johnのディレクトリから抜けます。

クラックされるパスワードファイルを作ります。
johnのunshadowを使います。
公式ではLinuxを前提に解説されているので/etc/passwdと/etc/shadowを使うよう書いてありますが、OS Xではshadowの代わりにmaster.passwdになります。
このshadow(master.passwd)にはroot権限がないとアクセスできません。

$ sudo john-1.8.0-jumbo-1/run/unshadow /etc/passwd /etc/master.passwd > passfile
$ john-1.8.0-jumbo-1/run/john passfile
No password hashes loaded (see FAQ)


_人人人人人人人人人人人人人人人人人人_
No password hashes loaded (see FAQ)
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
どうもパスワードファイルのハッシュフォーマットが違うと読めないそうです……。
Ubuntuで試したらうまくいったのでOSごとで違う部分があるのかもしれませんね。
これで数時間詰まりました。
John the Ripperのハッシュフォーマット↓
John The Ripper Hash Formats | pentestmonkey


なので別のパスワードファイルを作ります。
Wikiさんからお借りしました。
「user:AZl.zWwxIh15Q」と書かれたpassfileを作成します。


今回は辞書攻撃で検証します。
辞書を使うので、オプションに「--wordlist=/usr/share/dict/words」を指定して実行。

$ cat passfile
user:AZl.zWwxIh15Q
$ john-1.8.0-jumbo-1/run/john --wordlist=/usr/share/dict/words passfile
Loaded 1 password hash (descrypt, traditional crypt(3) [DES 128/128 AVX-16])
Press 'q' or Ctrl-C to abort, almost any other key for status
example          (user)
1g 0:00:00:00 DONE (2016-01-10 22:09) 16.66g/s 1102Kp/s 1102Kc/s 1102KC/s exactly..excelsin
Use the "--show" option to display all of the cracked passwords reliably
Session completed


>> example (user)
1秒足らずです。
辞書に載ってるパスワードを使うとこういうことになるのがよくわかります。


他にもシングルモード、ブルートフォース等いろいろあるのでリファレンス参照してみてください。
目の当たりにすると、改めてパスワードの管理には気をつけようと思いますね。