PTESへ挑戦する
はじめに
Pentest Execution Standard (PTES) は、ペネトレーションテストの実施に関する標準的なフレームワークです。この標準は、ペネトレーションテストの各フェーズについての詳細なガイダンスを提供しています。
PTESの主なフェーズ
PTESは以下の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())拡張機能のロード方法:
- Burp Suiteを開き、「Extender」タブに移動します。
- 「Extensions」セクションで「Add」をクリックします。
- 「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: 米国国立標準技術研究所が提供するペネトレーションテストガイドライン。
各フレームワークの詳細については、それぞれの公式サイトやドキュメントを参照してください。