Metasploit モジュールタイプの理解

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

はじめに

Metasploit Framework は、ペネトレーションテストやセキュリティリサーチに使用される強力なオープンソースツールです。特定のタスクを実行する交換可能なコードの断片であるモジュールの概念を中心に構築されています。Metasploit を効果的に使用するには、さまざまな種類のモジュールを理解することが基本となります。

この実験 (lab) では、Metasploit 内の主要なモジュールタイプを探求します。

  • Exploits: システムの脆弱性を悪用するコードです。
  • Auxiliary: 直接的なエクスプロイトではない、スキャン、ファジング、その他のアクションのためのモジュールです。
  • Post-Exploitation: ターゲットシステムへのアクセスを確立した後に使用されるモジュールです。
  • Payloads: エクスプロイトが成功した後、ターゲットシステム上で実行されるコードです。

Metasploit コンソール (msfconsole) を使用して、これらのモジュールをリストアップし、識別する方法を学びます。

利用可能なエクスプロイトモジュールの一覧表示

このステップでは、Metasploit Framework で利用可能なすべて のエクスプロイトモジュールを一覧表示する方法を学びます。エクスプロイトモジュールは、システム、サービス、またはアプリケーションの特定の欠陥や脆弱性を悪用して、不正アクセスを可能にするように設計されています。

まず、Metasploit Framework コンソールを開始する必要があります。よりクリーンなインターフェースのために、起動バナーを抑制する -q フラグを使用します。コンソールに入ったら、show exploits コマンドを使用できます。

ターミナルを開き、次のコマンドを実行して msfconsole を起動します。

msfconsole -q

msfconsole プロンプト (msf6 >) が表示されたら、次のコマンドを入力してすべて のエクスプロイトモジュールを一覧表示します。

show exploits

開示日、ランク、簡単な説明とともに、利用可能なエクスプロイトの長いリストが表示されます。ランクはエクスプロイトの信頼性を示します。

msf6 > show exploits

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

   ##   Name                                 Disclosure Date  Rank       Check  Description
   -   ----                                 ---------------  ----       -----  -----------
   0   exploit/aix/local/ibstat_exec        2009-07-27       excellent  No     AIX ibstat Command Execution
   1   exploit/aix/local/invscout_priv_esc  2012-03-30       excellent  Yes    AIX invscout Privilege Escalation
   2   exploit/aix/rpc_catd                 1995-01-01       great      No     AIX CDE ToolTalk rpc.catd Command Execution
...
   2300 exploit/windows/smb/ms17_010_psexec  2017-03-14       excellent  Yes    MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution
...

リストを確認した後、exit と入力して Metasploit コンソールを終了できます。

exit

利用可能な補助モジュールの一覧表示

このステップでは、補助モジュールを一覧表示します。エクスプロイトとは異なり、補助モジュールはシステムへのアクセスを直接獲得するものではありません。代わりに、開いているポートのスキャン、サービスの特定、ファジング、サービス拒否攻撃、情報収集など、幅広いタスクに使用されます。

前のステップと同様に、Metasploit コンソールを開始し、show コマンドを使用します。

ターミナルから msfconsole を再度起動します。

msfconsole -q

msf6 > プロンプトで、show auxiliary コマンドを使用して、利用可能なすべての補助モジュールを表示します。

show auxiliary

出力には、偵察やその他の非エクスプロイト活動に使用されるモジュールが包括的に一覧表示されます。

msf6 > show auxiliary

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

   ##   Name                                                 Disclosure Date  Rank     Check  Description
   -   ----                                                 ---------------  ----     -----  -----------
   0   auxiliary/admin/2wire/xslt_password_reset                             normal   No     2Wire Cross-Site Scripting and Password Reset
   1   auxiliary/admin/appletv/appletv_display_image                         normal   No     AppleTV Display Image
...
   450 auxiliary/scanner/http/http_login                                     normal   No     HTTP Login Utility
   451 auxiliary/scanner/http/http_put                                       normal   Yes    HTTP PUT File Upload Utility
...

完了したら、コンソールを終了します。

exit

利用可能なポストエクスプロイトモジュールの一覧表示

このステップでは、ポストエクスプロイトモジュールを探索します。これらのモジュールは、ターゲットシステムを正常に侵害した に使用されます。その目的は、アクセスを維持し、機密情報を収集し、権限を昇格させ、ネットワーク内の他のシステムにピボットするのに役立つことです。

これらのモジュールを一覧表示するプロセスは、前のステップと同様です。

Metasploit コンソールを起動します。

msfconsole -q

プロンプトで show post と入力して、すべてのポストエクスプロイトモジュールを一覧表示します。

show post

ターゲットオペレーティングシステム(例:Windows、Linux、OSX)および実行する機能(例:gather、manage、escalate)別に分類されたモジュールの一覧が表示されます。

msf6 > show post

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

   ##   Name                                                 Disclosure Date  Rank    Check  Description
   -   ----                                                 ---------------  ----    -----  -----------
   0   post/android/capture/screen                                           normal  No     Android Screen Capture
   1   post/android/gather/contacts                                          normal  No     Android Gather Contacts
...
   250 post/linux/gather/enum_configs                                        normal  No     Linux Gather Configurations
   251 post/linux/gather/enum_protections                                    normal  No     Linux Gather Protection Mechanisms
...
   400 post/windows/gather/credentials/total_commander                       normal  No     Windows Gather Total Commander FTP Passwords
...

一覧の探索が終了したら、コンソールを終了することを忘れないでください。

exit

利用可能なペイロードモジュールの一覧表示

このステップでは、利用可能なペイロードモジュールを一覧表示します。ペイロードとは、エクスプロイトがターゲットシステムに配信するコードのことです。エクスプロイトがシステムを正常に侵害すると、ペイロードが実行され、攻撃者に制御が与えられます。ペイロードは、単純なコマンドシェルから、被害者マシンに対する広範な制御を提供する高度な Meterpreter まで多岐にわたります。

msfconsole を使用して一覧表示してみましょう。

Metasploit コンソールを開始します。

msfconsole -q

msf6 > プロンプトで、show payloads コマンドを使用します。

show payloads

出力には、確立する接続の種類(例:リバースシェル、バインドシェル)やターゲットアーキテクチャによって分類された、さまざまなペイロードが表示されます。

msf6 > show payloads

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

   ##   Name                                   Disclosure Date  Rank    Check  Description
   -   ----                                   ---------------  ----    -----  -----------
   0   payload/aix/ppc/shell_bind_tcp                          normal  No     AIX PowerPC Command Shell, Bind TCP Inline
   1   payload/aix/ppc/shell_find_port                         normal  No     AIX PowerPC Command Shell, Find Port Inline
...
   500 payload/linux/x86/meterpreter/reverse_tcp               normal  No     Linux Meterpreter, Reverse TCP Stager
...
   1000 payload/windows/x64/meterpreter/reverse_tcp             normal  No     Windows Meterpreter (Reflective Injection), Reverse TCP Stager (x64)
...

最後に、コンソールを終了します。

exit

エクスプロイトとペイロードの違いを理解する

最終ステップでは、エクスプロイトとペイロードの重要な違いについての理解を深めます。これらは連携して機能しますが、それぞれ異なる目的を持っています。

  • エクスプロイト (Exploit): これは「配送手段」です。その唯一の役割は、脆弱性を悪用してペイロードをターゲットシステムに送り込むことです。ドアの鍵を開けるものと考えてください。
  • ペイロード (Payload): これは「積荷」です。エクスプロイトが成功した 後に 実行されるコードです。侵害されたシステムで何ができるかを定義します。ドアの鍵を開けて中に入った後に何をするか、と考えてください。

エクスプロイトはペイロードなしでは機能せず、ペイロードはエクスプロイトなしでは配信されません。

理解を深めるために、プロジェクトディレクトリに difference.txt という名前の簡単なテキストファイルを作成し、この概念を要約してください。

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

echo "Exploit: Gains access. Payload: Runs after access." > /home/labex/project/difference.txt

cat コマンドでファイルが正しく作成されたことを確認できます。

cat /home/labex/project/difference.txt

以下の出力が表示されるはずです。

Exploit: Gains access. Payload: Runs after access.

この簡単な演習は、これら 2 つの基本的な Metasploit コンポーネント間のコアな関係を強化するのに役立ちます。

まとめ

この実験を完了した皆さん、おめでとうございます!Metasploit Framework の基本的なモジュールタイプをすべて探索しました。

以下のことを学びました。

  • エクスプロイトモジュール (Exploit modules): 脆弱性を悪用して初期アクセスを獲得するために使用されます。
  • 補助モジュール (Auxiliary modules): スキャン、偵察、その他のエクスプロイト以外の操作に使用されます。
  • ポストエクスプロイトモジュール (Post-exploitation modules): システムが侵害された後に実行されます。
  • ペイロードモジュール (Payload modules): ターゲット上で実行される、エクスプロイトによって配信されるコードです。

最も重要なことは、エクスプロイト(侵入方法)とペイロード(侵入後に実行されるコード)の重要な違いを理解したことです。この基礎知識は、Metasploit を使用して効果的なペネトレーションテストを実行するために不可欠です。