PTESへ挑戦する

はじめに

Pentest Execution Standard (PTES) は、ペネトレーションテストの実施に関する標準的なフレームワークです。この標準は、ペネトレーションテストの各フェーズについての詳細なガイダンスを提供しています。

PTESの主なフェーズ

PTESは以下の7つのフェーズから構成されています:

  1. 事前エンゲージメント相互作用: テストの範囲と目標を定義します。
  2. 情報収集: 目標に関する情報を収集します。
  3. 脅威モデリング: 収集した情報を基に脅威を特定します。
  4. 脆弱性分析: システムの脆弱性を特定します。
  5. 攻撃: 脆弱性を利用して攻撃を行います。
  6. 後方移動: システム内部での移動とデータの収集を行います。
  7. 報告: テストの結果を報告します。

環境設定と前提条件

まず、Burp Suiteのインストールと設定に加え、他のCLIツールを準備します。OSINT活動においては、多角的な情報収集が重要です。そのため、以下のツールをインストールします。

  • Burp Suite Community/Professional
  • Nmap(ネットワーク探索およびセキュリティ監査)
  • theHarvester(電子メール、ドメイン、ユーザー名などの収集)
  • Shodan(インターネットに接続されたデバイスの検索)
  • Maltego(グラフベースのリンク分析ツール)
  • Sublist3r(サブドメインの列挙)

以下の手順で、Burp Suiteにカスタム拡張を追加します。

cd %AppData%\Local\Programs\BurpSuiteCommunity
mkdir -p user/extensions

カスタム拡張の詳細については、OWASPを参照してください。

初期情報収集

OSINTツールを使って、ターゲットに関する初期情報を収集します。

  • theHarvester:

    theHarvester -d example.com -b all
    • このコマンドで、example.comに関する電子メールアドレス、サブドメイン、IPアドレス、バナー情報などを収集します。
  • Shodan:

    shodan search http.title:"Example Domain"
    • Shodanを使用して、ターゲットのWebサーバーに関する情報を収集します。

ネットワークスキャンと解析

ネットワークスキャンを実行し、潜在的な脆弱性を特定します。

  • Nmap:
    nmap -sV -A example.com
    • これにより、ターゲットのポートスキャン、OS検出、サービスバージョンの情報を収集します。

Burp Suiteのカスタム拡張の作成

Burp Suiteでカスタム拡張を作成し、OSINT情報を自動的に収集・解析します。Pythonを使用して、Jython JARを作成します。

from burp import IBurpExtender, IContextMenuFactory
from java.util import List, ArrayList
from javax.swing import JMenuItem
import requests
 
class BurpExtender(IBurpExtender, IContextMenuFactory):
    def registerExtenderCallbacks(self, callbacks):
        self._callbacks = callbacks
        self._helpers = callbacks.getHelpers()
        callbacks.setExtensionName("OSINT Extension")
        callbacks.registerContextMenuFactory(self)
        
    def createMenuItems(self, invocation):
        menuList = ArrayList()
        menuItem = JMenuItem("Run OSINT", actionPerformed=self.run_osint)
        menuList.add(menuItem)
        return menuList
 
    def run_osint(self, event):
        url = self._callbacks.getToolName()
        response = requests.get(f"https://api.shodan.io/shodan/host/search?key=YOUR_API_KEY&query={url}")
        print(response.json())

拡張機能のロード方法:

  1. Burp Suiteを開き、「Extender」タブに移動します。
  2. 「Extensions」セクションで「Add」をクリックします。
  3. 「Extension Details」で「Extension type」を「Python」として、上記のスクリプトファイルを選択します。

結果の相関と報告

収集したデータを相関させ、分析結果を報告します。

  • Data Correlation: theHarvester、Shodan、Nmapから収集したデータを統合し、共通の脆弱性やリスクを特定します。

  • Report Generation: Burp Suiteのレポート機能を使用して、発見した脆弱性やリスクを報告書にまとめます。これには、発見された脆弱性の詳細、影響範囲、推奨対策などを含めます。

確立されたPentestingフレームワークの参照

以下に、既知のPentestingフレームワークの一部を紹介します。

  • OWASP Testing Guide: ウェブアプリケーションのセキュリティテストに関するガイドライン。
  • PTES (Penetration Testing Execution Standard): ペネトレーションテストの標準的なフレームワーク。
  • NIST SP 800-115: 米国国立標準技術研究所が提供するペネトレーションテストガイドライン。

各フレームワークの詳細については、それぞれの公式サイトやドキュメントを参照してください。

参考情報