Kali で Hydra を使ってパスワードをテストする

HydraBeginner
オンラインで実践に進む

はじめに

オンラインの認証情報テストは、稼働中のサービスにログイン試行を送ります。そのため、範囲、候補数、並列数、停止条件を明確にする必要があります。報告された成功は、その認証情報で実際の対象に認証できれば、より強い証拠になります。

この実習では、専用のローカル SSH サービスと、弱い演習アカウントを一つ提供します。範囲を限定した Hydra の確認を行い、結果を保存し、一つのリモートユーザー確認コマンドで復元したログインを確かめます。

小規模な許可された SSH 認証情報の確認を行う

このステップでは、専用のローカル演習サービスの、提供された一つのアカウントに Hydra を使います。

Kali に入り、共有ワークスペースを選びます。

kali
cd /home/labex/project

John のオフラインのハッシュ比較と異なり、Hydra は稼働中のサービスに認証試行を送ります。各試行はサービスのログ、負荷、アカウントポリシーに影響し得ます。この演習で許可されるのは、小さな提供一覧を使う、127.0.0.1:12222 の training-login アカウントだけです。ホストの SSH サービスと他のアカウントは範囲外です。

テスト前に候補一覧を読みます。

cat candidates.txt

1 行に一つ、三つの演習候補があります。大きな単語一覧やパスワード生成は不要です。

Hydra の -l は一つのログイン名を、-P はファイルからのパスワード候補を、-s は既定以外のサービスポートを選びます。-t 1 は並列数を一つに制限し、-f は最初の組み合わせの成功で停止し、-o は成功結果を保存します。ssh:// ターゲットは SSH プロトコルモジュールを選びます。

hydra -l training-login -P candidates.txt -s 12222 -t 1 -f -o hydra-results.txt ssh://127.0.0.1

限定した実行の完了を待ちます。成功結果にはポート 12222、SSH サービス、指定ログイン、候補パスワードがあるはずです。バージョンのバナー、時間、試行順序の詳細は異なる場合があります。

保存結果を読みます。

cat hydra-results.txt

training-login の成功した組み合わせを探します。接続エラー、未対応プロトコル、候補一覧の枯渇は、有効な認証結果とは異なります。完了した Hydra 実行をすべて成功と扱わないでください。

SSH で復元したアカウントを確認する

このステップでは、報告された認証情報が提供サービスに実際に認証できることを検証し、リモートのユーザー確認結果を保存します。

保存した Hydra 結果は、training-login の演習パスワード pebble7 を示すはずです。これは意図的に弱い演習用の認証情報で、他で再利用するパスワードではありません。

SSH クライアントは一つのコマンドをリモート実行して切断できます。小文字の -p は既定以外の SSH ポート、user@address はアカウントとエンドポイントを選びます。最後の whoami は認証されたリモートアカウントとして動きます。コマンドの出力をローカルの結果ファイルへリダイレクトします。

ssh -p 12222 training-login@127.0.0.1 whoami > authenticated-user.txt

初回接続では、この演習サービスのホスト鍵を信頼するか SSH が尋ねます。この演習用に準備された専用のローカルエンドポイントに接続しているので、yes と入力して Enter を押してください。パスワードのプロンプトでは、復元したパスワード pebble7 を入力し、Enter を押します。パスワードの文字は画面に表示されません。対話型のリモートシェルは作らず、リモートコマンドの終了後に Kali のプロンプトへ戻ります。

保存したユーザー情報を読みます。

cat authenticated-user.txt

想定される出力:

training-login

これはツールの結果行だけに頼らず、実際のサービスに認証情報を照合します。ログインは分離された演習用 SSH サービス内のもので、ホストの学習者アカウントと SSH 設定は変わりません。

まとめ

オンラインログイン試行とオフライン復元を区別し、一つの SSH アカウントと独自ポートを選び、並列数を制限して、最初の成功で停止しました。結果を保存し、報告された認証情報が、提供されたアカウントに実際に認証できることを確認しました。