前提
- OSはwindows11のWSL上のUbuntu 22.04.5 LTS
- PCを汚したくないので作業はDockerコンテナ内で
- パスワード解析にはIntelの内蔵GPUを使用
この記事は犯罪行為を助長するものではありません。悪用はダメ!!!
Dockerの準備
docker run -it --device /dev/dxg --volume /usr/lib/wsl:/usr/lib/wsl ubuntu:latest
--device /dev/dxg --volume /usr/lib/wsl:/usr/lib/wsl
をつけないと、コンテナ内でGPUを上手く認識できないようです。下記を参考にしました。
ハッシュを抽出
目的のPDFからハッシュ値を抽出します。今回はJohn the Ripper(JtR)というツールのjumbo版というものをGithubからcloneして使います。目的のPDFはdocker cpコマンドなどでコンテナ内の任意の場所にコピーをしておいてください。
aptにもJtRはあるのですが、そちらはjumbo版ではなくPDF解析ができないと思われます。私はここで滅茶苦茶時間を溶かしました。
apt update && apt upgrade -y && apt install -y git
git clone https://github.com/openwall/john
./john/run/pdf2john.pl locked.pdf > pdf.hash
ここで出力されたハッシュを見ると、ファイルのパスとセミコロンがついていますが、こちらは不要なので、vimなどで編集して削除します。詳しくは下記をご確認ください。
これでpdf.hashにハッシュ値を抽出出来ました!
hashcatによるパスワード解析
次にhashcatというツールによってパスワードの解析を行います。
John the Ripperもパスワード解析ツールなのですが、PDFのGPUによる解析は現状サポートしていないようです。
まずは下記コマンドでインストールを実行。intel-opencl-icdをinstallしないとOpneCLでGPUが読み込めません。
apt install -y hashcat intel-opencl-icd
hashcat -I
を実行するとGPUが認識されているかを確認できます。ここでGPUに関する記述あれば認識出来ていると思います。
そしていよいよ解析を行います。以下が実行するコマンドの一例です。
hashcat -a 3 -D 2 -w 4 -m 10700 pdf.hash
-a
で解析方法(総当たりや辞書攻撃など)を、-D
で使用するデバイス(CPUやGPUなど)を、-w
でパフォーマンスを、-m
でハッシュのモードを選択します。まあ大抵のことはhashcat -h
でヘルプを見れば分かります。モードは必須で指定する必要がありますが、-m
をつけないで実行しようとするとモードの選択肢を教えてくれるので、そこから選べば大丈夫だと思います。
以降の表示などは他の記事などでたくさん紹介されていると思うので、そちらに説明を譲ります。
参考資料