John the Ripperによるパスワードクラッキング

オフラインでパスワードを総当り・辞書攻撃ができるツール、John the Ripperの基本的な使い方について書いてみます。
(もう一つ、hashcatというツールも有名だが今回は試していない)

インストール方法

https://github.com/openwall/john/tree/bleeding-jumbo/doc
ここにあるINSTALLファイルにインストール方法が書いてある。
Windowsなら「INSTALL-WINDOWS」、MACなら「INSTALL」を読むこと。
Linuxの場合は「INSTALL-FEDORA」か「INSTALL-UBUNTU」を参考にする。

ここでは「INSTALL-UBUNTU」に従った方法を書いておく。
※長々と書いてあるが、GPUサポートやOpenCLなどのオプションなどを無視すればそんなに複雑ではない。

mkdir -p ~/src
sudo apt-get -y install git build-essential libssl-dev zlib1g-dev
sudo apt-get -y install yasm pkg-config libgmp-dev libpcap-dev libbz2-dev
cd ~/src
git clone https://github.com/openwall/john -b bleeding-jumbo john
cd ~/src/john/src
./configure && make -s clean && make -sj4

これだけOK(上のコマンドでは、~/srcディレクトリの下にインストールする。名前は自由に変えて良い。)。
最後に

cd ~/src/john/run
./john --test=0

でテストを実行し、"All formats passed self-tests."みたいなメッセージが表示されたら成功。

基本的な使い方

上のコマンドでインストールした場合、~/src/john/run/johnがパスワードクラッカー本体の実行ファイルになっているはず。
ここからは、対象の形式に応じて主に2つの方法がある。

1.パスワードのハッシュファイルを対象にする場合

たとえば、Linuxだと/etc/shadowにハッシュ化したパスワードが保存してある。
このファイルをコピーしたshadowという名前があるとしたら、

~/src/john/run/john shadow

これだけで良い。

2.暗号化、鍵付きファイルなどを対象にする場合

この場合は一手間かける必要がある。

1.~/src/john/run内にある、〇〇2johnという名前のツールを使ってファイルを変換する。
2.変換したファイルをパスワードクラッカーにかける。

という手順になる。
たとえば、zipファイルの場合は「zip2john」、EXCELファイルの場合は「office2john.py」を使うことになる。

・暗号化zipファイルの場合

~/src/john/run/zip2john target.zip > hash
~/src/john/run/john hash

ワードリストの指定

John The Ripperにはワードリストが同梱されており、デフォルトだとそれを使用してクラッキングを行うが、これはワード数があまり多くない。
--wordlist=xxxxxxというオプションを実行時に使うことで、ネット上などからダウンロードしたワードリストに変更することができる。

~/src/john/run/john --wordlist=xxxxxx hash

ワードリストがダウンロードできるサイト

https://github.com/danielmiessler/SecLists/tree/master/Passwords
ここには多数のワードリストが置いてある。

過去の大規模なパスワード流出事件で有名な、RockYouのリストはhttps://github.com/danielmiessler/SecLists/raw/master/Passwords/Leaked-Databases/rockyou.txt.tar.gz(すぐにダウンロードが始まるので注意)からダウンロードできる。実際に流出したパスワードのリストで、1000万語以上のリストになる。



https://github.com/ohmybahgosh/RockYou2021.txt
https://weakpass.com/wordlist
上の2つのリンクには巨大なワードリストがある。実用性はあるんだろうか…?

参考リンク

John the Ripper公式サイト
https://www.openwall.com/john/
John the Ripper公式Wiki
https://openwall.info/wiki/john

・hashcat公式サイト
https://hashcat.net/hashcat/