これは何?
最近流行りのMCP(Model Context Protocol)使うといろんな操作をAIエージェントにやってもらえるようになる。
今回は脆弱性診断等で使用されるBurp SuiteをBurp MCP Serverを使って自然言語で操作してみた。
脆弱性診断業務の一部が自動化できると嬉しいので,良いアイデアをお持ちの方がいればぜひコメントお願いします。
環境
- ホストOS: Windows 11(Ubuntuでも動作確認まではやりましたが,業務利用を見据えてWindowsをメインに記載します)
- Burp Suite Community Edition v2025.3.3
- MCP Clientト: Roo-Code
- MCP Server: Burp MCP Server
Roo-Codeで試しましたが,お得に試したい
GitHub Copilot使用者向けの設定もおまけに記載しています。
セットアップ
Burp Suiteのインストール
- 公式からインストールできる
BApp StoreからBurp MCP Serverをインストールする
ExtensionsタブからBApp Storeを選択する。
「MPC」などで検索してインストールする。
公式リポジトリをクローンしてgradleでビルドして.jarを作成する方法も可能。
割とMCP Client側でMCP Serverを起動するパターン(STDIO接続)が多く、自分は最初STDIO接続でMCP ClientとBurp MCP Serverを接続しようとしていた。
だが、Burp MCP Serverの場合はBurp側でサーバが起動されている(SSE)なのでMCP Client側で接続先を指定するだけで使用できた。
そのため、後述するMCP Clientの設定では起動コマンドを設定していない。
portswiggerのmcp-server等を見ると起動コマンドが例で書いてあったが自分はつかわなかった。
VS Code(MCP Client)の設定
- Roo-Codeをインストールする
- AnthoropicのAPIキーをセットする。参考
- mcp.jsonを記載する GitHubのissueが参考になった
{
"mcpServers": {
"burp": {
"url": "http://localhost:9876/sse",
"disabled": false,
"autoApprove": []
}
}
}
実際に試してみる
とりあえず,repeaterを使ってみる
Roo-Codeからタスクを依頼してみる。MCPを使わずに解決されると困るのでMCPを使うように明記した。
(システムプロンプトに記載してもよい)
Burp MCP Serverを使ってrepeaterにgoogle.comへアクセスする設定をいれてください。ただし,User-Agentをsigmaにして
実務での使いみちを検討
Burpの設定変更
MCPタブからEnable tools that can edit your configにチェックするとコンフィグをいじれるようになるらしい。
BurpのMCP Serverを使ってproxyのportを8080から8008に変更して
おおお!ちゃんとできた。
Scope設定の自動化
誤って余計なところにリクエストが飛ばないようにScopeを設定し,指定したFQDN以外へ通信が飛ばないようにしたりすることもあるので,数が多い時などはAIにやってもらえると嬉しいかも。
例: 「以下のurlをscopeに設定してください。urlは以下です」
正しい設定ができているかのダブルチェック
Burp MCPを使って設定確認を行ってください。
- Drop all out-of scope requestsにチェックがついているか
- proxyのportが8008か
- scopeが設定されているか
違反しているものがあれば教えて
会社によってオフィシャルでやるべき設定があるのであればBurpの設定ファイルを共通化するのでも良いが,
使っているうちに設定を変える必要がある場面もあるので,AIエージェントにダブルチェックしてもらうのは結構良いのではないだろうか。
repeaterから連続してリクエストを送る
Postmanでやれよと言われたらそれまでだが,repeaterを使って連続してリクエストを飛ばしたい。
以下はイメージ。
- ログインする
- 取得したトークンをリクエストにつけてコミット処理を実行
雑な疎通確認
これもBurpでやらなくてもいい案件な気はするが,
診断対象のurl一覧にアクセスして疎通できるかの一次切り分けをやってもらうと楽かもしれない。
以下のurlにアクセスして,アクセスできるか確かめてください。対象は以下です。一部のurlにはログイン後しかアクセスできないので,アクセスできなかった部分はログイン後に再アクセスしてみてください。
リクエストを通すのに不要なパラメータを削る
AIを使わなくても機械的にできそうとは思いつつ。
リクエストに含まれるパラメータのうち,リクエストが成功するのに不要なパラメータを削っておくとパラメータ改ざんが楽になりそう
このリクエストに含まれるパラメータを1つずつ削除してリクエストを再送してみてください。再送した結果,レスポンスが200 OKでなくなった場合にはそのパラメータを再度設定しなおしてください。
感想等
Burp MCP Serverでしかできないわけでない脆弱性診断自動化案しか現状思いついていないが、自動化のシステムを作る余力がない場合もあるだろう。
雑にMCPで自動化してみて、効果が感じられたら真面目に自動化するみたいな進め方をする上でBurp MCP ServerはいわゆるPOC的に使えると感じた。
おまけ
GitHub CopilotのMCP機能を使って同じことをやる方法を書いておく。
API代を気にせずに試したい人向けの設定を記載しておく。
-
CopilotをAgentモードにする
-
settings.jsonに以下を追加する
"mcp": { "servers": { "burp": { "type": "sse", "url": "http://127.0.0.1:9876/sse", } } },
一応動くが、Roo-Codeの方が出力はみやすい。