Metasploit の概要と使い方【脆弱性検査ツールの紹介】

ハッカー
※当サイトはプロモーションが含まれています

こんにちは、ぎんたです。

今回は、Metasploit Frameworkの概要、発見した脆弱性に対するコマンドの使用例と権限昇格の方法について解説していきます

攻撃者が使うツールについて知ることはサイバー防御において必要となります。

外部に対しては決して使用せず、試行する場合は仮想環境などの自身が構築した環境内で実施ください。

Metasploit Frameworkって使ったことないけど、使い方の概要を知りたい!

利用できる脆弱性を悪用するコードの探し方を教えて欲しい!

脆弱性を悪用するコードを実行する前の事前設定のやり方が知りたい!

との要望を持っている方が対象です。

今回は、ProxyShellの脆弱性があるサーバを攻略しながら解説していきたいと思います。

目次

Metasploit Frameworkについて

コマンドラインから動作するオープンソース版のツールです。

このツールを使用することで、

  • ターゲットのスキャン
  • 脆弱性の悪用
  • ブルートフォース攻撃

などを行えます。

Kali LinuxやAttackBoxに標準にインストールされており、使い方が分かればすぐに試すことができます。

今回は、TryHackMeで提供されているLookbackを攻略しながら基本的な使い方を解説します。

このコンテンツは無料で出来るので、もし興味があれば攻略してみてください。

Lookbackのコンテンツサイト

Metasploit Frameworkを使ったLookbackの攻略

Lookbackの攻略ですが、今回はMetasploitの基本的な使い方を解説したいので、すべての攻略法の解説は省略したいと思います。

以下の箇所まで攻略が完了している状態からスタートします。

  • すでに単純な認証不備・アプリケーションの脆弱性を利用してサーバに侵入し、権限の低いユーザー権限を取得している
  • 侵入したサーバではExchange Serverが動作していることが分かっている。
  • Exchange Serverの脆弱性を利用し、特権昇格を狙いたい。
  • ユーザが使用しているメールアドレスが判明している(下記画像の最初の赤枠部で発見、後ほど脆弱性を利用したコード実行時に使用します)。

ここで、現在のサーバで動作しているExchange Serverのバージョンを確認します。

exchangeのバージョン確認コマンド

バージョンが判明したので製品名を以下のサイトから調査します。

Exchange Server build numbers and release dates

調査したところ、Exchange Server 2019 CU9であることが分かりました。

さて、この製品に対応する脆弱性がないか以下のサイトを確認します。

Microsoft Exchange Server Remote Code Execution Vulnerability

内容を確認すると、CVE-2021-34473の脆弱性があることが分かりました。

では、Metasploitを使用しましょう。

「msfconsole」と攻撃側端末のAttackBoxのターミナルで入力し、Metasploitを起動します。

起動したら、

search <検索ワード>

と入力し、使用できるexploit(悪用できるコード)を探します。

metasploitでsearchコマンド実行

確認したところ、ProxyShell RCEのexploitが利用できそうです。

こころ

たくさん結果が出てきたとき、どのexploitを使用すればいいの?

ぎんた

Rankがexcellentのexploitを利用すると良いよ。
サービスがクラッシュしたりメモリ破壊を伴わないものなので、安定して使える場合が多いよ。
SQLインジェクションやCMDの実行のようなものに割り当てられることが多いかな。

CVE-2021-34473について

Explicit Logon機能の処理に任意のバックエンドの URL へアクセスされる問題を利用する脆弱性です。

クライアントから送られたHTTPリクエストをフロントエンドからバックエンドのサービスへ転送する際、Exchange Serverのチェックが不充分であるため、悪意のあるコマンドをリモートから実行される恐れがある脆弱性です。

バックエンドサービスへのアクセスはSYSTEMユーザで行われるため、成功すれば権限昇格が可能となります。

詳しい説明は、「SIDfmブログ」に記載されています。

Metasploitの説明に戻ります。

use 0

と入力すると、ProxyShellのexploitを利用できます。

useコマンドで使用した「0」はexploitの検索(search CVE-2021-34473 )で出てきた結果の先頭の番号です。

optionsコマンドで、必要な設定項目を確認します。

metasploitでoptionsコマンド実行

基本的にはRequiredがyesの項目を設定していくことになります。

EMAILの項目のRequiredがnoになっていますが、この脆弱性を利用するためにはEMAILの項目も入力する必要があります(最初設定しなかったため実行に失敗しました)。

攻撃対象のサーバのアドレス、攻撃側ホストのアドレスと待ち受けポート、発見したユーザのEMAILの項目をsetコマンドで設定し、optionコマンドで再度確認します。

setコマンドで各項目を設定

metasploitでsetコマンド実行

再度optionsコマンドで確認

metasploitで再度optionsコマンド実行

設定が問題なく行われていることを確認したら、runと入力し、exploitを実行します。

metasploitでrunコマンド実行

exploitが成功し、System権限が取得できたことが確認できました。

まとめ

今回は、Metasploitの基本的な使い方を脆弱性のあるサーバを攻略しながら解説しました。

振り返り
  • 事前に利用するサーバのバージョンや製品を確認し、利用できるexploitをsearchコマンドで探す。
  • exploitで必要な項目をoptionsコマンドで確認し、setコマンドで入力する。
  • runコマンドでexploitを実行し、成功の有無を確認する。
ぎんた

exploit成功後にMetasploitで実行できるコマンドもいくつかあるよ。
紹介する機会があれば侵入後に実行できる操作についても解説していくよ。

今回の記事が参考になれば幸いです。

以上、ぎんたでした。

サイバーセキュリティを学ぶ上で必要な攻撃と解析に関する他の記事は、以下のリンクで確認できます。

学習に関しましては、以下のセキュリティの勉強法、おすすめの学習本・動画の記事が多くの方に読まれています。

資格の記事については以下の記事がおすすめです。

ITエンジニアへの転職については以下の記事がおすすめです。

その他学習・転職関連に関しましては、以下の記事もあわせて読まれています。

ぜひご覧ください!

よかったらシェアしてね!
目次