Linux/john

ハイ、ジョン(2016-02-28)


LPIC試験範囲に「john」とだけあったのですが、どちら様?
と思ったらこれ、「John the Ripper password cracker」というツールらしいです。
そのサイトに行って、フリーバージョンのソースを手に入れて*1、make してみました。
linux-x86-64 の部分はそれぞれの環境に合わせて変える必要があります。

# xz -dv john-1.8.0.tar.xz
# tar xvf john-1.8.0.tar
# cd john-1.8.0/src/
# make clean linux-x86-64
# make linux-x86-64
# cd ../run

試験用のユーザを作成します。
以下で出てくる、shadowファイルを元に戻す為の「unshadow」コマンドは
john に付属のコマンドです。

# useradd test0
# passwd test0
ユーザー test0 のパスワードを変更。
新しいパスワード:
よくないパスワード: 異なる文字が十分に含まれていません
新しいパスワードを再入力してください:
passwd: 全ての認証トークンが正しく更新できました。
#
# ./unshadow /etc/passwd /etc/shadow > unshadowfile
# chmod 400 unshadowfile
# userdel -r test0

途中、パスワードが単純すぎると警告されていますが、今回は無視しています。
さぁ、さっそく johnの出番です。

# ./john --users=test0 unshadowfile
Loaded 1 password hash (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for status
testtest         (test0)
1g 0:00:00:23 100% 2/3 0.04269g/s 174.8p/s 174.8c/s 174.8C/s spazz..dasha
Use the "--show" option to display all of the cracked passwords reliably
Session completed

結果、「23秒で解いてやったぜ、testtestだろ!」と表示されてます。
実行後にできた
john.pot に解析結果が、
john.log に実行内容が時系列で出力されるようです。

今回はあえて単純なパスワードを入れているので、singleオプション付き(single crackモード)だと
「5秒」で解かれてしまいました。瞬殺・・・

./john --users=test0 --single  unshadowfile

デフォルトだと、同梱されている「password.lst」ファイルを使用するのですが、
これの中身見るだけでも価値が?あるんじゃないでしょうか。
決して使ってはいけないパスワード一覧が記載されています。

基本的な使い方は ./john だけで実行すればusageが出てきます。
configは john.conf です。
本来は数時間?かけてテストすることを前提にオプションとconfigを駆使するのだと思います。

それにしても、意外と面白いですね、john。
あと、危険。
※ちなみに法律的にアウトなので、使用上は要注意
rootのパスワードされ知っていれば、他のユーザのパスもこっそり簡単に調べられることを
改めて目の当たりにできました。


*1 Google:John the Ripper password cracker downloadでググればOpenwallのサイトが見つかります。