このステップでは、Hydra のスレッドオプションと、それがブルートフォース攻撃の速度にどのように影響するかを学びます。Hydra は、複数のスレッドを使用した並列化された攻撃をサポートする、一般的なパスワードクラッキングツールです。スレッドを使用すると、Hydra は複数のパスワードの組み合わせを同時に試すことができ、一度に 1 つのパスワードを試すよりも、クラッキングプロセスを大幅に高速化できます。
-
まず、LabEx VM でターミナルを開き、デフォルトの作業ディレクトリに移動します。
cd ~/project
-
Hydra のヘルプメニューを確認して、スレッド関連のオプションを理解しましょう。
hydra -h | grep -i thread
grep -i thread
コマンドは、出力をフィルタリングしてスレッド関連の情報のみを表示し、必要な情報を見つけやすくします。次のような出力が表示されるはずです。
-t TASKS run TASKS number of connects in parallel (default: 16)
-
-t
オプションは、Hydra が使用する並列接続(スレッド)の数を制御します。スレッドは作業員のようなものだと考えてください。作業員が多いほど、より多くのジョブを同時に実行できます。スレッドが多いほど攻撃は速くなりますが、リソースの使用量とネットワークトラフィックも増加します。スレッドを多用しすぎると、システムに過負荷がかかったり、ターゲットシステムでセキュリティアラートがトリガーされたりする可能性があるため、これは重要です。
-
スレッドの動作を実証するために、小さなテストパスワードリストを作成しましょう。
cat > test_passwords.txt << EOF
test1
test2
test3
test4
test5
EOF
-
さまざまなスレッド数が攻撃速度にどのように影響するかを見てみましょう。まず、1 スレッドで試してください。
hydra -l testuser -P test_passwords.txt 127.0.0.1 ssh -t 1 -vV
パスワードを一度に 1 つずつ、1 つの子プロセスのみで試行していることに注目してください。
-
次に、4 スレッドで試してください。
hydra -l testuser -P test_passwords.txt 127.0.0.1 ssh -t 4 -vV
複数の子プロセスが同時に動作し、異なるパスワードを並行して試行していることがわかります。この並列実行は、シングルスレッドバージョンよりも明らかに高速になるはずです。
-
最後に、8 スレッドで試してください。
hydra -l testuser -P test_passwords.txt 127.0.0.1 ssh -t 8 -vV
パスワードは 5 つしかないにもかかわらず、Hydra は 8 つの子プロセスを作成しますが、実際に動作するのは 5 つだけです。これは、スレッド数が並列処理にどのように影響するかを示しています。