Kali Linux 2021.1でJohn The Ripper(John)を使用しMD5を解読する

スポンサーリンク

Kali Linux 2021.1でJohn The Ripper(John)を使用しMD5を解析してみます。

John The Ripper(John)は、オフラインパスワードクラッキングツールです。多くのパスワードクラッカー(データからパスワードを割り出す手法)を1つのツールにまとめたものです。自動的にパスワードの種類を検出し、暗号化されたハッシュをブルートフォース、またはそれに辞書攻撃を使用して、それらをクラック(不正に利用する)しようとします。

MD5は、暗号学的ハッシュ関数のひとつであり、暗号など情報セキュリティの用途に適する暗号数理的性質をもつものである。

なお、John The Ripperは、KaliLinuxにプリインストール(標準でインストール)されています。

今回は、あくまでサイバーセキュリティの実験&検証が目的ですので、悪用が目的ではありません。

■PC環境

Windows 10 Pro

VirtualBox6.1

Kali Linux 2021.1(Debian (64-bit))

■Kali Linuxを起動する

クリックすると、Kali Linuxが起動します。起動後、ログイン画面が表示されますのでユーザIDとパスワードを入力し「Log in」ボタンをクリックします。

クリックすると、Kali Linuxにログインすることができました。

ログイン後、上部メニューになる「ターミナルエミュレーター」をクリックし、ターミナルを起動します。

$sudo su

起動後、上記のコマンドを入力し、Enterキーを押します。スーパーユーザ(root)権限に切り替えます。

John The Ripper(John)のインストール確認

#john -h

切り替えた後に、上記のコマンドを入力し、Enterキーを押します。インストールされているか確認するために、ヘルプを表示してみます。

John the Ripper 1.9.0-jumbo-1 [linux-gnu 64-bit x86_64 AVX2 AC]

Enterキーを押すと、上記のヘルプが表示されます。これでインストールの確認は完了となります。今回はJohn the Ripperのバージョン1.9.0-jumbo-1を使用します。

md5ハッシュを生成しテキストファイルに保存する

インストールを確認後、md5ハッシュを生成します。生成のために、Webブラウザを起動し、下記のWebサイトにアクセスします。

MD5 Hash Generator(MD5ハッシュジェネレーター)

URL:https://www.md5hashgenerator.com/

アクセス後、「Use this generator to create an MD5 hash of a string:」と表示されている入力欄にパスワードなどを入力します。今回は、検証のため、仮でパスワードを入力します。

入力後、「Generate(生成)」ボタンをクリックします。

クリックすると、「Your Hash:」と表示され、md5ハッシュが生成されます。このmd5ハッシュをコピーします。

コピー後、ターミナルを起動します。今回はスーパーユーザ(root)権限。

#vi test-md5.txt

起動後、上記のコマンドを入力し、Enterキーを押します。今回は「test-md5.txt」というテキストファイルを作成し、viエディタを開きます。

開いた後、入力(挿入)モードに切り替えて、コピーしたmd5ハッシュを貼り付けます。貼り付けた後に、ファイルに保存、viエディタを終了します。

John The Ripper(John)を使用し、md5を解読する

#john --format=raw-md5 test-md5.txt

終了後、上記のコマンドを入力し、Enterキーを押します。「--format」オプションで特定の暗号化方法(md5)を選択し、「test-md5.txt」というテキストファイル内のmd5を解読します。

Using default input encoding: UTF-8 Loaded 1 password hash (Raw-MD5 [MD5 256/256 AVX2 831) Proceeding with single, rules: Single Press 'q' or Ctrl-c to abort, almost any other key for status Almost done: Processing the remaining buffered candidate passwords, if any. Proceeding with wordlist:/usr/share/john/password.lst, rules:Wordlisti Proceeding with incremental:ASCII

Enterキーを押すと、解読が開始されます。開始されますが、「Proceeding with」と途中で止まったようになりますが、解読は進行しています。間違ってもKali Linuxがかたまってしまった,エラーが発生してしまったと誤解しないでください。

今回は、暗号など情報セキュリティの用途に適する暗号数理的性質をもつMD5の解読を行っているので、かなりの時間がかかります。また、より大きなパスワードの解読にはそれなりの時間がかかります。一方、パスワードの数が少なければ、解読時間が短くて済みます。簡単に解読できてしまうと、それはそれで問題です。

解読までは、Kali Linux(PC)を放置します。

解読が完了すると「Session completed(セッションが完了しました)」と表示されます。

ちなみに、「q」または「Ctrl-c」を押すと解読の進行が中断(Session aborted)されます。またEnterキーを押すと、解読の進行状況をステータスチェックできます。

■解読に成功できたのか

※Enterキーを押し、解読の進行状況をステータスチェック。

今回、MD5の解読を行いましたが、2時間程度行った結果、解読できません。解読がいつ終了するのかわからないので、今回はここで検証を終了します。

検証は終了しましたが、2時間程度ではありますが、MD5をクラック(突破する)できないということは、MD5はパスワードとして利用するには、じゅうぶんに強力であるということが言えるでしょう。

検証を行うのであれば、期間を決めて、クラック(突破・解読)されていないパスワードがじゅうぶんに強力であるかどうかを検討した方がよい。