こんにちは、ぎんたです。
今回は、Metasploit Frameworkの概要、発見した脆弱性に対するコマンドの使用例と権限昇格の方法について解説していきます。
攻撃者が使うツールについて知ることはサイバー防御において必要となります。
外部に対しては決して使用せず、試行する場合は仮想環境などの自身が構築した環境内で実施ください。
Metasploit Frameworkって使ったことないけど、使い方の概要を知りたい!
利用できる脆弱性を悪用するコードの探し方を教えて欲しい!
脆弱性を悪用するコードを実行する前の事前設定のやり方が知りたい!
との要望を持っている方が対象です。
今回は、ProxyShellの脆弱性があるサーバを攻略しながら解説していきたいと思います。
スポンサーリンク
Metasploit Frameworkについて
コマンドラインから動作するオープンソース版のツールです。
このツールを使用することで、
- ターゲットのスキャン
- 脆弱性の悪用
- ブルートフォース攻撃
などを行えます。
Kali LinuxやAttackBoxに標準にインストールされており、使い方が分かればすぐに試すことができます。
今回は、TryHackMeで提供されているLookbackを攻略しながら基本的な使い方を解説します。
このコンテンツは無料で出来るので、もし興味があれば攻略してみてください。
Metasploit Frameworkを使ったLookbackの攻略
Lookbackの攻略ですが、今回はMetasploitの基本的な使い方を解説したいので、すべての攻略法の解説は省略したいと思います。
以下の箇所まで攻略が完了している状態からスタートします。
- すでに単純な認証不備・アプリケーションの脆弱性を利用してサーバに侵入し、権限の低いユーザー権限を取得している
- 侵入したサーバではExchange Serverが動作していることが分かっている。
- Exchange Serverの脆弱性を利用し、特権昇格を狙いたい。
- ユーザが使用しているメールアドレスが判明している(下記画像の最初の赤枠部で発見、後ほど脆弱性を利用したコード実行時に使用します)。
ここで、現在のサーバで動作しているExchange Serverのバージョンを確認します。
バージョンが判明したので製品名を以下のサイトから調査します。
「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(悪用できるコード)を探します。
確認したところ、ProxyShell RCEのexploitが利用できそうです。
たくさん結果が出てきたとき、どのexploitを使用すればいいの?
Rankがexcellentのexploitを利用すると良いよ。
サービスがクラッシュしたりメモリ破壊を伴わないものなので、安定して使える場合が多いよ。
SQLインジェクションやCMDの実行のようなものに割り当てられることが多いかな。
Metasploitの説明に戻ります。
use 0
と入力すると、ProxyShellのexploitを利用できます。
optionsコマンドで、必要な設定項目を確認します。
基本的にはRequiredがyesの項目を設定していくことになります。
EMAILの項目のRequiredがnoになっていますが、この脆弱性を利用するためにはEMAILの項目も入力する必要があります(最初設定しなかったため実行に失敗しました)。
攻撃対象のサーバのアドレス、攻撃側ホストのアドレスと待ち受けポート、発見したユーザのEMAILの項目をsetコマンドで設定し、optionコマンドで再度確認します。
setコマンドで各項目を設定
再度optionsコマンドで確認
設定が問題なく行われていることを確認したら、runと入力し、exploitを実行します。
exploitが成功し、System権限が取得できたことが確認できました。
スポンサーリンク
まとめ
今回は、Metasploitの基本的な使い方を脆弱性のあるサーバを攻略しながら解説しました。
- 事前に利用するサーバのバージョンや製品を確認し、利用できるexploitをsearchコマンドで探す。
- exploitで必要な項目をoptionsコマンドで確認し、setコマンドで入力する。
- runコマンドでexploitを実行し、成功の有無を確認する。
exploit成功後にMetasploitで実行できるコマンドもいくつかあるよ。
紹介する機会があれば侵入後に実行できる操作についても解説していくよ。
今回の記事が参考になれば幸いです。
以上、ぎんたでした。
サイバーセキュリティを学ぶ上で必要な攻撃と解析に関する他の記事は、以下のリンクで確認できます。
学習に関しましては、以下のセキュリティの勉強法、おすすめの学習本・動画の記事が多くの方に読まれています。
資格の記事については以下の記事がおすすめです。
ITエンジニアへの転職については以下の記事がおすすめです。
その他学習・転職関連に関しましては、以下の記事もあわせて読まれています。
ぜひご覧ください!