BurpExtenderを作ろう

252 Views

March 06, 25

スライド概要

内部勉強会での発表資料です。

(AIによる要約)
Burp拡張はBurpSuiteの機能を拡張し、診断業務をさらに便利にするための手段です。特に、HTTPレスポンスの加工やログの取得、WebSocketの操作など、多彩な機能を持ちます。このプレゼンテーションでは、Burp拡張の仕組みとインストール方法、便利な拡張機能としてInQl、Retire.js、Copy as Request、RequestParserなどを紹介し、さらに自分で拡張を作成する方法についても解説します。プログラミング言語としてはJava、Python、Rubyが利用可能であり、それぞれの特徴に応じた開発方法も提示します。

profile-image

幸田将司 / 株式会社バラエナテック代表取締役 半身をメタル化することでパワーアップした、ガルルモンの最終形態。メタル化をしても持ち前の俊敏さは失っておらず、全身に隠されている無数の武器で敵を粉砕する。 フリーランス7年目 SecuriST / CEH(Certified Ethical Hacker)/ CND(Certified Network Defender)認定インストラクター, 情報安全確保支援士(未登録)

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

診断員は Burp拡張で 幸せになろう 2023/11/16 社内勉強会 m.kouda

2.

Who am I? 幸田将司: セキュリティ屋さん: - SecuriST(R) 認定診断士 試験委員会 - CEH(Certified Ethical Hacker)認定インストラクター - 株式会社バラエナテック 代表 - ISOG-J 日本セキュリティオペレーション事業者協議会 twitter(X): - @halkichisec Copyright ©︎ m.kouda 2023

3.

Contents 1. Burp拡張ってなぁに 2. 便利なExtender集 3. 作ってみようExtender Copyright ©︎ m.kouda 2023

4.

Burp拡張ってなぁに Copyright ©︎ m.kouda 2023

5.

Burp拡張(Burp Extender) ◼BurpSuiteの機能を拡張することができる ➢BurpSuiteにはExtender APIがあり、これを利用する ことでBurpをもっと便利にできる。 ➢HTTP Responseの出力に一手間加えたり ➢Logを取得したり ➢WebSocketのコネクションをいい感じにしたり ➢Extender用の画面を作る事もできる Copyright ©︎ [BalaenaTech Co., Ltd.] 2023

6.

Burp拡張(Burp Extender) ◼Documentをみるとどんなことができるかわかる ➢サンプル集もあるので大変嬉しい ➢ただし、API毎の親切な説明があるわけではない(重要) 使える言語は3つ Java Python Ruby Copyright ©︎ [BalaenaTech Co., Ltd.] 2023

7.

Extenderの仕組み ◼BurpにはExtender用のAPIが用意されている HttpMessage API BurpExtender (.jar file) コンパイル BurpExtender .javaで宣言 Logging API RequestResponseUtils API ...etc Copyright ©︎ [BalaenaTech Co., Ltd.] 2023

8.

Extenderの仕組み ◼BurpにはExtender用のAPIが用意されている (使用できるAPIの例) HttpMessage API BurpExtender (.jar file) Java以外は インタプリタが必要 Logging API ProxyRequestHandler API Jython (インタプリタ) Copyright ©︎ BurpExtender (.py file) [BalaenaTech Co., Ltd.] 2023

9.

Burp拡張(Burp Extender) ◼インストール方法は2種類。Extenderタブから有効にでき る。 1. BAppStoreからインストール 2. .jarファイル等を読み込む BAappStoreからインストー ルしたExtenderはBurpから 消しても bapp配下に残るため注意 Copyright ©︎ [BalaenaTech Co., Ltd.] 2023

10.

便利なBurp Extender集 Copyright ©︎ m.kouda 2023

11.

1.InQl ◼GraphQLと戦う時に便利なBurp Extender ➢3つの機能を持ち、GraphQL形式のパラメータの整形な ど非常に役に立つ 1. InQL Scanner... GraphQLのQueryを列挙してくれる 2. InQL Timmer... Historyみたいな機能 3. InQL Attacker... Intruderみたいな機能 BApp Storeからインストール可能 https://github.com/doyensec /inql Copyright ©︎ [BalaenaTech Co., Ltd.] 2023

12.

1.InQl ◼BurpSuite v2023.11.1-24839(not stable)にてBurp 本体にGraphQLを良い感じに整形してくれる機能が登 場 Copyright ©︎ [BalaenaTech Co., Ltd.] 2023

13.

2.Retire.js ◼指摘漏れを防ぐExtender ➢脆弱性のあるVersionのJavaScriptライブラリを検出し てくれる ➢マイナーなライブラリもフォローしてくれているので嬉 しい ➢CVEが付与されたライブラリを指摘する案件時に便利 BApp Storeからインストール可能 https://github.com/PortSwigger/retire-js Copyright ©︎ [BalaenaTech Co., Ltd.] 2023

14.

3.Copy as Requst ◼RequestからAPIを叩くソースコードを発行してくれ る。Python、Nodejs、PowerShellが対応 ➢APIの検査時のリクエスト再現時に • Burpから生成するとCurlしか対応がない ➢Burpだけだと難しい処理をするのに便利 • API宛にファイルを順に送信したり、 • Responseが200 OKの時だけ追加の処理をする...等 BApp Storeからインストール可能 https://github.com/portswigger/copy-as-powershell-requests Copyright ©︎ [BalaenaTech Co., Ltd.] 2023

15.

4.RequestParser ◼HTTP Requestを独自のフォーマットで抽出してクリップ ボートに貼り付けてくれる。文字コードの変換が行える ➢例えば、{method}:{url}のようなフォーマットで診断詳細 を作りたいとき、フォーマットを作っておける ➢顧客毎に要求される媒体が違う場合に活躍する ➢Shift-JIS/EUCで扱われたパラメータを変換可能 https://github.com/halkichi0308/request-parser Copyright ©︎ [BalaenaTech Co., Ltd.] 2023

16.

作ってみようExtender Copyright ©︎ m.kouda 2023

17.

Extenderの仕組み ◼BurpにはExtender用のAPIが用意されている (使用できるAPIの例) HttpMessage API BurpExtender (.jar file) Java以外は インタプリタが必要 Logging API ProxyRequestHandler API Jython (インタプリタ) Copyright ©︎ BurpExtender (.py file) [BalaenaTech Co., Ltd.] 2023

18.

Extenderの仕組み ◼BurpにはExtender用のAPIが用意されている HttpMessage API BurpExtender (.jar file) Java以外は インタプリタが必要 Logging API ProxyRequestHandler API Jython (インタプリタ) Copyright ©︎ BurpExtender (.py file) [BalaenaTech Co., Ltd.] 2023

19.

1.事前準備 ◼Jythonのダウンロード ➢.jarのPythonインタプリタです。 ➢https://www.jython.org/download Copyright ©︎ [BalaenaTech Co., Ltd.] 2023

20.

事前準備 ◼ダウンロードしたJython(.jar)をBurp環境へ設定 ◼あとは.pyファイルをBurpへインストールするだけ Copyright ©︎ [BalaenaTech Co., Ltd.] 2023

21.

HelloWorld ◼まずはHelloWorld https://github.com/PortSwigger/example-helloworld/blob/master/python/HelloWorld.py registerExtenderCallbacks という名前で宣言すると Extentionで読み込まれる stdout: 標準出力へ Copyright ©︎ [BalaenaTech Co., Ltd.] 2023

22.

BurpExtrenderのAPI ◼API Documents https://portswigger.net/burp/extender/api/ ➢ただし、PythonとRuby向けのリファレンスがないため、 戻り値の型はエスパーが必要な時もある...? ➢非推奨ステータスがないため、ある日唐突に DeprecatedになるAPIの検知が苦しい Copyright ©︎ [BalaenaTech Co., Ltd.] 2023

23.

BurpExtrenderのAPI ◼Javaの場合は少し開発が楽になる。 ➢メリット1: mvnのプラグインを使うとIDEでインテリ センスが使える net.portswigger.burp.extender このリポジトリを pom.xmlに加えれ ばOK https://mvnrepository.com/artifact/net.portswigger. burp.extender/burp-extender-api Copyright ©︎ [BalaenaTech Co., Ltd.] 2023

24.

BurpExtrenderのAPI ◼Javaの場合は少し開発が楽になる。 ➢メリット2:NetBeansでGUIがぽちぽち作れる(重要) 思う存分 Javaのグラフィカルコ ンポーネントSwingの 修行ができてしまう Copyright ©︎ [BalaenaTech Co., Ltd.] 2023

25.

BurpExtrenderのデバッグ ◼Pythonの場合も少し開発が楽になる。(javaは面倒) ➢デバッグが容易 1. burpをCUIから起動 java –jar burpsuite.jar 2. ブレークポイントにデバッグ関数を仕込む import pdb; pdb.set_trace() 3. ターミナルの出力をsystem consoleに向けるだけ Copyright ©︎ [BalaenaTech Co., Ltd.] 2023

26.

まとめ ◼BurpExtenderはとても便利 ➢これあると良いな~ というものは誰かが作っている ◼診断効率を上げよう ◼なければ作ればいい ➢開発環境が少し苦行 • JAVAはGUI作成が容易 • Pythonはデバッグが容易、GUI作成が少し大変 Copyright ©︎ [BalaenaTech Co., Ltd.] 2023