見出し画像

#68 John The Ripper

 パスワードは、私たちの生活の要です。ATMを利用するときや、クレジットカードで支払いをするとき。PCやスマホのロックを解除するときや、Webサービスのログインにも使います。認証の仕組みとしては非常に単純ですが、よく働いてくれています。
 しかし、ここに我々の安寧を脅かすものがあります。

John The Ripperです。

パスワードクラッカーとして有名なツールで、簡単なパスワードなら、ものの数分で探し当てます。

 それでは、試してみましょう。


パスワード攻撃

 パスワードの攻撃方法には、大きく分けて2種類あります。辞書攻撃ブルートフォース攻撃です。それぞれ詳しく見てみます。

辞書攻撃

 辞書攻撃では、事前に用意したパスワードのリストを使って攻撃を行います。SecListsというプロジェクトでは、過去に流出したパスワードやよく使われるパスワードなどをまとめています。使わない手はありません。

$ git clone https://github.com/danielmiessler/SecLists.git


パスワード付きのZIPファイルで実験してみましょう。

中には重要なファイルが格納されていると仮定します。
John The Ripperでは、まず、解析のために攻撃対象ファイルからパスワードハッシュを取り出します。

$ zip2john crackme.zip > hash.txt

SecListsの10-million-password-list-top-1000000.txtをパスワードリストとして指定します。

$ john --wordlist=./SecLists/Passwords/Common-Credentials/10-million-password-list-top-1000000.txt hash.txt
Using default input encoding: UTF-8
Loaded 1 password hash (ZIP, WinZip [PBKDF2-SHA1 128/128 AVX 4x])
Cost 1 (HMAC size) is 30 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
p@ssword         (crackme.zip/crackme/important.txt)  
1g 0:00:00:13 DONE (2023-03-12 11:09) 0.07547g/s 20711p/s 20711c/s 20711C/s robjack..propker

10秒ほどで、当てられました。
とはいえ、リストに正しいパスワードが含まれていなければ、いくらやっても解錠はできません。攻撃者の視点からすれば、攻撃対象に適したリストをいかに用意できるかが肝になってきます。

ブルートフォース攻撃

 対して、ブルートフォース攻撃は、言い換えれば総当りです。考えうる全パターンを試すことで正しいパスワードを探し当てます。

同様にハッシュを取り出します。

$ zip2john crackme2.zip > hash2.txt

あとは、おまかせ。

$ john --incremental hash2.txt
Using default input encoding: UTF-8
Loaded 1 password hash (ZIP, WinZip [PBKDF2-SHA1 128/128 AVX 4x])
Cost 1 (HMAC size) is 24 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
test12           (crackme2.zip/crackme2/important.txt)     
1g 0:00:04:39 DONE (2023-03-12 11:47) 0.003572g/s 20897p/s 20897c/s 20897

5分ほどかかりましたが、しっかりやられました。
全パターンを試行するので、網羅性は高いですがその分時間がかかります。パスワードの桁数が増えたり、大文字・小文字・数字・記号が使われている複雑なパスワードになると、現実的な時間では解けなくなります。

このあたりが、辞書攻撃とブルートフォース攻撃の使い分けになりそうですね。

まとめ

 指紋や顔などの生体認証も広がりつつありますが、依然、ネット社会はパスワードに頼っています。単純なパスワードは、簡単に解読されてしまうということが身に染みたのであれば、今後一切悔い改めてください。私。


EOF

この記事が気に入ったらサポートをしてみませんか?