Metasploitプロジェクトには、オープンソースのMetasploit Frameworkをはじめ、利用可能なセキュリティツールの中でも特に優れたものが含まれています。ペネトレーションテスターもハッカーも、脆弱性の発見と悪用、リバースシェルのセットアップ、悪意のあるペイロードの開発、またはレポートの生成に利用します。
Rapid7が保守するこのツールには、Rapid7、包括的なドキュメントも用意されており、そこでは利用を始めるための基礎を学べます。
しかし、Metasploitは単なるハッキングツールではありません。ターゲットを攻撃するために使えるコマンドラインとモジュールを備えた、総合的なプラットフォームです。複数の機能やWebインターフェース、無料トライアルが提供されています。ここでは、無料のオープンソース版であるMetasploit Frameworkに焦点を当てます。
関連記事:オープンソースのペネトレーションテストツール10選
テスト環境の構築
Metasploitは別のマシンを攻撃するためのものなので、テストを実行するために別のマシンが必要です。初心者の多くは、Kali Linuxを仮想マシンで実行し、自分のマシンをターゲットにします。
便利に思えるかもしれませんが、このような構成は推奨されません。攻撃側と被害側に1台ずつ割り当てるなど、複数の仮想マシンを使う方がよいでしょう。こうすれば、さまざまなOSでトレーニングしながら、ウイルス対策ソフトやファイアウォールを安全に無効化できます。
前提条件
ここでは手軽さを優先してKali Linuxを使いますが、好みに応じてNightly Installersを使うこともできます。Metasploit Frameworkは、macOS、Windows、Linuxディストリビューションなど、主要なOSすべてで利用できます。
Kaliをインストールする準備ができたら、簡単な方法は仮想マシンを起動することです。起動したら、新しいKaliセッションに接続し、メニューでMetasploit Frameworkを検索してコンソールを起動します。別の方法として、ターミナルを開いてmsfconsoleと入力します。
一般的なルールとして、エクスプロイトやその他のソフトウェアの最新版を入手できるよう、システムを常に最新の状態に保つことを強く推奨します。そのために、Kaliのターミナルを開いてapt updateと入力します。
時間がかかることもありますが、Kaliを初めてインストールして使う場合を除き、この手順を省略しないでください。
最初のエクスプロイト
Metasploitには、あらゆる種類のエクスプロイトを収録した優れたデータベースがあります。例えば、次のコマンドを使えばsearch type:exploit platform:unixUnixシステム向けのエクスプロイトを検索できます。
ターゲットを攻撃するために利用できる可能性のあるエクスプロイトが、大量に一覧表示されます。また、use exploit/unix/local/chkrootkitなどのコマンドは、コンソールから直接実行できます。
デフォルトのペイロードがある場合、Metasploitが自動的に選択しますが、次のコマンドですべてのペイロードを表示できます:show payloads。
ペイロードを選択するには、次のコマンドを使います:set payload。例えば、set payload cmd/unix/bind_awkと入力すると、上記の最初の選択肢が選ばれます。
その後、通常はrunコマンドを実行します。ただし、ペイロードによっては、アクティブなセッションやホストなど、追加の設定が必要です。
続行に使えるすべてのオプションを一覧表示するには、ターミナルでshow optionsと入力します。さらに詳しい情報を得るには、infoと入力します。
これらのコマンドを使えば、ペイロードの現在の状態、パラメーター、生成するエクスプロイトの詳細など、必要な情報をすべて確認できます。
さらに、setgコマンドを使って一部のパラメーターをグローバル変数として設定すれば、別のエクスプロイトを使ったテスト中に同じ設定を再入力する必要がなくなります。
すべての設定が正しく完了したら、runまたはexploitと入力します。その後は通常、生成された実行ファイルを対象マシンに送信し、脆弱性を悪用する手順へと進みます。
関連記事:
Metasploitの主要な概念と機能
Metasploit Frameworkを最大限に活用するには、より高度な概念(必ずしも複雑とは限りません)について理解する必要があります。
補助モジュール
Metasploitは、エクスプロイトやペイロードに加えて、作業を容易にする事前設定済みのモジュールである補助モジュールも提供しています。
例えば、次のコマンドを実行するとuse auxiliary/scanner/ftp/easy_file_sharing_ftp 、
Easy File Sharing FTP Server 3.6に存在するディレクトリトラバーサルの脆弱性を悪用できます。また、スキャナーでは単純なEasy File Sharing FTP Server 3.6で、runコマンドを使って悪用可能な脆弱性を効率的に発見します。
さらに、補助モジュールはカテゴリー(サブフォルダー)を使って比較的整理されているため、作業プロセスの効率化にも役立ちます。
エンコーダー
エンコーダーを使うとペイロードを難読化し、検出を回避できます。例えば、use encoder/x64/xorは8バイトのキーを使用し、x64相対アドレッシングを利用します。
回避
最初のペイロードを生成したら、さらに高度な設定も利用できます。例えば、回避オプションは次のコマンドで確認できます:show evasion。
すべてのペイロードでデフォルト設定されているとは限りませんが、回避機能が利用できる場合は、ウイルス対策ソフト、エンドポイント検出・対応(EDR)ソフトウェア、ファイアウォールなど、一般的な検出メカニズムを回避するために使えます。
nops
NopsもMetasploitが提供するモジュールの一種です。次のコマンドで表示できます:use nop/tty/generic。
これらのジェネレーターは、「標準的なIDSおよびIPSのNOPスレッドシグネチャを回避するために使える、一連のランダムなバイト」を生成します。
ポストエクスプロイト
Metasploitは、不正アクセスを取得した後に、root権限の昇格、キーロガーのインストール、PowerShellスクリプトの実行など、ポストエクスプロイト用のモジュールにも役立ちます。
このようなポストエクスプロイト技術は、ペネトレーションテスト中の作業を迅速化するのに非常に役立ちます。例えば、use post/osx/capture/keylog_recorderを使うと、キーストロークやその他のキーボードイベントを記録できます。
Grep
エクスプロイトやその他のモジュールを検索する際は、grepを使うと処理を高速化し、関連する結果だけを選択できます。補助スキャナーに限らず、あらゆる種類のモジュールで役立つコマンドです。grepはsearchコマンドと組み合わせて使います。例えば、
grep scanner search ssh
Meterpreter
Meterpreterは、Metasploitで最も広く使われているペイロードの1つである高度なペイロードです。攻撃をエミュレートする開発用途でよく使われるほか、別のプロセスへの移行やターゲットマシン内部のスクリーンショット撮影を可能にする特殊な機能も備えています。
Msfvenom
Msfvenomは、2015年にmsfpayloadとmsfencodeに取って代わった、ペイロード生成とエンコードを組み合わせたツールです。構文はそれほど複雑ではなく、Kali Linuxでコマンドを入力するか、ターミナル(msfコンソールの外部)で単にmsfpcと入力して直接使えます。さらに、出力形式は1つに限られず(つまり、.exeやその他のファイル形式を生成できます)、
関連記事:脆弱性スキャナーツールのベスト13。
攻撃者が最小限の労力で実行できること
Metasploitは、ハッカー(およびハッカー)が次のことに利用できる強力なツールです:
- あらゆる種類のスキャンと列挙を実行する
- 不正アクセスを取得する(例:トークン)
- ユーザーになりすます
- 機密データを窃取する
- スクリーンショットを撮影する
- 被害者が頻繁に訪れるWebサイトのログインページをコピーし、不正なサーバーにリダイレクトする(例えば、hostsファイルを変更する)
- キーロガーをインストールする
つまり、攻撃者はMetasploit Frameworkを使えば、最小限の労力と限られた技術力で、標的マシンを完全に制御できます。
次の記事:脆弱性管理ツールのベスト。





