Metasploit Console ナビゲーションの基本

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

はじめに

Metasploit の世界へようこそ!Metasploit Framework は、セキュリティ専門家が侵入テスト(ペネトレーションテスト)や脆弱性評価に使用する強力なツールです。その中核となるのが Metasploit Console、すなわちmsfconsoleです。これは、フレームワークの膨大なモジュール、エクスプロイト、ペイロードにアクセスできる対話型のコマンドラインインターフェースです。

この実験(Lab)では、msfconsoleを操作するための必須コマンドを学習します。これらの基本を習得することが、Metasploit を効果的に使用するための第一歩です。ヘルプの取得方法、ワークスペースを使用したプロジェクトの管理、モジュールの検索、詳細情報の表示、そしてコンソールの適切な終了方法について解説します。

コンソールを起動して始めましょう。

help コマンドでコアコマンドを探る

このステップでは、Metasploit Console を起動し、helpコマンドを使用して利用可能なコマンドを探索します。helpコマンドは、特定のコマンドの機能や利用可能なコマンドがわからない場合に最も役立つリソースです。

まず、Metasploit Console を起動しましょう。起動バナーをスキップしてよりクリーンなインターフェースにするために、-q (quiet) フラグを使用します。

ターミナルで以下のコマンドを実行します。

msfconsole -q

コマンドプロンプトが msf > に変わったことに気づくでしょう。これは、現在 Metasploit Console 内にいることを示しています。

次に、helpコマンドを使用して、利用可能なすべてのコマンドのリストを表示します。

help

ナビゲーションを容易にするためにカテゴリ分けされた、長いコマンドリストが表示されます。

Core Commands
=============

    Command       Description
    -------       -----------
    ?             Help menu
    banner        Display an awesome metasploit banner
    cd            Change the current working directory
    color         Toggle color output
    connect       Communicate with a host
    ...

Module Commands
===============

    Command       Description
    -------       -----------
    advanced      Displays advanced options for a module
    back          Move back from the current context
    info          Displays information about a module
    ...

また、特定のコマンドの詳細なヘルプを取得することもできます。例えば、searchコマンドについて詳しく知るには、help searchと入力します。

help search

これにより、searchコマンドの構文とオプションが表示されます。

Usage: search [options] <keywords>

Search for modules, plugins, and other framework objects.

OPTIONS:

    -h, --help             Help banner.
    -o <file>, --output <file>  Send output to a file in csv format.
    -S <string>, --search <string>  Search string for row filtering.
    -t <type>, --type <type>  The type of module to search for (exploit, payload, auxiliary, etc)
...

次のステップに進む前に、helpを使って他のコマンドも自由に探索してください。

workspace コマンドによるワークスペース管理の表示

このステップでは、ワークスペースについて学習します。ワークスペースは、Metasploit 内での作業を整理するための方法です。各ワークスペースは、特定のエンゲージメントに関するホスト、サービス、脆弱性、および収集データ(loot)の情報を格納する自己完結型の環境です。これは、異なる侵入テストプロジェクトを分離しておくために非常に役立ちます。

デフォルトでは、あなたは default ワークスペースにいます。workspace コマンドを使用して、現在利用可能なワークスペースを表示できます。

workspace

出力には利用可能なワークスペースが表示され、アスタリスク * が現在いるワークスペースを示します。

* default

プロジェクト用に新しいワークスペースを作成しましょう。名前を myproject とします。-a フラグは、新しいワークスペースを追加するために使用されます。

workspace -a myproject

Metasploit は作成を確認し、自動的に新しいワークスペースに切り替えます。

[*] Added workspace: myproject
[*] Workspace: myproject

これで、再度ワークスペースをリスト表示すると、defaultmyproject の両方が表示され、myproject がアクティブになります。

workspace
  default
* myproject

ホストのスキャンやデータ収集など、その後のすべてのアクションは、現在 myproject ワークスペース内に保存されます。

このステップでは、search コマンドを使用してモジュールを見つける方法を学びます。Metasploit Framework には何千ものモジュールが含まれており、これらは実行するアクションの中核となるコンポーネントです。これらには、エクスプロイト、auxiliary(補助)スキャナ、ペイロードなどが含まれます。search コマンドは、その作業に適したツールを見つけるために不可欠です。

キーワードに基づいてモジュールを検索できます。例えば、一般的なネットワークプロトコルである smb (Server Message Block) に関連するモジュールを検索してみましょう。

search smb

出力は、一致するモジュールの長いリストになります。結果はいくつかの列を持つテーブル形式で表示されます。

  • #: 結果のインデックス番号。
  • Name: モジュールの完全なパスと名前。
  • Disclosure Date: 脆弱性が公開された日付。
  • Rank: エクスプロイトの信頼性(low から excellent まで)。
  • Check: 脆弱性を安全にテストするための check メソッドがモジュールにあるかどうかを示します。
  • Description: モジュールが何をするかの簡単な要約。
Matching Modules
================

   ##   Name                                    Disclosure Date  Rank       Check  Description
   -   ----                                    ---------------  ----       -----  -----------
   0   auxiliary/admin/smb/impacket/secretsdump  2021-11-09       normal     No     SMB Secrets Dump
   1   auxiliary/admin/smb/psexec_ntdsgrab       2021-11-09       normal     No     PsExec NTDSGRAB
   ...
   58  exploit/windows/smb/ms17_010_eternalblue  2017-03-14       average    Yes    MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
   ...

typeplatformname などのキーワードを使用して検索を絞り込むことができます。例えば、smb に関連する windows プラットフォーム用の exploit モジュールのみを見つけるには、次のコマンドを使用できます。

search type:exploit platform:windows smb

これにより、結果のリストが大幅に絞り込まれ、必要な特定のエクスプロイトを見つけやすくなります。

info コマンドによるモジュール情報の表示

このステップでは、use コマンドと info コマンドを使用して、特定のモジュールの詳細情報を取得する方法を学びます。search で有望なモジュールを見つけた後、それが何をするのか、どのようなオプションが必要なのか、どのターゲットに影響を与えるのかを理解する必要があります。

まず、作業するモジュールを選択する必要があります。これは、use コマンドの後に、検索結果から取得したモジュールの完全な名前を指定して行います。有名な eternalblue エクスプロイトを選択してみましょう。

use exploit/windows/smb/ms17_010_eternalblue

プロンプトが変更されたことに注意してください。アクティブなモジュールの名前が含まれるようになり、そのコンテキスト内にいることを示します。

msf exploit(windows/smb/ms17_010_eternalblue) >

モジュールが選択されたので、info コマンドを使用してその詳細情報を取得できます。

info

このコマンドは、以下を含むモジュールの包括的な概要を表示します。

  • Name(名前)、Module(モジュール)、Platform(プラットフォーム)、Arch(アーキテクチャ)
  • Privileged: 特別な権限が必要かどうか。
  • License(ライセンス)および Rank(ランク)
  • Provided by: モジュールの作成者。
  • Available targets: ターゲットとなる特定のオペレーティングシステムやアプリケーション。
  • Basic options: ターゲットの IP アドレス (RHOSTS) など、設定が必要なパラメータ。
  • Payload information: 配信可能なペイロードの種類。
  • Description: 脆弱性に関する詳細な説明。
  • References: アドバイザリや記事へのリンク(CVE、BID など)。
       Name: MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
     Module: exploit/windows/smb/ms17_010_eternalblue
   Platform: Windows
       Arch: x86, x64
 Privileged: Yes
    License: Metasploit Framework License (BSD)
       Rank: Average
...

Basic options:
  Name      Current Setting  Required  Description
  ----      ---------------  --------  -----------
  RHOSTS                     yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
  RPORT     445              yes       The target port (TCP)
  SMBDomain .                no        (Optional) The Windows domain to use for authentication
...

これらの情報を確認することは、エクスプロイトを実行しようとする前の重要なステップです。

exit コマンドによるコンソール終了

最終ステップでは、Metasploit Console を適切に終了する方法を学びます。ターミナルウィンドウを閉じるか Ctrl+C を使用することもできますが、msfconsole を終了するための推奨される方法は exit コマンドを使用することです。

これにより、フレームワークが正常にシャットダウンし、実行中のジョブが停止し、現在の状態が保存されます。

終了する前に、モジュールのコンテキストからメインの msfconsole プロンプトに戻るには、back コマンドを使用できます。

back

プロンプトは標準の msf > に戻ります。

次に、コンソールから完全に終了するには、単に exit と入力します。

exit

シャットダウンメッセージが表示され、通常のシステムシェルプロンプトに戻ります。

labex:project$

これで、Metasploit Console のナビゲーションに関する基本的なツアーは終了です。

まとめ

おめでとうございます!これで、Metasploit Console のナビゲーションの基本に関するこの実験(Lab)を無事に完了しました。

この実験(Lab)では、msfconsole 内で最も基本的な操作を実行する方法を学びました。

  • コンソールを起動し、help コマンドを使用して他のコマンドを発見し、学習する方法。
  • workspace コマンドを使用して、個別の環境を作成および管理することでプロジェクトを整理する方法。
  • 強力な search コマンドとそのフィルターを使用して、あらゆるタスクに対応するモジュールを見つける方法。
  • info コマンドを使用して、モジュールの詳細、オプション、ターゲットを調査する方法。
  • exit コマンドを使用して、フレームワークを適切にシャットダウンする方法。

これらのコマンドは、今後の Metasploit でのすべての作業の基盤となります。この知識があれば、モジュールの設定や実行など、より高度なトピックを探求する準備が整いました。