はじめに
Metasploit Framework は、セキュリティ専門家がペネトレーションテスト、エクスプロイト開発、脆弱性リサーチに使用する強力なオープンソースツールです。その主要なインターフェースは Metasploit Console、または msfconsole と呼ばれるコマンドラインインターフェースであり、フレームワークのすべての機能に効率的にアクセスできます。
この実験(Lab)では、msfconsole の起動と操作に関する基本的かつ不可欠なスキルを習得します。必要なバックグラウンドサービスの起動、コンソールの起動、インターフェースの探索、ヘルプシステムの利用、そして安全な終了方法について説明します。これらの基本をマスターすることは、セキュリティ評価のために Metasploit を効果的に使用するための最初のステップです。
必要な PostgreSQL サービスを起動する
Metasploit を起動する前に、PostgreSQL データベースサービスを起動するのがベストプラクティスです。Metasploit はこのデータベースを使用して、プロジェクト、ホスト、発見された脆弱性、収集された証拠(ルート)に関する情報を保存します。msfconsole はデータベースなしでも実行できますが、データベースに接続することで、その強力なデータ管理機能の多くが有効になります。
このステップでは、PostgreSQL サービスを起動し、正しく実行されていることを確認します。この環境では systemctl がサポートされていないため、service コマンドを使用します。
まず、ターミナルを開き、以下のコマンドを使用して PostgreSQL サービスを起動します。システムサービスの管理には管理者権限が必要なため、sudo が必要になります。
sudo service postgresql start
サービスが起動していることを示す出力が表示されるはずです。
* Starting PostgreSQL 14 database server [ OK ]
次に、サービスが正常に起動したことを確認するために、そのステータスを確認できます。
sudo service postgresql status
正常に起動した場合、サービスがオンラインであることが表示されます。
14/main (port 5432): online
データベースが実行されたので、Metasploit コンソールを起動する準備ができました。
msfconsole コマンドを使用して Metasploit コンソールを起動する
データベースサービスが実行されているので、Metasploit のメインインターフェースである msfconsole を起動できます。このコマンドはフレームワークを初期化し、すべてのモジュール(エクスプロイト、ペイロード、補助、など)をロードし、データベースに接続します。
このステップでは、ターミナルから msfconsole コマンドを実行します。初回起動時には、環境設定のため数分かかる場合があります。
ターミナルに以下のコマンドを入力して Enter キーを押してください。
msfconsole
短いロード時間の後、ランダムに選択されたウェルカムバナー(ASCII アート)と msfconsole コマンドプロンプトが表示されます。プロンプトは通常 msf6 > のようになり、6 は Metasploit Framework のバージョンを示します。
`s`
`h`
`o`
`y`
`s`
`s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s`
`o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o`
`y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y`
`s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s`
`o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o`
`y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y`
`s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s`
`o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o`
`y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y`
`s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s`
`o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o`
`y` `y` `y` `y` `y` `y` `y` `y` `y` `y`
`s` `s` `s` `s` `s` `s` `s` `s` `s`
`o` `o` `o` `o` `o` `o` `o` `o`
`y` `y` `y` `y` `y` `y` `y`
`s` `s` `s` `s` `s` `s`
`o` `o` `o` `o` `o`
`y` `y` `y` `y`
`s` `s` `s`
`o` `o`
`y`
=[ metasploit v6.x.x-dev-xxxxxxxx ]
+ -- --=[ 23xx exploits - 12xx auxiliary - 4xx post ]
+ -- --=[ 14xx payloads - 4x encoders - 1x nops ]
+ -- --=[ 9 evasion ]
Metasploit tip: View advanced options for a module by using
advanced
msf6 >
これで Metasploit コンソール内に入り、コマンドの使用を開始できます。
msfconsole ウェルカムバナーとバージョンを確認する
msfconsole 内に入ったので、表示されている情報を確認してみましょう。ウェルカムバナーは、クリエイティブな ASCII アートを表示するだけでなく、フレームワークの機能の概要を素早く提供します。利用可能なエクスプロイト、補助モジュール、ペイロードなどの数を示しています。
バナーには Metasploit のバージョンも表示されます。しかし、コンソールで作業中にいつでもバージョンを確認したい場合は、version コマンドを使用できます。
msf6 > プロンプトで version コマンドを入力して Enter キーを押してください。
version
出力には、現在実行中の Metasploit Framework と Console ライブラリの具体的なバージョンが表示されます。
msf6 > version
Framework: 6.x.x-dev-xxxxxxxx
Console : 6.x.x-dev-xxxxxxxx
このコマンドは、インストールの確認や、特定のタスクまたはチュートリアルで必要とされる特定のバージョンを実行していることを確認するのに役立ちます。
help コマンドを使用して利用可能なコマンドを一覧表示する
msfconsole には多数のコマンドがあり、すべてを記憶するのは不可能です。組み込みの help コマンドは、コンソールを操作するための最も価値のあるツールです。これは、機能別にグループ化された、利用可能なすべてのコマンドの包括的なリストを提供します。
このステップでは、help コマンドを使用して利用可能なオプションを調べます。
msf6 > プロンプトで help と入力して Enter キーを押してください。
help
コンソールには長いコマンドリストが表示されます。以下は、表示される出力の抜粋例です。
msf6 > help
Core Commands
=============
Command Description
------- -----------
? Help menu
banner Display an awesome metasploit banner
cd Change the current working directory
color Toggle color
connect Communicate with a host
exit Exit the console
...
Module Commands
===============
Command Description
------- -----------
advanced Displays advanced options for a module
back Move back from the current context
info Displays information about a module
load Load a framework plugin
...
リストをスクロールして、利用可能なさまざまな種類のコマンドの感触をつかんでください。コマンド名に続けて help と入力することで、特定のコマンドのヘルプを取得することもできます。たとえば、help search は search コマンドの使用方法に関する詳細情報を提供します。
exit コマンドを使用して msfconsole を終了する
Metasploit Framework での作業が終了したら、コンソールを適切に終了することが重要です。これにより、実行中のジョブがクリーンに終了し、標準のコマンドラインシェルに戻ることができます。
msfconsole を終了するためのコマンドはシンプルで直感的です。
msf6 > プロンプトで exit と入力して Enter キーを押してください。
exit
コンソールは簡単なシャットダウンシーケンスを実行し、その後 ~/project ディレクトリの通常のターミナルプロンプトに戻ります。
msf6 > exit
labex@instance:~/project$
これで、Metasploit コンソールを正常に起動、操作、および終了しました。
まとめ
おめでとうございます!この実験では、Metasploit Framework を使用するための基本的な最初のステップを学びました。
以下のことを正常に実行しました。
- Metasploit でのデータ管理に不可欠な PostgreSQL データベースサービスを開始しました。
msfconsoleインターフェースを起動しました。- ウェルカムバナーを確認し、
versionコマンドを使用しました。 helpコマンドを使用して、利用可能な機能を発見しました。exitコマンドを使用してコンソールをクリーンに終了しました。
これらの基本的なスキルは、今後 Metasploit で行うすべての作業の基礎となります。これで、モジュールの検索、エクスプロイトの設定、攻撃の開始などのより高度なトピックに進む準備ができました。


