John the ripperを使ってみた:ZIPのパスワードを忘れた

フリーソフト

先日、「ZIPのパスワードを忘れてしまい、どうにかなりませんか?」と相談を受けました。重要なファイルだったらしく、いい方法がないか調べたところ「John the ripper」と呼ばれるソフトを使って、総当たりでパスワードを解読する方法を見つけました。実際に試そうとしたところ社内のセキュリティソフトに怒られてしまったので途中で中断、ZIPファイルは諦めてもらいました。

ただ、本当にパスワードを解読できるのか興味があったので試してみました。

【悪用厳禁と利用上の注意】

本記事で解説する「John the Ripper」は、パスワード解析の原理を理解するためのものであり、悪意のある目的での使用は断じて許されません。

特に、会社などの組織内ネットワークやシステムに対して、許可なく本ツールを使用することは重大なセキュリティ違反行為なる可能性があります 必ず事前に情報システム部門に相談し、正式な許可を得た上で、適切な環境でのみ検証を行ってください。

本記事の情報は、あくまで自己責任のもと、健全な目的でのみご活用ください。

John the ripperとは

John the Ripperは、パスワード解析で広く知られるツールです。様々な方法でパスワードの解読を試みることができ、セキュリティの専門家から一般のユーザーまで、幅広く利用されています。

John the ripperの使い方

John the ripperのダウンロード

公式サイト:https://www.openwall.com/john/

今回は赤枠で囲んだwindows 64bit版のZIPファイルをダウンロードします。

任意のフォルダに解凍し、フォルダ名を「john」に変更します。今回はDドライブ直下に「Tool」というフォルダを作成し、その中に移動させました。

John the ripperの準備

「john」→「run」フォルダ内にパスワードがかかったZIPを移動させます。今回は「1234」というパスワードを設定しました。

ハッシュファイルを準備します。コマンドプロンプトで以下コマンドを実行します。

zip2john.exe <ZIPファイル名> > hashfile.hash

今回の場合だと以下のような構文になります。

D:\Tool\john\run>zip2john.exe Pw1234.zip > hashfile.hash
ver 2.0 Pw1234.zip/□□□□□□□□□□.txt PKZIP Encr: cmplen=12, decmplen=0, crc=0

D:\Tool\john\run>zip2john.exe Pw1234.zip > hashfile.hash
ver 2.0 Pw1234.zip/2025-04-19 18_18_59-run - □G□N□X□v□□□[□□□[.jpg PKZIP Encr: cmplen=19969, decmplen=24849, crc=BD7763DA

ver 2.0 Pw1234.zip/2025-04-19 18_25_26-run - □G□N□X□v□□□[□□□[.jpg PKZIP Encr: cmplen=13842, decmplen=19841, crc=D3E866A
NOTE: It is assumed that all files in each archive have the same password.
If that is not the case, the hash may be uncrackable. To avoid this, use
option -o to pick a file at a time.

D:\Tool\john\run>

パスワードの総当たりを実行

以下コマンドを実行します。

john --incremental --format=zip hashfile.hash

今回の場合だと以下のような構文になります。

D:\Tool\john\run>john --incremental --format=zip hashfile.hash
Warning: invalid UTF-8 seen reading hashfile.hash
Using default input encoding: UTF-8
No password hashes loaded (see FAQ)

D:\Tool\john\run>

エラーが発生しました。。「Using default input encoding: UTF-8」と出力されているので、文字コードが怪しそうです。

ハッシュファイルの文字コードが「UTF-8」になっていないのかと思い、サクラエディタで開いてみたところ、「UTF-8」になっていました。

いろいろ試したところ、以下を実行するとエラーにならずに処理が完了しました。

john.exe --pot=credentials.pot --incremental=ASCII ./hashfile.hash

実行結果は以下の通りで一瞬で完了、パスワードが「123」と解読されています。

D:\Tool\john\run>john.exe --pot=credentials.pot --incremental=ASCII ./hashfile.hash
Warning: invalid UTF-8 seen reading ./hashfile.hash
Using default input encoding: UTF-8
Loaded 1 password hash (PKZIP [32/64])
Will run 16 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1234             (Pw1234.zip)
1g 0:00:00:01 DONE (2025-04-19 18:50) 0.6325g/s 20726p/s 20726c/s 20726C/s 123456..142484
Use the "--show" option to display all of the cracked passwords reliably
Session completed

D:\Tool\john\run>

まとめ

「John the Ripper」用いて、忘れてしまったZIPファイルのパスワードを総当たりで解読できるのかを検証してみました。

改めて強調しますが、本記事で紹介したツールは、あくまでパスワード解析の原理を理解し、セキュリティ意識を高めるためのものです。不正な目的での利用は絶対に避けてください。

もし、業務などでパスワード解析ツールを利用する必要がある場合は、必ず事前に情報システム部門に相談し、適切な許可と指導のもとで行うようにしてください。無許可での利用は、重大なセキュリティ事故につながる可能性があります。

コメント

タイトルとURLをコピーしました