オフラインでパスワードを総当り・辞書攻撃ができるツール、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/