はじめに
この実験では、Hydra が中断された攻撃をどのように処理し、効果的に再開する方法を学びます。ローカルホストの SSH サービスに対する中断された Hydra 攻撃をシミュレートするために、シンプルなユーザー名とパスワードのリストを作成し、攻撃を開始し、その後Ctrl+Cを使用して手動で中断します。
この実験では、-Rオプションを使用して攻撃を再開し、Hydra が復元ファイルの処理方法を観察します。その後、-Iオプションを-Rオプションと組み合わせて使用し、復元ファイルを無視して、新規の開始を保証する方法を学びます。完了した攻撃と中断された攻撃における復元ファイルの作成の違いを理解します。
テストファイルを作成し、初期攻撃を実行する
このステップでは、必要なテストファイルを作成し、初期の Hydra 攻撃を実行して、基本的な動作を理解します。これにより、攻撃が正常に完了した場合と中断された場合の Hydra の動作の違いを理解できます。
まず、プロジェクトディレクトリに移動します。
cd ~/project
次に、シンプルなパスワードリストを作成します。nanoを使用して、現在のディレクトリにpasswords.txtという名前のファイルを作成します。
nano passwords.txt
ファイルに、1 行に 1 つのパスワードとして、いくつかの一般的なパスワードを追加します。たとえば:
password
123456
qwerty
Ctrl+Xを押してファイル保存し、Yで保存を確定し、Enterでファイル名を確定します。
次に、シンプルなユーザー名ファイルを作成します。nanoを使用して、同じディレクトリにusers.txtという名前のファイルを作成します。
nano users.txt
ファイルに、単一のユーザー名を追加します。
root
ファイル保存し、nanoを前の手順と同様に終了します。
次に、通常の動作を確認するために、完全な Hydra 攻撃を実行します。
hydra -V -L users.txt -P passwords.txt localhost ssh
このコマンドを分解します。
-V: 詳細な攻撃試行を表示する詳細モードを有効にします。-L users.txt: Hydra にusers.txtファイルを使用してユーザー名を使用するように指示します。-P passwords.txt: Hydra にpasswords.txtファイルを使用してパスワードを使用するように指示します。localhost: ターゲットホストをlocalhostとして指定します。ssh: 攻撃対象のサービスを SSH として指定します。
出力は次のようになります。
Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-05-30 09:56:06
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 3 tasks per 1 server, overall 3 tasks, 3 login tries (l:1/p:3), ~1 try per task
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target 127.0.0.1 - login "root" - pass "password" - 1 of 3 [child 0] (0/0)
[ATTEMPT] target 127.0.0.1 - login "root" - pass "123456" - 2 of 3 [child 0] (0/0)
[ATTEMPT] target 127.0.0.1 - login "root" - pass "qwerty" - 3 of 3 [child 0] (0/0)
1 of 1 target completed, 0 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2025-05-30 09:56:09
攻撃が正常に完了した場合、Hydra は復元ファイルを作成しません。復元ファイルは、攻撃が中断された場合にのみ作成されます。
中断攻撃をシミュレートする
このステップでは、復元ファイルを作成するために、中断された Hydra 攻撃をシミュレートします。これは、Hydra が攻撃が正常に完了した場合ではなく、中断された場合にのみ復元ファイルを作成するためです。
中断可能な、より長く実行される攻撃を作成するために、パスワードリストを拡張しましょう。passwords.txtファイルを開きます。
nano passwords.txt
攻撃時間を長くするために、より多くのパスワードを追加します。
password
123456
qwerty
admin
root
test
guest
user
login
pass
secret
ファイルを保存してnanoを終了します。
次に、中断しやすくするために、実行速度を遅くして Hydra 攻撃を開始します。
hydra -V -L users.txt -P passwords.txt -t 1 -W 2 localhost ssh
追加オプションの説明:
-V: 詳細な攻撃試行を表示する詳細モードを有効にします。-t 1: 1 つのタスクのみを使用します(実行速度が遅くなります)。-W 2: 接続試行の間、2 秒待ちます。
重要: 攻撃を実行している間(Hydra がさまざまなユーザー名/パスワードの組み合わせを試している様子が表示されます)、数回の試行後、
Ctrl+Cを押して中断します。
出力は次のようになります。
Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-05-30 10:00:00
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 1 task per 1 server, overall 1 tasks, 11 login tries (l:1/p:11), ~11 tries per task
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target 127.0.0.1 - login "root" - pass "password" - 1 of 11 [child 0] (0/0)
[ATTEMPT] target 127.0.0.1 - login "root" - pass "123456" - 2 of 11 [child 0] (0/0)
^C
[ERROR] Received signal 2, going down ...
The session file ./hydra.restore was written, you can resume with: hydra -R
^Cはプロセスの中断を示し、重要なことに、復元ファイルが書き込まれたことを示すメッセージが表示されます。
Hydra コマンドを -R オプションで再起動し、動作を観察する
このステップでは、前のステップで中断した Hydra 攻撃を-Rオプションを使用して再開します。このオプションは、復元ファイルを使用して攻撃を中断した時点から再開するように Hydra に指示します。
攻撃を再開するには、ターミナルで次のコマンドを実行します。
hydra -R
このコマンドは-Rオプションのみを使用します。
-R: 復元ファイルを使用して、以前中断またはクラッシュしたセッションを再開します。
出力を観察します。Hydra が復元ファイルを読み込み、中断した時点から続行していることがわかるはずです。
Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
[INFORMATION] reading restore file ./hydra.restore
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-05-30 10:05:00
[DATA] max 1 task per 1 server, overall 1 tasks, 9 login tries (l:1/p:9), ~9 tries per task
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target 127.0.0.1 - login "root" - pass "qwerty" - 3 of 11 [child 0] (0/0)
[ATTEMPT] target 127.0.0.1 - login "root" - pass "admin" - 4 of 11 [child 0] (0/0)
...
Hydra は、中断した時点(この例では、「qwerty」を 3 番目の試行として開始)から再開し、最初から再開するのではなく、中断した時点から続行していることに注意してください。
Hydra コマンドで -I オプションを使用して復元ファイルを無視する
このステップでは、-Iオプションを使用して既存の復元ファイルを無視し、新しい攻撃を開始します。これは、以前のセッションデータに関係なく、攻撃を最初からやり直したい場合に便利です。
まず、復元ファイルが存在しない場合に-Rを使用するとエラーが発生することを確認してみましょう。
rm -f hydra.restore
hydra -V -R -L users.txt -P passwords.txt localhost ssh
エラーメッセージが表示されます。
Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
[INFORMATION] reading restore file ./hydra.restore
[ERROR] restore file (./hydra.restore) not found - No such file or directory
次に、攻撃を中断して復元ファイルを作成しましょう。
hydra -V -L users.txt -P passwords.txt -t 1 -W 2 localhost ssh
数回の試行後、Ctrl+Cで中断して復元ファイルを作成します。
次に、復元ファイルを無視するコマンドを実行します。
hydra -V -I -L users.txt -P passwords.txt localhost ssh
このコマンドには-Iオプションが含まれています。
-I: Hydra に既存の復元ファイルを無視し、新しい復元ファイルを作成しないように指示します。
出力を観察します。Hydra が既存の復元ファイルに関係なく、最初から開始していることがわかるはずです。
Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-05-30 10:10:00
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 3 tasks per 1 server, overall 3 tasks, 11 login tries (l:1/p:11), ~4 tries per task
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target 127.0.0.1 - login "root" - pass "password" - 1 of 11 [child 0] (0/0)
[ATTEMPT] target 127.0.0.1 - login "root" - pass "123456" - 2 of 11 [child 0] (0/0)
...
既存の復元ファイルに関係なく、攻撃が最初のパスワード("password")から開始していることに注意してください。
Hydra コマンドで -I と -R オプションを組み合わせる
このステップでは、-Iオプションと-Rオプションを組み合わせた場合に何が起きるかを理解します。この組み合わせは、Hydra が矛盾する指示をどのように処理するかを示しています。
以下のコマンドを実行します。
hydra -V -I -R -L users.txt -P passwords.txt localhost ssh
このコマンドには、両方のオプションが含まれています。
-V: 詳細な攻撃試行を表示するために詳細モードを有効にします-I: 既存の復元ファイルを無視します-R: 復元ファイルから再開します
このコマンドを実行すると、次のようなエラーメッセージが表示されます。
Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
[INFORMATION] reading restore file ./hydra.restore
[ERROR] restore file (./hydra.restore) not found - No such file or directory
これは、以下の理由で発生します。
-Rオプションは、Hydra に復元ファイルを探すよう指示します-Iオプションは、Hydra に復元ファイルを無視するよう指示します- 両方を使用すると、
-Rにより Hydra は復元ファイルを読み込もうとしますが、ファイルが存在しない場合や-Iにより無視された場合はエラーとなります。
これは、-Iと-Rは互いに矛盾するオプションであり、一緒に使用すべきではないことを示しています。代わりに、
- 復元ファイルから再開するには、
-Rのみを使用します - 復元ファイルを無視して新規に開始するには、
-Iのみを使用します - どちらのオプションも使用しない場合は、通常の攻撃を実行します
まとめ
この実験では、Hydra が中断された攻撃と復元ファイルを取り扱う方法を学びました。重要なポイントを以下にまとめます。
- 復元ファイルは攻撃が中断された場合にのみ作成されます - 通常の完了した攻撃では復元ファイルは生成されません。
-Rオプションは中断された攻撃を再開します -hydra.restoreファイルを読み込んで、攻撃が停止した場所から続行します。-Iオプションは復元ファイルを無視します - 既存のセッションデータを無視して、Hydra に新しい攻撃を開始させます。-Iと-Rを組み合わせると競合が発生します - これらのオプションは目的が相反するため、一緒に使用すべきではありません。- 適切な中断が重要です - 復元機能をテストするには、攻撃を
Ctrl+Cで実際に中断する必要があります。正常に完了させるのではなく。
この理解は、実際の状況で長時間の Hydra 攻撃を管理する上で非常に重要です。攻撃を一時停止して再開したり、必要に応じて新規に開始したりする場合があります。


