” Johnny ” は、 ” John ” (john the ripper)のGUI版です。
オフラインでパスワードをクラックするツールであり、内部的に行っていることはjohnと同じです。
すなわち、
- 正しいパスワードをハッシュ化した結果(これは容易に入手出来ます)と、
- 候補の文字列をハッシュ化した結果を比べて、
- ハッシュ化の結果同士が一致するかどうかを比べ、
- その結果が一致するまで候補の文字列を変更しながらトライを続けることにより、
- 最終的に正しいパスワードを特定します。
johnnyの起動
kali ー 05 PasswordAttack ー johnnyから起動します。
johnのすぐ下にあります。
初期の画面
これが ” johnny ” の画面。何というか、威圧的な画面ですね。(私はそう感じました)
一番下の行にメッセージが出ています。これ重要。
メッセージは ” 0% ” となっています。作業の進行具合は0%という意味です。
(まだ何もやっていないので当たり前です。)
パスワードファイルの準備
パスワードをクラックするためには、そのパスワードが暗号化(ハッシュ化)されているファイルをどこかから持ってこなくてはなりません。
今回は以前と同様に、Linuxのシステムが管理しているパスワードを使用します。
パスワードが管理されているファイルは、 ” /etc/passwd ” と ” /etc/shadow ” です。
前者がユーザーの一覧名簿、後者がそのパスワードを暗号化(ハッシュ化)された結果の一覧です。
ハッシュ化されてしまえば、それが見える形になっていても問題ありません。ハッシュ化後の文字列から、ハッシュ化前の文字列(=パスワード)を計算することは不可能だからです。
この2者(ユーザー名ファイルとハッシュファイル)をソートして結合するコマンドが ” unshadow ” です。
sudo unshadow /etc/passwd /etc/shadow > 新ファイル名
ここでは ” testjohnny.txt ” という新ファイルを作ってみました。ユーザー名とハッシュが入った新ファイルです。
これをjohnnyに解析させます。
Johnnyによる解析
Johnny左上の ” Open passwords file ” を開き、 ” Open password file(PASSWD format) ” を選択します。
次の画面で、先ほど作成した、ユーザー名とハッシュが入ったファイル(今回の場合は、 ” testjohnny.txt ” )を選択します。
選択が終わると、ファイルの中身が ” johnny ” にセットされます。
Kali Linuxにはこのように、実はデフォルトで多くのユーザーが登録されています。
しかし殆どのユーザーはパスワードを持っていません。(なので、パスワードをハッシュ化した ” hash ” の欄の多くは空欄です。
これを下の方にスクロールすると、
55番に、user欄が ” kali ” 、Password欄が空欄(=未判明)、hash欄が ” $y$j9T$2X8nxqaY… ” 、Formats欄が ” crypt ” となっています。
この行が、これからクラックするターゲットになります。
オプションの設定
Format(ハッシュ化する方式)が、 ” crypt ” となっているので、オプションをセットします。
左の列から ” Options ” ボタンを選択して、
” Session details ” の ” Current hash format ” を、 ” crypt ” に変更します。
Johnnyの実行
左の列の ” Passwords ” ボタンで元の画面に戻ります。
上段、左から3番目の ” Start new attack ” で実行します。
パスワード解析が始まると、最下段の表示が、 ” 0%(0/1:0cracked, 1left)(format=crypt) ” となります。
「0個成功、残り1個」と表示されており、只今実行中であることがわかります。
30秒ほどで解析が終わりました。password欄に解析結果の ” abc123 “が表示されました。これがパスワードです。(当たっています。)
なお最下段には、解析は100%終了したと表示されています。
当たり前ですがパスワードの桁数が大きく複雑になるにつれ、解析終了までの時間は長くなります。
今回は解析時間短縮の為、簡単なパスワードにしました。
まとめ
オフラインのパスワードクラッキングツールであるJohn the ripperのGUI版、 ” johnny ” の使い方についてご紹介しました。
最初は威圧的な取っ付き難い画面と思いましたが、意外と簡単に操作できました。
上の段に、途中で止めたり、再開したりするボタンが付いているのは、解析に非常に長くかかる場合があるからでしょうね。
コメント