John the ripperをWindowsとGPUで動かし、ZIPファイルのパスワードを解析!(2024/07/15、現在GPUは使えません。)

Openwallの公式サイトで公開されているWindows用のバイナリ(exeファイル)は、かなり前のものであるため、最新のGPU(OpenCL)が使えない。
※現在GPUは使えません。

そのため、OpenwallのGithubから最新のものをダウンロードして、ビルドする必要がある。


1.Visual Studioのインストール

ここからWindows用のVisual Studioをインストールしてください。

2.Cygwinのインストール

ここからCygwinをインストールします。
Cygwinについては、chatgptに聞いてみてください。

少し難しいところは、これらのパッケージをインストール時に、
1つずつ検索して、選ばなければなりません。
libssl-devel
libbz2-devel
libgmp-devel
zlib-devel
gcc-core
libOpenCL-devel
libcrypt-devel
make
wget
rebase
perl
これらと全く同名のパッケージについて、「Skip」を「最新バージョン」に切り替えて、インストールしてください。

3.John the ripperのソースをダウンロード

ここからソースをDownload ZIPして、展開してください。

4.Cygwinでビルド

Cygwinターミナルを開き、srcフォルダまでcdします。
Windowsとスラッシュの向きが反対なので、注意しましょう。

cd path/to/john-bleeding-jumbo/src

ここまで来たら、次のコマンドを入力して、ビルドします。

./configure && make -s clean && make -sj4

エラーが出なければ、ビルド完了です。
runフォルダにバイナリ(exeファイル)が作られます。
以下、Cygwinターミナルを使い続けます。

5.Hashファイルの作成

続いて、runフォルダまでcdします。

cd path/to/john-bleeding-jumbo/run

zip2john.exeにより、ハッシュを生成します。
今回は変換元がZIPファイルですが、他のものでも大丈夫です。
「>」のマークを忘れないでください。

./zip2john.exe (ファイル名).zip > (ファイル名).txt

6.CPUによるパスワード解析

最も一般的なCPUによるパスワード解析を行います。
オプションについては、他のウェブサイトを参考いただきたいですが、
ブルートフォース攻撃(総当たり攻撃)の一例として、英大小文字+数字の6文字の場合の例を、ここに載せています。

./john.exe --mask=?1?1?1?1?1?1 -1=[0-9a-zA-Z] (ファイル名).txt

7.GPUの接続確認

GPU(OpenCL)でもパスワード解析を行うために、まず接続確認を行います。
次の2つのコマンドを入力して、エラーが出ないことを確認します。

./john.exe --list=opencl-devices

(結果)
Platform #0 name: NVIDIA CUDA, version: OpenCL 3.0 CUDA 12.5.78
    Device #0 (1) name:     NVIDIA RTX A2000 Laptop GPU
    Device vendor:          NVIDIA Corporation
    Device type:            GPU (LE)
    Device version:         OpenCL 3.0 CUDA
    OpenCL version support: OpenCL C 1.2
    Driver version:         555.99 [recommended]
    Native vector widths:   char 1, short 1, int 1, long 1
    Preferred vector width: char 1, short 1, int 1, long 1
    Global Memory:          4095 MiB
    Global Memory Cache:    560 KiB
    Local Memory:           48 KiB (Local)
    Constant Buffer size:   64 KiB
    Max memory alloc. size: 1023 MiB
    Max clock (MHz):        1357
    Profiling timer res.:   1000 ns
    Max Work Group Size:    1024
    Parallel compute cores: 20
    CUDA INT32 cores:       1280  (20 x 64)
    Speed index:            1736960
    Warp size:              32
    Max. GPRs/work-group:   65536
    Compute capability:     8.6 (sm_86)
    Kernel exec. timeout:   no
    PCI device topology:    01:00.0
./john.exe --test=0 --format=zip-opencl

(結果)
Device 1: NVIDIA RTX A2000 Laptop GPU
Testing: ZIP-opencl, WinZip [PBKDF2-SHA1 OpenCL]... PASS

8.GPUによるパスワード解析

最後に、次のコマンドを入力して、GPUによるパスワード解析を行います。
(現在、このコマンドは動かないことが確認されています。)

./john.exe --format=zip-opencl --device=0 --mask=?1?1?1?1?1?1 -1=[0-9a-zA-Z] (ファイル名).txt

以上です。


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