
Java製のBurpプラグインで、サーバーレスポンスの実際の内容に基づいてレスポンスに対してテキストクラスタリングを実行し、外れ値やグループを特定します。たとえばIntruderの実行結果からなどです。
HTTPレスポンスをクラスタリングして外れ値を発見するためのBurp Suite拡張機能。
これは私が何年も前から作りたいと考えていたプラグインです。単純に、Burp Intruderでのファジング攻撃の結果を分析する方法に多少イライラしていたからです。ファジング攻撃では通常、サーバーレスポンスの変化を探します。そしてその違いは、ステータスコード、レスポンスタイム、レスポンスサイズを見ることで探します。これらはすべて、レスポンスの内容を間接的に測る指標です。もちろん、ペンテスターとして何千ものサーバーの内容を読んでレスポンス内容の違いを探す時間はありません。しかし、それは間違いなくアルゴリズムにやらせることができます。
そこでこのプラグインの出番です。テキストクラスタリング技術を使用してレスポンスの内容を分析し、類似性に基づいてクラスタに分類します。これにより、Intruderファジング攻撃の結果を別の視点から見ることができ、異なるサーバーレスポンスを素早く特定できます。
Colonel Clusteredは、レスポンスのクラスタリングを実行するために2つの異なるアルゴリズムを提供します。デフォルトのアルゴリズムは比較的高速で、外れ値の発見に優れたオプションの詳細分析アルゴリズムがありますが、スケールしません。まあ、どちらもスケールしません。このプラグインに5万件のレスポンスを投げるのは躊躇します。高速/デフォルトのアルゴリズムは計算量がO(n^2)であるのに対し、詳細分析アルゴリズムはO(n^3)です。Intruderの結果を処理に送る際は、この点を覚えておいてください。
コンテンツ認識トークン化: 拡張機能はまず各レスポンスのContent-Typeヘッダーを検査し、最もインテリジェントなトークン化戦略を適用します:
事前グループ化: 何千ものレスポンスでも高速を維持するため、拡張機能は1回のパスで完全に同一のレスポンスをすべてグループ化します。各レスポンスのトークンセットのハッシュを計算し、同じハッシュを共有するすべてのアイテムをグループ化します。これにより、高コストなクラスタリングアルゴリズムは、はるかに小さい一意のレスポンスボディのセットに対してのみ実行すればよくなります。
デュアルクラスタリングアルゴリズム: Colonel Clusteredは2つの異なるクラスタリングアルゴリズムを提供します:
Fast Scan (デフォルト): 高性能なDBSCANベースのアルゴリズムが、複数のリクエスト/レスポンスを拡張機能に送信すると自動的に実行されます。
Deep Analysis (手動トリガー): 元の、より計算集約的な階層クラスタリングアルゴリズムは、「Deep Analysis」ボタンから利用できます。このオプションは、より詳細で潜在的に異なるクラスタリングの視点を必要とするシナリオ向けに設計されており、クラスタの結束力を向上させるためにAverage Linkageを利用します。
外れ値の統合: クラスタリング後、単一の一意のメンバーのみを含む結果グループは外れ値と見なされます。そのような外れ値はすべて、UI内の単一の便利な「Outliers」グループに統合されます。
これら2つのアルゴリズムは、レスポンスサイズがレスポンスの違いの信頼できない指標である場合でも、内容が異なるサーバーレスポンスを自動的に特定する簡単な方法を提供するはずです。
拡張機能のロード:
分析用のレスポンス送信:
Deep Analysisの実行 (オプション):
Quad-Pane UIでの結果分析:
Request/Response Pair: アイテムの元のインデックス。Status Code: HTTPレスポンスステータスコード。Length: レスポンスボディの長さ(バイト単位)。Content-Type: レスポンスのContent-Typeヘッダー。
このプロジェクトはGradleを使用しています。プラグインをビルドするにはJDKバージョン17がインストールされている必要があります。
git clone <repository-url>
cd ColonelClustered
./gradlew build
build/libs/ColonelClustered.jarに配置されます。Drew Kirkpatrick
@hoodoer
[email protected]
Blackthorne Consultingで私を見つけることができます。
このプロジェクトはUnlicenseの下でパブリックドメインに公開されています。詳細はLICENSEファイルを参照してください。