今回は実際に脆弱性を攻撃してみます。

ところで、「バグ」と「脆弱性」の違いは何でしょうか?一般論として、「バグ」と「脆弱性」は以下のように定義できます。

  • 問題が計画されたシナリオを実行しないこと、それは「バグ」です。
  • 問題が計画外のシナリオを実行できること、それは「脆弱性」です。

脆弱性は悪用されることでビジネスを停止させたり金銭や機密情報を窃取されたりする可能性があります。一方、バグの例として「ストリートファイターII」のキャンセル技があります。

キャンセルが発生するメカニズムは、通常技に対する必殺技の優先度が要因です。技の出始めからヒットまでの時間が短い通常技は、必殺技が成立する前に技がヒットしても必殺技となり、その結果、キャンセル技(コンボ)が誕生しました。そして驚くべきことに27年経った現在、ストリートファイターIIに新たなコンボ(バグ)が見つかりました。試してみたいですね。ちなみに、筆者は当時「明大前ダルシム」として明大前で無双でした。

さて、本連載もついに第4回目を迎えました。読者の皆様もツールの使い方を覚えてくると実際に攻撃してみたくなっているのではないでしょうか。当然ですが、リアル環境を攻撃すると犯罪になりますので、公開しているサイトを利用します。

脆弱なイメージを公開しているサイト

Hack The Boxは、脆弱なマシンを合法的にハッキングできるCTFタイプのオンライン侵入テストプラットフォームです。また、ステガノグラフィーなどのオフラインの課題をハッキングするオプションもあります。Hack The Boxにはプロのペネトレーションテスター、セキュリティアナリスト、そのほかのハッカー、学生の巨大なコミュニティがあります。

  • ホワイトハットハッカーになろう! 第4回

https://www.hackthebox.eu/にアクセスします。個人向けなので「Individuals」をクリックします。

  • ホワイトハットハッカーになろう! 第4回

[Join]をクリックすると、招待コード (Invitation Code) の入力を求められます。しかし、招待コードは持っていません。ではメールでサインアップするのでしょうか? 友達に招待してもらう?どちらも間違いです。

  • ホワイトハットハッカーになろう! 第4回
  • ホワイトハットハッカーになろう! 第4回

とりあえずソースコードチェックです。Firefoxの場合、右クリックして「要素を調査」をクリックします。Chromeでは右クリックして「検証」です。

  • ホワイトハットハッカーになろう! 第4回

じーっとソースコードを見ます。必ずなにかヒントがあるはずなので、見逃さないようにしましょう。観察力はハッカーにとって不可欠な資質のひとつです。招待コードを自力で入手したら、晴れてジョインできます。

そのほか、オンライン系に関してはNoriaki Hayashi氏が「【ハッキングに挑戦】 脆弱性が残された仮想イメージ公開プラットフォーム(VulnHub)で練習をする」でとても分かり易くまとめています。こちらもぜひ参照してください。

次に、ローカルにラボを作ります。ターゲットとなる脆弱なマシンを準備する最も簡単な方法は、Metasploitable 2を使用することです。Metasploitable2は、一般的な脆弱性をテストするために設計された、意図的に脆弱なUbuntu Linuxです。この仮想マシンはVirtualBox、およびそのほかの一般的な仮想化プラットフォームで動作します。

Metasploitable2はここからダウンロードできます。

  • https://information.rapid7.com/metasploitable-download.html
  • https://sourceforge.net/projects/metasploitable/

準備ができたらMetasploitable2を起動します。

  • ホワイトハットハッカーになろう! 第4回

参考ですがMetasploitable2にどのぐらい脆弱性があるのか、当社の脆弱性診断・管理ツール「Radar」でプラットフォーム診断をした結果が下図です。276の脆弱性がありました(認証スキャンだともっと多いかもしれません)。

  • ホワイトハットハッカーになろう! 第4回

では、以下の手順に沿って実際にハッキングをしてみましょう。

  • ステップ1 「偵察」:ハッキングの最初のステップです。フットプリントおよび情報収集フェーズとも呼ばれます。ターゲットの識別、ターゲットのIPアドレス範囲、ネットワーク、DNSレコードなどの検索が含まれる場合があります。ターゲットが人の場合は、検索エンジンやSNSを使用して、会社、役職、電子メールを特定します。

  • ステップ2 「スキャン」 :ポートスキャナー、脆弱性スキャナーなどのツールを使用してターゲットをスキャンして、動いているサービスや脆弱性の有無を確認します。ネットワーク、ルーター、ファイアウォールおよびホスト情報などからネットワークダイアグラムを作成します。

  • ステップ3 「アクセスの取得」:このフェーズでは、「偵察」および「スキャン」で収集されたデータを使用して、ターゲットのネットワークの設計図を設計します。

  • ステップ4 「アクセスの維持」 :ターゲットに気づかれないように、バックグラウンドで接続を維持します。これは、トロイの木馬、ルートキット、またはそのほかの悪意のあるファイルを使用して実行できます。目的を達成するまで、ターゲットへのアクセスを維持することです。

  • ステップ5 「クリア (証拠隠滅) 」 :最終段階は、侵入したことを隠すための証拠隠滅です。各種ログの削除やファイルの改ざんなどを行います。

Metasploit Frameworkにはさまざまなエクスプロイトがありますので実際に攻撃してみましょう。脆弱性とエクスプロイトがあれば誰でも簡単にターゲットを乗っ取ることができることがわかると思います。裏を返せば、ホワイトハットハッカーの仕事とは、「攻撃面 (アタック・サーフェス) の削減」と呼ばれる戦略で、脆弱性に対してさまざまな予防措置またはアクションを実行することにより、組織のデバイスの弱点を最小限に抑えることだと言えます。

次回は、ホワイトハットハッカーが発見した脆弱性の具体例について解説します。