Hydra のポート番号をカスタマイズする

HydraHydraBeginner
今すぐ練習

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

はじめに

この実験では、ターゲットシステム上で FTP ポート番号をカスタマイズし、そのカスタムポート上の FTP サービスに対して Hydra を使用してブルートフォース攻撃を行う方法を学びます。これは、非標準の FTP ポートで構成されたシステムのセキュリティを評価する必要があるペネトレーションテスターやセキュリティ専門家にとって重要なスキルです。

この実験では、LabEx VM 上の FTP サーバーを、vsftpd.conf ファイルを変更して非標準ポートで待機するように構成し、FTP サービスを再起動します。次に、netstat コマンドを使用して、FTP サーバーが新しいポートで待機していることを確認します。最後に、Hydra を -s オプションで使用してカスタムポートを指定し、FTP 攻撃を実行し、Hydra が構成されたポート上の FTP サービスに正常に接続できることを検証します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) hydra/HydraGroup -.-> hydra/ssh_attack("SSH Brute Force") hydra/HydraGroup -.-> hydra/verbose_mode("Verbose Mode Usage") hydra/HydraGroup -.-> hydra/custom_port("Custom Port Attack") subgraph Lab Skills hydra/ssh_attack -.-> lab-550765{{"Hydra のポート番号をカスタマイズする"}} hydra/verbose_mode -.-> lab-550765{{"Hydra のポート番号をカスタマイズする"}} hydra/custom_port -.-> lab-550765{{"Hydra のポート番号をカスタマイズする"}} end

非標準ポートでの FTP の設定

このステップでは、LabEx VM 上の FTP サーバーを非標準ポートで待機するように設定します。デフォルトでは、FTP はポート 21 を使用します。FTP ポートを変更することで、デフォルトポートをターゲットとする自動攻撃のリスクを低減することができます。

まず、FTP 設定ファイルを編集しましょう。LabEx VM には事前にインストールされている nano エディタを使用します。

sudo nano /etc/vsftpd.conf

このコマンドは、nano エディタで vsftpd.conf ファイルを開きます。

ファイルに以下の行を追加します。

listen_port=2121
add listen_port

listen_port の行が存在しない場合は、ファイルに追加します。ファイルの上部近くに追加するのが良い習慣です。

変更を加えた後、Ctrl+X を押してから Y を押して変更を確認し、Enter を押して同じファイル名で保存します。

次に、変更を有効にするために FTP サービスを再起動する必要があります。

sudo service vsftpd restart

このコマンドは FTP サービスを再起動します。サービスが再起動されたことを示す出力が表示されるはずです。

最後に、FTP サーバーが新しいポートで待機していることを確認しましょう。待機中のポートを確認するには netstat コマンドを使用できます。

sudo netstat -tulnp | grep vsftpd

このコマンドは、すべての TCP、UDP、待機中のポート、およびプロセス情報を表示し、その出力をフィルタリングして "vsftpd" を含む行のみを表示します。vsftpd がポート 2121(または選択したポート)で待機していることを示す行が表示されるはずです。

出力例:

tcp6       0      0 :::2121                 :::*                    LISTEN      1027/vsftpd
check FTP port

出力に新しいポート番号が表示されれば、FTP サーバーが新しいポートで待機していることを意味します。

-s オプションでポートを指定する

このステップでは、ftp コマンドを使用する際に非標準ポートを指定する方法を学びます。前のステップで、FTP サーバーの待機ポートをデフォルトの 21 からカスタムポート(例:2121)に変更したため、この操作は重要です。サーバーに接続する際には、ftp クライアントに使用するポートを指定する必要があります。

ftp コマンドでは、ポート番号を指定するために -p オプションが用意されています。一方、Hydra ではポートを指定するために -s オプションを使用します。次のステップで Hydra を使った攻撃を行うため、この違いを理解することが重要です。

まず、ftp コマンドの -p オプションを使って FTP サーバーに接続し、接続を確認してみましょう。localhost を LabEx VM の IP アドレスに置き換えてください。同じ VM 上でこの実験を行っている場合は、localhost または 127.0.0.1 を使用できます。

ftp -p localhost 2121

ユーザー名とパスワードの入力を求められます。Ctrl+C で終了します。

次に、Hydra がどのようにポートを指定するかをシミュレートしましょう。まだ実際に Hydra を使用するわけではありませんが、このステップは構文を理解するために重要です。Hydra では、ポートを指定するために -s オプションを使用します。

Hydra でポートを指定する構文は、標準の ftp コマンドとは異なります。Hydra では -s の後にポート番号を指定します。たとえば、ポート 2121 の FTP サービスを攻撃するために Hydra を使用する場合、Hydra コマンドに -s 2121 を含めます。

これを示すために、ダミーの Hydra コマンドを作成してみましょう。実行することはありませんが、正しい構文を示すことができます。

hydra -l ftpuser -P ~/project/password.txt localhost ftp -s 2121
hydra syntax

ここで重要なのは -s 2121 の部分です。これにより、Hydra はポート 2121 の FTP サービスに接続するように指示されます。

要するに、標準の ftp コマンドでは -p を使ってポートを指定しますが、Hydra では -s を使用します。次のステップで Hydra を使って FTP 攻撃を実行するために、この違いを理解することが重要です。

カスタムポートでの FTP 攻撃の実行

このステップでは、最初のステップで設定した非標準ポートで動作している FTP サービスに対して、Hydra を使用して総当たり攻撃を行います。セットアップフェーズで作成したパスワードリストを使用します。

これで Hydra による攻撃を開始する準備が整いました。localhost を LabEx VM の IP アドレスに置き換えてください。同じ VM 上でこの実験を行っている場合は、localhost または 127.0.0.1 を使用できます。

hydra -l ftpuser -P ~/project/password.txt localhost ftp -s 2121 -vV

このコマンドを分解して説明しましょう。

  • hydra: Hydra ツールを実行するコマンドです。
  • -l ftpuser: 攻撃対象のユーザー名を指定します。
  • -P ~/project/password.txt: セットアップ時に作成したパスワードリストファイルのパスを指定します。
  • localhost: ターゲットの IP アドレスを指定します。localhost を実際の IP アドレスに置き換えてください。
  • ftp: 攻撃対象のサービスを指定します(この場合は FTP)。
  • -s 2121: ポート番号を指定します。最初のステップで FTP ポートを 2121 に変更したため、これは重要です。
  • -vV: 詳細モードを有効にします。これにより、ログイン試行をリアルタイムで表示します。

このコマンドを実行します。Hydra は、指定されたポートの FTP サービスに対して、~/project/password.txt ファイルから異なるパスワードを試し始めます。

Hydra が正しいパスワードを見つけると、ログイン成功情報を表示します。例えば以下のようになります。

[ATTACKER] attacking ftp://localhost:2121/
[2121][ftp] host: localhost   login: ftpuser   password: password123

Hydra が正しいパスワードを見つけられない場合、リスト内のすべてのパスワードを試した後、ログイン成功の表示なしで終了します。

重要なセキュリティ注意事項: この実験は教育目的のみで行われています。明示的な許可なしに Hydra を使用してシステムを攻撃しないでください。コンピュータシステムへの無許可アクセスは違法で不道徳な行為です。

正しいポートへの接続を検証する

この最後のステップでは、Hydra による攻撃を試みた後も、カスタムポートで FTP サーバーに接続できることを検証します。これにより、FTP サービスが期待通りに動作しており、指定したポートを使用してアクセスできることが確認できます。

ftp コマンドの -p オプションを使用して、カスタムポートの FTP サーバーに接続します。localhost を LabEx VM の IP アドレスに置き換えてください。同じ VM 上でこの実験を行っている場合は、localhost または 127.0.0.1 を使用できます。

ftp -p 2121 localhost

ユーザー名とパスワードの入力を求められます。セットアップ時に作成した資格情報を使用します。

  • ユーザー名:ftpuser
  • パスワード:password123

接続に成功すると、FTP サーバーにログインします。

ftp login

接続できない場合は、以下の点を再確認してください。

  • FTP サービスがまだ動作していることを確認します。最初のステップで行ったように、netstat -tulnp | grep vsftpd コマンドを使用して確認できます。
  • /etc/vsftpd.conf ファイルで、FTP ポートがまだ 2121(または選択したポート)に設定されていることを確認します。
  • カスタムポートへの接続をブロックするファイアウォールルールがないことを確認します。(注:LabEx VM 環境では通常、デフォルトでファイアウォールは有効になっていませんが、実際のシナリオではこの点を念頭に置くことが重要です。)
  • 正しいユーザー名とパスワードを使用していることを確認します。

接続に成功することで、FTP サーバーがカスタムポートで動作しており、ftp コマンドの -p オプションを使用して接続できることが確認できます。これにより、Hydra による攻撃が失敗した場合でも、FTP サービスが中断されていないことも検証できます。

これで実験は完了です。非標準ポートで FTP を設定し、Hydra の -s オプションを使用してポートを指定する方法を学び、基本的な Hydra 攻撃を実行し、正しいポートへの接続を検証することに成功しました。

まとめ

この実験では、LabEx VM 上の FTP サーバーを、デフォルトのポート 21 ではなく、非標準ポート、具体的にはポート 2121 で待機するように設定しました。これには、nano を使用して /etc/vsftpd.conf ファイルを編集し、listen_port ディレクティブを変更または追加し、その後 sudo service vsftpd restart を使用して FTP サービスを再起動する作業が含まれていました。

最後に、netstat -tulnp | grep vsftpd コマンドを使用して待機中のポートを確認し、vsftpd がポート 2121 に関連付けられていることを確認することで、FTP サーバーが実際に新しいポートで待機していることを検証しました。