はじめに
この実験(Lab)では、スレッド構成を調整して、Hydra のブルートフォース攻撃のパフォーマンスを最適化する方法を学びます。さまざまなスレッド設定が、SSH 攻撃の実践的なシナリオを通じて、攻撃速度とシステムリソースの使用量にどのように影響するかを検証します。
演習では、スレッド数の変更、パスワードリストを使用した攻撃の実行、およびパフォーマンスの違いの分析について説明します。攻撃効率とシステム負荷のバランスを理解しながら、Hydra の並列処理機能に関する実践的な経験を積むことができます。
Hydra のスレッドオプションについて
このステップでは、Hydra のスレッドオプションと、それがブルートフォース攻撃の速度にどのように影響するかを学びます。Hydra は、複数のスレッドを使用した並列化された攻撃をサポートする、一般的なパスワードクラッキングツールです。スレッドを使用すると、Hydra は複数のパスワードの組み合わせを同時に試すことができ、一度に 1 つのパスワードを試すよりも、クラッキングプロセスを大幅に高速化できます。
まず、LabEx VM でターミナルを開き、デフォルトの作業ディレクトリに移動します。
cd ~/projectHydra のヘルプメニューを確認して、スレッド関連のオプションを理解しましょう。
hydra -h | grep -i threadgrep -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 つだけです。これは、スレッド数が並列処理にどのように影響するかを示しています。
簡単な SSH 攻撃の設定
このステップでは、Hydra を使用して簡単な SSH 攻撃シナリオを準備します。このデモンストレーションは、パスワードクラッキングツールが制御された環境でどのように機能するかを理解するのに役立ちます。安全のために、包括的なパスワードリストを使用し、自分のマシンで実行されているローカル SSH サーバーをターゲットにします。
まず、正しい作業ディレクトリにいることを確認してください。
cd ~/projectパスワードリストファイル
passwords.txtは、一般的なパスワードの包括的なセットで作成されています。この大きなリストは、さまざまなスレッド構成が攻撃パフォーマンスに与える影響をより良く示すのに役立ちます。パスワードファイルが正しく作成されたことを確認してください。cat passwords.txtこの実験(Lab)では、ローカル SSH サーバー (127.0.0.1) をターゲットにします。これは自分のマシンです。リモートシステムを攻撃するよりも安全です。まず、SSH が実行されているかどうかを確認します。
sudo service ssh status実行されていない場合は、
sudo service ssh startで起動します。
デフォルトスレッドで攻撃を実行
このステップでは、デフォルトのスレッド設定で Hydra を使用して SSH ブルートフォース攻撃を実行します。Hydra はデフォルトで 16 個の並列スレッドを自動的に使用します。これは、16 個の異なるパスワードの組み合わせを同時に試行することを意味します。より大きなパスワードリストを使用すると、スレッド構成の影響をより明確に観察できます。
まず、作業ディレクトリに移動します。
cd ~/projectローカル SSH サーバーに対して Hydra 攻撃を実行します。
hydra -l testuser -P passwords.txt 127.0.0.1 ssh -vV出力を注意深く観察してください。次のことがわかります。
- Hydra が 16 個のタスク(スレッド)で開始される
- 各ログイン試行がリアルタイムで表示される
- 現在の速度が 1 分あたりの試行回数で測定される
- 正しいパスワードが見つかったときにログインが成功する
正確なタイミング測定を行うには、
timeユーティリティを使用してコマンドを実行します。time hydra -l testuser -P passwords.txt 127.0.0.1 ssh -vVこれらのタイミングの結果を注意深く記録してください。より大きなパスワードリストを使用すると、スレッド数を調整したときに明確なパフォーマンスの違いを確認できます。
スレッド数を増やして速度を比較
このステップでは、Hydra のスレッド数を調整すると、パスワードクラッキングのパフォーマンスにどのように影響するかを学びます。速度とリソース使用量のトレードオフを理解するために、異なるスレッド設定の結果を比較します。
まず、正しい作業ディレクトリにいることを確認してください。
cd ~/projectスレッド数を増やして (32) Hydra を実行し、実行時間を測定します。
time hydra -l testuser -P passwords.txt 127.0.0.1 ssh -vV -t 32次に、さらに高いスレッド数 (64) でテストして、パフォーマンスが向上し続けるかどうかを確認します。
time hydra -l testuser -P passwords.txt 127.0.0.1 ssh -vV -t 64スレッド数を増やすと、次の点にどのように影響するかを分析します。
- 全体的な攻撃時間
- システムリソースの使用量 (time コマンドの出力の User/System 列に表示)
- ネットワーク接続試行レート (Hydra の詳細出力に表示)
スレッド数を減らして攻撃をテスト
このステップでは、Hydra のスレッド数を減らすと、パスワードクラッキングのパフォーマンスにどのように影響するかを検証します。より低いスレッド数でテストして、速度とリソース使用量のバランスを理解します。
まず、正しい作業ディレクトリにいることを確認してください。
cd ~/project8 スレッド (以前の最小値の半分) で Hydra を実行し、実行時間を測定します。
time hydra -l testuser -P passwords.txt 127.0.0.1 ssh -vV -t 8次に、4 スレッドだけでテストして、実用的な最小構成を確認します。
time hydra -l testuser -P passwords.txt 127.0.0.1 ssh -vV -t 4実際の使用におけるこれらの実用的なトレードオフを考慮してください。
- 強力なシステムでの高速攻撃には、より高いスレッド数 (16-64)
- ステルス(隠密性)またはリソースが制約された環境には、より低いスレッド数 (4-8)
- ネットワークへの影響はスレッド数によって異なり、スレッド数が多いほど、より検出可能なトラフィックが生成されます。
まとめ
この実験(Lab)では、効率的なブルートフォース攻撃のために、Hydra の攻撃速度とスレッド設定を構成する方法を学びました。主なポイントは、-t パラメータを使用して並列接続を制御し、異なる値での実践的なテストを通じて、スレッド数がパフォーマンスにどのように影響するかを分析することです。
また、SSH 攻撃シナリオのセットアップ、パスワードリストの作成、スレッド数、攻撃速度、およびシステムリソースの使用量の関係を観察することにより、実践的な経験を得ました。この実践的な演習は、さまざまなテスト環境における Hydra の最適化手法を示すのに役立ちました。


