Hydra の復元ファイルを無視する

HydraHydraBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Hydra が中断された攻撃をどのように処理し、それを効果的に再開するかを探ります。簡単なユーザー名とパスワードのリストを作成し、攻撃を開始してから Ctrl+C を使用して手動で中断することで、ローカルホストの SSH サービスに対する中断された Hydra 攻撃をシミュレートします。

その後、この実験では -R オプションを使用して攻撃を再開し、遅延を観察する手順を案内します。続いて、-R と組み合わせて -I オプションを使用して遅延をスキップし、新たに攻撃を開始する方法を説明します。最後に、以前の復元ファイルを無視して攻撃が予想通りに再開されることを確認します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) hydra/HydraGroup -.-> hydra/single_username("Single Username Attack") hydra/HydraGroup -.-> hydra/single_password("Single Password Attack") hydra/HydraGroup -.-> hydra/ssh_attack("SSH Brute Force") hydra/HydraGroup -.-> hydra/multiple_targets("Multiple Targets Attack") hydra/HydraGroup -.-> hydra/session_management("Session Save and Restore") subgraph Lab Skills hydra/single_username -.-> lab-550770{{"Hydra の復元ファイルを無視する"}} hydra/single_password -.-> lab-550770{{"Hydra の復元ファイルを無視する"}} hydra/ssh_attack -.-> lab-550770{{"Hydra の復元ファイルを無視する"}} hydra/multiple_targets -.-> lab-550770{{"Hydra の復元ファイルを無視する"}} hydra/session_management -.-> lab-550770{{"Hydra の復元ファイルを無視する"}} end

中断された攻撃のシミュレート

このステップでは、中断された Hydra 攻撃をシミュレートします。これにより、Hydra が中断をどのように処理し、後で攻撃をどのように再開できるかを理解するのに役立ちます。まず基本的な Hydra 攻撃を開始し、その後手動で中断します。

まず、簡単なパスワードリストを作成しましょう。~/project ディレクトリでターミナルを開き、nano を使用して passwords.txt という名前のファイルを作成します。

nano passwords.txt

ファイルにいくつかの一般的なパスワードを追加します。1 行に 1 つのパスワードを記載します。例えば:

password
123456
qwerty

ファイルを保存し、nano を終了します(Ctrl+X を押し、次に Y を押し、最後に Enter を押します)。

次に、簡単なユーザー名ファイルを作成しましょう。nano を使用して users.txt という名前のファイルを作成します。

nano users.txt

ファイルに 1 つのユーザー名を追加します。

root

ファイルを保存し、nano を終了します。

次に、localhost の SSH サービスに対して Hydra 攻撃を開始します。迅速に成功する可能性のある簡単なコマンドを使用しますが、より長時間の攻撃をシミュレートするために手動で中断します。

以下のコマンドを実行します。

hydra -L users.txt -P passwords.txt localhost ssh

このコマンドは Hydra に以下のことを指示します。

  • -L users.txt:ユーザー名に users.txt ファイルを使用する。
  • -P passwords.txt:パスワードに passwords.txt ファイルを使用する。
  • localhostlocalhost をターゲットにする。
  • ssh:SSH サービスを攻撃する。

攻撃が実行中の間(Hydra が異なるユーザー名/パスワードの組み合わせを試しているのが見えるはずです)、Ctrl+C を押して攻撃を中断します。

以下のような出力が表示されるはずです(正確な出力は異なる場合があります)。

Hydra v9.6 starting, press Enter to test creds or Ctrl+C to exit
[DATA] 1 task, 1 server, 1 userfile, 1 passfile, max 1 task(s) per 1 server, overall 1 task(s)
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target: localhost  login: root  password: password
[ATTEMPT] target: localhost  login: root  password: 123456
[ATTEMPT] target: localhost  login: root  password: qwerty
^C
3 of 3 target(s) completed, 0 valid password(s) found

^C はプロセスを中断したことを示しています。これは攻撃が早期に停止されたシナリオをシミュレートしています。次のステップでは、この中断された状態を使用して、Hydra の再開機能を調べます。

-R で再開し、遅延を確認する

このステップでは、前のステップで中断された Hydra 攻撃を -R オプションを使用して再開します。このオプションは Hydra に、中断したところから攻撃を再開するよう指示します。また、攻撃を再開する際に Hydra が導入する遅延を観察します。

攻撃を再開するには、以下のコマンドを実行します。

hydra -R -L users.txt -P passwords.txt localhost ssh

このコマンドは前のコマンドと似ていますが、-R オプションが追加されています。

  • -R:以前に中断またはクラッシュしたセッションを再開する。
  • -L users.txt:ユーザー名に users.txt ファイルを使用する。
  • -P passwords.txt:パスワードに passwords.txt ファイルを使用する。
  • localhostlocalhost をターゲットにする。
  • ssh:SSH サービスを攻撃する。

出力を観察してください。Hydra が再びパスワードの試行を開始する前に遅延があることに気づくはずです。この遅延は意図的なもので、侵入検知システム(IDS: Intrusion Detection System)による検知を回避するために設計されています。Hydra は攻撃の進捗状況を一時ファイルに保存し、-R オプションを使用すると、このファイルを読み取って攻撃を再開する位置を決定します。

出力は次のようになります。

Hydra v9.6 starting, press Enter to test creds or Ctrl+C to exit
Resuming previous session
[DATA] 1 task, 1 server, 1 userfile, 1 passfile, max 1 task(s) per 1 server, overall 1 task(s)
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target: localhost  login: root  password: qwerty
3 of 3 target(s) completed, 0 valid password(s) found

注意:この例ではパスワードリストに少数のパスワードしかないため、遅延は非常に短い場合があります。ただし、パスワードリストが大きくなると、遅延はより顕著になります。また、攻撃を 'password'、'123456'、'qwerty' を試した後に中断したため、攻撃は非常に迅速に完了する可能性があります。

-R と共に -I を使用して遅延をスキップする

このステップでは、-R オプションと組み合わせて -I オプションを使用し、Hydra が攻撃を再開する際に導入する遅延をスキップします。-I オプションは Hydra に、既存のセッションファイルを無視して新しいセッションを開始するよう指示し、実質的に遅延を回避します。

以下のコマンドを実行します。

hydra -I -R -L users.txt -P passwords.txt localhost ssh

このコマンドには -I-R の両方のオプションが含まれています。

  • -I:既存のセッションファイルを無視する / 新しいセッションファイルを作成しない。
  • -R:以前に中断またはクラッシュしたセッションを再開する。
  • -L users.txt:ユーザー名に users.txt ファイルを使用する。
  • -P passwords.txt:パスワードに passwords.txt ファイルを使用する。
  • localhostlocalhost をターゲットにする。
  • ssh:SSH サービスを攻撃する。

出力を観察してください。-R オプションのみを使用したときに見られた遅延がなく、Hydra がすぐにパスワードの試行を開始することに気づくはずです。

出力は次のようになります。

Hydra v9.6 starting, press Enter to test creds or Ctrl+C to exit
[DATA] 1 task, 1 server, 1 userfile, 1 passfile, max 1 task(s) per 1 server, overall 1 task(s)
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target: localhost  login: root  password: password
[ATTEMPT] target: localhost  login: root  password: 123456
[ATTEMPT] target: localhost  login: root  password: qwerty
3 of 3 target(s) completed, 0 valid password(s) found

-R と共に -I を使用することで、実質的に Hydra に攻撃を再開するが既存のセッションデータを無視するよう指示しています。これは、遅延を待たずに迅速に攻撃を再開したい場合に便利です。ただし、遅延をスキップすると検知されるリスクが高まる可能性があることに注意してください。

新しい攻撃の開始を確認する

このステップでは、-R と共に -I オプションを使用すると、前のセッションの進捗を無視して新しい攻撃が開始されることを確認します。これを行うために、パスワードリストを変更し、Hydra がすべてのパスワードを最初から試行することを観察します。

まず、passwords.txt ファイルを変更しましょう。nano で開きます。

nano passwords.txt

ファイルの先頭に新しいパスワードを追加します。

newpassword
password
123456
qwerty

ファイルを保存し、nano を終了します。

次に、再び -I-R を指定して Hydra コマンドを実行します。

hydra -I -R -L users.txt -P passwords.txt localhost ssh

出力を観察してください。Hydra が変更後のリストの最初のパスワードである newpassword から試行を開始することがわかるはずです。これにより、Hydra が新しい攻撃を開始し、前のセッションの進捗から再開していないことが確認できます。

出力は次のようになります。

Hydra v9.6 starting, press Enter to test creds or Ctrl+C to exit
[DATA] 1 task, 1 server, 1 userfile, 1 passfile, max 1 task(s) per 1 server, overall 1 task(s)
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target: localhost  login: root  password: newpassword
[ATTEMPT] target: localhost  login: root  password: password
[ATTEMPT] target: localhost  login: root  password: 123456
[ATTEMPT] target: localhost  login: root  password: qwerty
4 of 4 target(s) completed, 0 valid password(s) found

このステップでは、-R と共に -I オプションを使用すると、前のセッションデータを無視して新しい Hydra 攻撃を開始できることを示しています。これは、前の攻撃が中断されたかどうかに関係なく、すべてのパスワードをテストしたい場合に便利です。

まとめ

この実験では、localhost の SSH サービスに対する Hydra 攻撃が中断される状況をシミュレートしました。それぞれユーザー名とパスワードを含む users.txtpasswords.txt ファイルを作成しました。その後、これらのファイルを使用して SSH サービスをターゲットに Hydra 攻撃を開始しました。

攻撃中に、Ctrl+C を使用して手動でプロセスを中断しました。これにより、攻撃が早期に終了した場合の Hydra の動作を観察することができ、その後のステップで攻撃を効果的に再開または再開する方法を探索するための土台を築きました。