以前の Hydra セッションを復元する

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

はじめに

この実験では、中断後に以前の Hydra セッションを復元する方法を学びます。これは、簡単なパスワードリストを使用して localhostssh サービスに対する Hydra 攻撃を中断するシミュレーションを行うことで達成されます。その後、-R オプションを使用してセッションを復元し、攻撃が最後のポイントから再開されることを確認します。

この実験では、パスワードリストを作成し、ssh サービスを攻撃するための Hydra コマンドを構築し、Ctrl+C で攻撃を中断し、その後 -R オプションを使用してセッションを復元します。最後に、新しいオプションで復元されたセッションを変更する方法を探ります。

中断された Hydra 攻撃をシミュレートする

このステップでは、中断された Hydra 攻撃をシミュレートします。これは、-R オプションを使用してセッションを復元する方法を理解する上で重要なステップです。Hydra 攻撃を開始し、その後手動で中断します。これは、ネットワーク問題やその他の予期せぬ状況により攻撃が停止する実際のシナリオを模倣しています。

まず、簡単なパスワードリストをプレビューしましょう。このリストには、Hydra が試みるいくつかの一般的なパスワードが含まれます。

cd ~/project
head -n 5 passwords.txt

以下のパスワードをファイルに追加します。

password
123456
qwerty
admin
1234567890

次に、攻撃するターゲットが必要です。デモンストレーションの目的で、localhostssh サービスを使用します。LabEx VM で ssh が実行されていることを確認してください。実行されていない場合は、通常 sudo service ssh start で起動できます。ただし、これは Docker コンテナであるため、systemctlservice を使用できない場合があります。この場合は、実際の攻撃をスキップし、コマンドの作成と中断に焦点を当てることができます。この演習の目的で、ssh が実行されていると仮定します。

sudo service ssh start
sudo service ssh status

では、Hydra コマンドを構築しましょう。ssh モジュールを使用し、ユーザー名 labex を指定し、passwords.txt ファイルを使用し、localhost をターゲットにします。また、-t 1 オプションを追加して、同時実行タスクの数を 1 に制限し、中断を観察しやすくします。

hydra -l labex -P ~/project/passwords.txt -t 1 -vV ssh://localhost

このコマンドは、localhostssh サービスに対する Hydra 攻撃を開始し、~/project/passwords.txt のパスワードを使用してユーザー labex としてログインを試みます。

攻撃を数秒間(例えば 5 - 10 秒)実行します。実行中に Ctrl+C を押して攻撃を中断します。

以下のような出力が表示されるはずです(正確な出力はシステムの速度と 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-04-02 13:56:44
[DATA] max 1 task per 1 server, overall 1 task, 55 login tries (l:1/p:55), ~55 tries per task
[DATA] attacking ssh://localhost:22/
[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[INFO] Testing if password authentication is supported by ssh://labex@127.0.0.1:22
[INFO] Successful, password authentication is supported by ssh://127.0.0.1:22
[ATTEMPT] target localhost - login "labex" - pass "password" - 1 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "123456" - 2 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "qwerty" - 3 of 55 [child 0] (0/0)
^C[ERROR] Received signal 2, going down ...
The session file ./hydra.restore was written. Type "hydra -R" to resume session.
cancel attack

^C は、Ctrl+C を押してプロセスを中断したことを示しています。Hydra はパスワードの試行を停止します。

この中断は、攻撃が予期せず停止するシナリオをシミュレートしています。次のステップでは、-R オプションを使用してこの中断されたセッションを再開する方法を学びます。

-R オプションでセッションを復元する

前のステップでは、中断された Hydra 攻撃をシミュレートしました。今度は、-R オプションを使用して、中断したところからセッションを復元します。Hydra は自動的に進行状況を現在のディレクトリ内の .restore ファイルに保存します。-R オプションは、Hydra にこのファイルを読み取らせ、攻撃を続行させる指示です。

セッションを復元するには、以前と同じ Hydra コマンドを実行し、-R オプションを追加します。

hydra -R -l labex -P ~/project/passwords.txt -t 1 -vV ssh://localhost

Hydra は、自動的に作成された hydra.restore ファイルを読み取り、中断前に到達した最後のポイントから攻撃を再開します。Hydra が ~/project/passwords.txt ファイルからパスワードの試行を続けるのが確認できるはずです。

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
[WARNING] options after -R are now honored (since v8.6)
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-04-02 13:57:58
[DATA] max 1 task per 1 server, overall 1 task, 55 login tries (l:1/p:55), ~55 tries per task
[DATA] attacking ssh://localhost:22/
[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[INFO] Testing if password authentication is supported by ssh://labex@127.0.0.1:22
[INFO] Successful, password authentication is supported by ssh://127.0.0.1:22
[RE-ATTEMPT] target localhost - login "labex" - pass "qwerty" - 3 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "admin" - 4 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "1234567890" - 5 of 55 [child 0] (0/0)
^C[ERROR] Received signal 2, going down ...
The session file ./hydra.restore was written. Type "hydra -R" to resume session.
restore attack

攻撃をさらに数秒間実行しましょう。Hydra が前のステップですでに試したパスワードをスキップするのが確認できるかもしれません。

-R オプションは、パスワードリストが長い場合やネットワーク接続が遅い場合に非常に便利です。このオプションを使用すると、最初からやり直す必要なく攻撃を再開でき、時間とリソースを節約できます。

hydra.restore ファイルは、Hydra の進行に伴って自動的に更新されることに注意してください。再度攻撃を中断した場合、同じ -R コマンドを使用して、新しい中断ポイントから再開できます。

まとめ

この実験では、localhost の SSH サービスに対する中断された Hydra 攻撃をシミュレートし、セッションを復元する方法を理解しました。パスワードリストを作成し、'labex' ユーザーをターゲットにした Hydra 攻撃を開始し、その後 Ctrl+C を使用して手動でプロセスを中断しました。

この中断により、次のステップの準備ができました。次のステップでは、-R オプションを使用して中断されたセッションを復元し、中断したところから攻撃を続行する方法、および新しいオプションで復元されたセッションを変更する方法を学びます。