John the RipperでLinuxのパスワードを解読する方法

Linuxは全ユーザーに閲覧権限のある/etc/passwdにログイン情報が書かれています。

(スラッシュはセキュリティの都合上、全角で表記しています)

大昔は同ファイルにパスワードハッシュも書いてある時代がありましたが、セキュリティを高めるためにシャドウパスワードと呼ばれる/etc/passwdとは別に/etc/shadowにパスワードハッシュを保存するという形を取るようになりました。

ちなみにシャドウパスワードを有効化・無効化するコマンドがあります。
(おそらく使わないでしょうけど)
シャドウパスワードの有効化: pwconv
シャドウパスワードの無効化: pwunconv

john the ripperをインストール

aptコマンドでインストールします。

sudo apt update && sudo apt install john

パスワード解読のアカウントを作成

パスワード解読のデモンストレーションなので、あえてガバガバなパスワードでユーザーアカウントを作成します。

sudo useradd testuser
sudo passwd testuser
(パスワードを入力:test)

ID: testuser PW: testのアカウントができました。

/etc/shadowを解読

/etc/shadowから解読したいアカウントの行を出力させます。先ほど新規追加したアカウントを解読するため「tail -1」で一番下の行を出力しています。

sudo tail -1 /etc/shadow > passwd

次のような文字列がカレントディレクトリのpasswdファイルに出力されます。

testuser:$6$JwHz7UVh$3hAf/Gs7/KT7C49PfTQwPdlLBCLBOv2uUoGAYpA2SzJYX2zzlgQ2SaERwOKHsCU/.NK33HfiZwkCo6fQ9LmTl0:18308:0:99999:7:::

johnで解読します。

john ./passwd

一瞬でパスワードが「test」と出ました。

パスワードの解読はデフォルトではsingle、wordlist(デフォルト:/usr/share/john/password.lst)、inclimentalの順で実行されるようです。

辞書ファイルに載っているような単語であれば、この通り一瞬で解読されてしまいます。

ちなみに環境によっては「No password hashes loaded (see FAQ)」と表示される場合があるので、その際は次のように「–format=crypt」を指定して実行します。
john passwd –format=crypt

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA