Metasploit で SSH 列挙のための補助スキャナーを使用する

Kali LinuxBeginner
オンラインで実践に進む

はじめに

この実験では、Metasploit Framework 内の補助スキャナーモジュールを使用して、SSH (Secure Shell) のバージョン列挙を実行する方法を学びます。Metasploit は、膨大な数のエクスプロイト、ペイロード、および補助モジュールを含む強力な侵入テストツールです。

補助モジュールは直接的なエクスプロイトには使用されませんが、スキャン、ファジング、情報収集などの他の目的で使用されます。SSH 列挙は、セキュリティ評価の偵察フェーズにおける重要な部分です。SSH サーバーの特定のバージョンを特定することにより、攻撃者はそのバージョンに関連付けられた既知の脆弱性を検索できます。

Metasploit コンソールを起動し、適切なモジュールを検索し、そのオプションを設定し、ターゲットに対して実行して SSH バージョンを発見する方法を学びます。

ssh_version 補助モジュールを検索する

このステップでは、Metasploit Framework コンソールを起動し、SSH バージョンをスキャンできるモジュールを検索します。

まず、ターミナルを開きます。Metasploit コンソールは、フレームワークのコマンドラインインターフェースです。msfconsole と入力して起動できます。ここでは、起動時のバナーを抑制する「サイレント」起動のための -q フラグを使用します。

Metasploit コンソールを起動するには、次のコマンドを実行します。

msfconsole -q

コンソールがロードされると、msf6 > のような Metasploit プロンプトが表示されます。ここで、search コマンドを使用してモジュールを検索できます。SSH バージョン スキャンに関連するモジュールを探しています。

Metasploit コンソールに次のコマンドを入力して Enter キーを押します。

search ssh_version

Metasploit はモジュールデータベースを検索し、一致するものを表示します。出力には auxiliary/scanner/ssh/ssh_version モジュールが表示され、これがまさに私たちが求めているものです。

msf6 > search ssh_version

Matching Modules
================

   ##  Name                                 Disclosure Date  Rank    Check  Description
   -  ----                                 ---------------  ----    -----  -----------
   0  auxiliary/scanner/ssh/ssh_version                     normal  No     Detect SSH Version


Interact with a module by name or index. For example info 0, use 0 or use auxiliary/scanner/ssh/ssh_version

msf6 >

ssh_version モジュールを選択する

このステップでは、見つけた ssh_version モジュールを選択し、利用可能なオプションを表示します。

正しいモジュールを特定したので、それをフレームワークのコンテキストにロードする必要があります。これは、use コマンドの後にモジュールのフルネームを指定して行います。

msfconsole プロンプトで、次のコマンドを入力します。

use auxiliary/scanner/ssh/ssh_version

コマンドを実行すると、プロンプトが変更されたことに気づくでしょう。アクティブなモジュールの名前が含まれるようになり、設定の準備ができたことを示します。新しいプロンプトは次のようになります:msf6 auxiliary(scanner/ssh/ssh_version) >

このモジュールで設定できるパラメータを確認するには、show options コマンドを使用します。

show options

このコマンドは、ssh_version モジュールのすべてのオプションのテーブルを表示します。これには、現在の設定、必須かどうか、および簡単な説明が含まれます。次のステップで設定する RHOSTSTHREADS オプションに特に注意してください。

msf6 auxiliary(scanner/ssh/ssh_version) > show options

Module options (auxiliary/scanner/ssh/ssh_version):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS                    yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT    22               yes       The target port (TCP)
   THREADS  1                yes       The number of concurrent threads (max one per host)
   TIMEOUT  30               yes       Timeout for the SSH probe

...

RHOSTS オプションをターゲットサブネットに設定する

このステップでは、スキャンのターゲットを設定します。RHOSTS オプションは、Metasploit がスキャンするリモートホストまたはホストを指定します。

この実験では、セットアップスクリプトがローカルマシンに SSH サーバーをインストールして起動したため、ローカルマシン自体をスキャンします。ローカルマシンの IP アドレスは常に 127.0.0.1 です。

モジュールオプションは、set コマンドの後にオプション名と割り当てたい値を指定して設定できます。

ターゲットをローカルマシンに設定するには、msfconsole プロンプトで次のコマンドを実行します。

set RHOSTS 127.0.0.1

Metasploit は、オプションとその新しい値を印刷して変更を確認します。

RHOSTS => 127.0.0.1

これで、スキャナーにどのマシンをターゲットにするかを指示しました。ネットワークをスキャンしていた場合は、ここに IP アドレスの範囲を指定できます (例:192.168.1.0/24)。

同時実行スレッド数の設定

このステップでは、スキャナーの同時実行スレッド数を調整します。このオプションは、同時にいくつのホストがスキャンされるかを制御します。

現在のように単一のホストをスキャンする場合、複数のスレッドから得られるメリットはそれほど大きくありませんが、プロセスを高速化するために大規模なネットワークをスキャンする際には重要な設定です。その設定方法を学ぶことは良い習慣です。

デフォルト値は 1 です。これを 10 に増やしましょう。再び set コマンドを使用します。

msfconsole プロンプトで、次のコマンドを入力します。

set THREADS 10

Metasploit は、設定が更新されたことを確認します。

THREADS => 10

これで、スキャナーは最大 10 個のスレッドを使用するように設定されました。これにより、IP アドレスの範囲をスキャンする際の速度が大幅に向上します。

モジュールを実行し、検出された SSH バージョンを確認する

このステップでは、すべてのオプションを設定した後、スキャナーモジュールを実行して出力を分析します。

run コマンド (またはそのエイリアスである exploit) は、現在ロードされているモジュールを設定済みの設定で実行します。

スキャンを開始するには、msfconsole プロンプトで run と入力して Enter キーを押すだけです。

run

モジュールは、127.0.0.1 のポート 22 に接続を試みます。アクティブな SSH サービスが見つかった場合、バージョンバナーを取得して表示します。出力は以下のようになります。

[*] 127.0.0.1:22 - Scanned 1 of 1 hosts (100%)
[+] 127.0.0.1:22 - SSH server detected: SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6
[*] Auxiliary module execution completed

[+] 記号は成功を示します。出力は、ポート 22127.0.0.1 で SSH サーバーが検出され、Ubuntu システム上の OpenSSH_8.9p1 というバージョンが報告されていることを示しています。この情報は、このバージョンに固有の脆弱性を検索するなど、ペネトレーションテストの次のステップに役立ちます。

まとめ

この実験では、Metasploit の補助スキャナーを使用して SSH バージョンの列挙を正常に実行しました。

以下の方法を学びました。

  • Metasploit Framework コンソールを起動する。
  • search コマンドを使用して特定のモジュールを検索する。
  • use コマンドを使用してモジュールを選択しロードする。
  • set コマンドを使用して RHOSTSTHREADS のようなモジュールオプションを設定する。
  • run コマンドを使用してモジュールを実行する。
  • 結果を解釈してターゲット上の SSH サーバーバージョンを特定する。

このプロセスは、サイバーセキュリティおよびペネトレーションテストの分野における情報収集と偵察の基本的なスキルです。