Hydra で SSH ブルートフォース攻撃

HydraHydraIntermediate
今すぐ練習

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

はじめに

この実験(Lab)では、サイバーセキュリティで広く使用されているパスワードクラッキングツールである Hydra を使用して、SSH サービスに対するブルートフォース攻撃を実行する方法を学びます。この演習では、Hydra のインストール、脆弱な認証情報を持つターゲットサーバーのセットアップ、および用意されたワードリストを使用した攻撃の実行について説明します。

SSH テスト環境の構成と、Hydra のブルートフォース機能の分析に関する実践的な経験が得られます。この実験(Lab)では、制御された環境で倫理的なハッキングの原則を強化しながら、実際の攻撃シナリオを実演します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) hydra/HydraGroup -.-> hydra/installation("Installation and Setup") hydra/HydraGroup -.-> hydra/password_creation("Password List Creation") hydra/HydraGroup -.-> hydra/username_creation("Username List Creation") hydra/HydraGroup -.-> hydra/ssh_attack("SSH Brute Force") hydra/HydraGroup -.-> hydra/output_saving("Output File Saving") hydra/HydraGroup -.-> hydra/verbose_mode("Verbose Mode Usage") hydra/HydraGroup -.-> hydra/troubleshooting("Basic Troubleshooting") subgraph Lab Skills hydra/installation -.-> lab-549926{{"Hydra で SSH ブルートフォース攻撃"}} hydra/password_creation -.-> lab-549926{{"Hydra で SSH ブルートフォース攻撃"}} hydra/username_creation -.-> lab-549926{{"Hydra で SSH ブルートフォース攻撃"}} hydra/ssh_attack -.-> lab-549926{{"Hydra で SSH ブルートフォース攻撃"}} hydra/output_saving -.-> lab-549926{{"Hydra で SSH ブルートフォース攻撃"}} hydra/verbose_mode -.-> lab-549926{{"Hydra で SSH ブルートフォース攻撃"}} hydra/troubleshooting -.-> lab-549926{{"Hydra で SSH ブルートフォース攻撃"}} end

Hydra のインストール

このステップでは、Hydra をインストールします。Hydra は、さまざまなネットワークサービスに対するブルートフォース攻撃に使用される強力なパスワードクラッキングツールです。Hydra は、保護されたシステムへのアクセスを得るために、さまざまなユーザー名とパスワードの組み合わせを体系的に試すことができるため、ペネトレーションテスト(浸透試験)に特に役立ちます。SSH(この実験(Lab)で使用します)、FTP、HTTP など、複数のプロトコルをサポートしています。

  1. まず、LabEx VM 環境でターミナルを開きます。ターミナルは、Linux でコマンドを実行するための主要なインターフェースです。すべての実験(Lab)作業を行うデフォルトの作業ディレクトリにいることを確認してください。

    cd ~/project
  2. 新しいソフトウェアをインストールする前に、パッケージリストを更新することをお勧めします。これにより、Hydra とそのすべての依存関係の最新バージョンを入手できます。

    sudo apt update
  3. ここで、apt パッケージマネージャーを使用して Hydra をインストールします。これは、Ubuntu のような Debian ベースのシステムでのソフトウェアのインストールを処理します。-y フラグは、インストールを自動的に確認します。

    sudo apt install -y hydra
  4. インストール後、Hydra のバージョンを確認して、Hydra が正しくインストールされていることを確認しましょう。head -n 1 コマンドは、バージョン情報を含む出力の最初の行のみを表示します。

    hydra -h | head -n 1
    Hydra のバージョンを示す出力

    次のような出力が表示されるはずです。

    Hydra v9.2 (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes.
  5. Hydra は、GUI ツールを好むユーザー向けに、グラフィカルインターフェースバージョンも提供しています。この実験(Lab)ではコマンドラインバージョンを使用しますが、オプションで GTK+ GUI バージョンをインストールすることもできます。

    sudo apt install -y hydra-gtk
    Hydra のバージョンを示す出力

ターゲット SSH サーバーのセットアップ

このステップでは、後続のステップでパスワードクラッキングのターゲットとして機能するローカル SSH サーバーを構成します。これにより、制御された環境でペネトレーションテスト(浸透試験)の手法を練習できます。SSH (Secure Shell) は、コンピューター間の安全なリモートログインに使用されるプロトコルであり、学習目的で脆弱なバージョンをセットアップします。

  1. まず、デフォルトの作業ディレクトリにいることを確認してください。すべての実験(Lab)ファイルを 1 か所に整理するため、これは重要です。

    cd ~/project
  2. OpenSSH サーバーパッケージをインストールします。このソフトウェアは、あなたのマシンをリモート接続を受け入れることができる SSH サーバーに変えます。

    sudo apt install -y openssh-server
  3. (デモンストレーションのみを目的として)脆弱なパスワードを持つ専用のテストユーザーアカウントを作成します。現実のシナリオでは、このような脆弱なパスワードはまさに攻撃者が探しているものです。

    sudo useradd -m testuser
    echo "testuser:password123" | sudo chpasswd
  4. (この実験(Lab)のために一時的に)パスワード認証を許可するように SSH を構成します。デフォルトでは、多くのシステムはセキュリティ上の理由からパスワード認証を無効にしていますが、ここではブルートフォース攻撃がどのように機能するかを示すために有効にします。

    sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
  5. SSH サービスを再起動して、変更を適用します。構成の変更を有効にするには、サービスを再起動する必要があることがよくあります。

    sudo service ssh restart
  6. SSH サーバーが実行されていることを確認します。このコマンドは、SSH サーバーが適切にアクティブであり、接続をリッスンしているかどうかを確認します。

    sudo service ssh status

    サービスがアクティブ(実行中)であることを示す出力が表示されるはずです。そうでない場合は、前の手順でトラブルシューティングが必要なエラーが発生した可能性があります。

  7. SSH 接続をローカルでテストします。この最後のチェックでは、攻撃フェーズに進む前に、すべてが機能していることを確認します。

    ssh testuser@localhost -o StrictHostKeyChecking=no

    プロンプトが表示されたら、パスワード password123 を入力します。ログインに成功したら、exit と入力してメインセッションに戻ります。-o StrictHostKeyChecking=no オプションは、SSH がサーバーのフィンガープリント(指紋)の検証を要求するのを防ぎます。これは、この実験(Lab)環境では許容されます。

    ローカル SSH 接続テストの結果

ユーザー名とパスワードのリストの準備

このステップでは、Hydra が SSH 認証を試行するために使用する可能性のあるユーザー名とパスワードを含むテキストファイルを作成します。これらのファイルは、辞書ベースのブルートフォース攻撃に不可欠です。辞書攻撃は、定義済みのリストから可能なすべてのユーザー名とパスワードの組み合わせを体系的に試すことによって機能します。そのため、適切なリストを準備することが重要です。

  1. まず、デフォルトの作業ディレクトリにいることを確認してください。これにより、プロジェクトファイルが整理され、後で参照しやすくなります。

    cd ~/project
  2. nano テキストエディターを使用して、ユーザー名リストファイルを作成します。多くのシステムがデフォルトまたは予測可能なユーザー名を使用しているため、ブルートフォース攻撃では一般的なユーザー名が最初に試されることがよくあります。

    nano usernames.txt

    これらの一般的なユーザー名を追加します(Ctrl+O を押して保存し、Ctrl+X を押して終了します)。

    admin
    root
    testuser
    user
    guest
  3. パスワードリストファイルを作成します。このような脆弱なパスワードは頻繁に使用され、セキュリティテストで最初にターゲットになることがよくあります。

    nano passwords.txt

    これらの一般的なパスワードを追加します。

    password
    password123
    123456
    qwerty
    letmein
  4. ファイルが正しく作成されたことを、その内容を表示して確認します。この確認ステップにより、リストにタイプミスやフォーマットの問題がないことが保証されます。

    cat usernames.txt
    cat passwords.txt

    作成したリストがターミナルに表示されるはずです。

  5. (オプション)crunch を使用して、追加のパスワードバリエーションを生成します。このツールは、指定されたパターンに基づいて組み合わせを自動的に生成することにより、より包括的なパスワードリストを作成するのに役立ちます。

    sudo apt install -y crunch
    crunch 4 6 0123456789 -o num_passwords.txt

    これにより、4〜6 文字の長さの数値パスワードが作成されます。このコマンドは、最小長(4)、最大長(6)、および文字セット(数字 0〜9)を指定します。

SSH に対して Hydra を実行する

このステップでは、Hydra を使用してローカル SSH サーバーに対してブルートフォース攻撃を実行します。ブルートフォース(総当たり)は、正しい組み合わせが見つかるまで、多くのユーザー名/パスワードの組み合わせを試す方法です。以前に準備したワードリストを使用して、このプロセスを自動化します。

  1. まず、ワードリストを含むプロジェクトディレクトリに移動します。これにより、Hydra が作成したファイルを見つけられるようになります。

    cd ~/project
  2. 次に、特定のパラメーターを指定して Hydra を実行します。コマンド構造は、Hydra に何を攻撃し、どのように攻撃するかを指示します。詳しく見ていきましょう。

    hydra -L usernames.txt -P passwords.txt ssh://localhost -t 4 -vV

    パラメーターの説明:

    • -L usernames.txt: 可能なユーザー名のリストを指定します
    • -P passwords.txt: パスワード辞書ファイルを指定します
    • ssh://localhost: このマシンの SSH サービスをターゲットにします
    • -t 4: 4 つの同時試行に制限して速度を制御します
    • -vV: ターミナルに詳細な進行状況を表示します
  3. Hydra の実行中、各試行がリアルタイムで表示されます。有効な認証情報が見つかると、次のように出力に明確に表示されます。

    [22][ssh] host: localhost   login: testuser   password: password123
    Hydra の実行結果の表示
  4. (オプション)結果の永続的な記録を保持するために、ファイルに保存できます。これは、ドキュメント化やさらなる分析に役立ちます。

    hydra -L usernames.txt -P passwords.txt ssh://localhost -t 4 -o results.txt
  5. スキャンが完了したら、次のコマンドで保存された結果を表示できます。

    cat results.txt

まとめ

この実験(Lab)では、強力なパスワードクラッキングツールである Hydra を使用して、SSH に対してブルートフォース攻撃を実行する方法を学びました。この演習では、Hydra のインストール、テスト用の SSH サーバーの構成、およびターゲットを絞ったユーザー名/パスワードリストの作成について説明しました。

辞書ベースの攻撃の実行と結果の分析を実践し、脆弱な認証情報がどのように悪用される可能性があるかを実証しました。この実践的な経験は、サイバーセキュリティにおける強力なパスワードと安全な認証方法の重要性を強調しています。