Burp Suite Private Collaborator Serverを立ててみた
Custom config書いてRoute 53でドメイン取ってEC2上でサーバを動かしてログを見た. そんだけ
Collaborator Serverについて
書いてあるブログはちょこちょこあるので概要はざっくりで.
- HTTPレスポンスだけで判断するには難しい問題を検知するためのツールで、外部への通信が発生する系の問題を検出できる
- サポートしているプロトコルは以下. 動作ポートは変更できるが, デフォルトを使用するのが基本的には良いはず
- 検知できる脆弱性の例は以下
- OSコマンドインジェクション、curlとかnslookupとか
- Blind SQLインジェクション
- SSRF
- RFI
- Blind XSS
- メールヘッダインジェクション
- ...
参考URLはこれ
モチベとClientについて
Collaboratorサーバってどんな感じで処理してるのか気になった. それだけ.
あとはCollaboratorサーバと連携して問題を検出できるのはProfessional or Enterpriseバージョンだけ. なので実際に試したい場合はProfessionalのライセンスを購入する必要あり(Black Fridayで安くなってたんだっけ?確認してない)
構築について
本家のHow to deployに従えばOK. DNSリクエストがどう飛んでくるかとか分かっていると構築はそんな手間取らない(手間取った).
準備したモノ、詰まったとこをまとめると、こう
準備、設定したモノ
- EC2インスタンス
- Route 53でのドメイン
- Route 53である必要はない. 一つ持っていたやつがあったので使いまわした. ここではexample.comとする
- NSレコード - burpcollaborator.example.com: ns1.example.com,
- Aレコード - ns1.example.com: 18.xxx.xxx.x
- AAAAレコードは設定してないけど困ってない. 設定した方が良いとは思う
- Collaborator config、最低限で簡単に作るなら以下の感じ、Domainは実際に使っているものからexample.comに変更している. IPアドレスは適当にマスク
{ "serverDomain": "burpcollaborator.example.com", "workerThreads" : 10, "eventCapture": { "publicAddress" : "18.xxx.xxx.x", "ssl": { "hostname" : "burpcollaborator.example.com" # Self-signedで良い場合はこう、ちゃんと運用するなら証明書ペアを設定する } }, "dns": { "interfaces" : [ { "name": "ns1", "localAddress" : "172.31.xx.xx", "publicAddress" : "18.xxx.xxx.x" } ] } "logLevel" : "DEBUG" }
Server起動
BurpSuite Professionalをダウンロードして、同じディレクトリにconfig(mycollabo.config)を置いて...
こうじゃ!
sudo java -jar burpsuite_pro.jar --collaborator-server --collaborator-config=mycollabo.config
ログはこんな感じ
ふむ、fromとquery、要は[ ]で囲われたところを見ているわけですね. で、no interaction IDs
ってのはCollaboratorの例にあるランダムな値(f294gchg2la...r9gf
とか)が入ってくるので、サーバはそこを使ってClientと会話している、と.
ということで、Collaboratorサーバを使ってあーだこーだやりたい場合はその辺を見ておけばOKってことですね.
詰まったこと
- ConfigのNS設定
- サンプルにもあるけどinterfacesは複数設定可能. サンプルに寄せてns2の設定をlocalAddressと同じ値にして起動したら、ns2の方の設定を起動するタイミングでdnsサービスのbindエラーが起きた. 当然ですね.
- というわけでNWインターフェースの数に合わせてinterfacesの項目は設定すること
- Route 53 ホストゾーンのNS設定
所感
- おかしなところで躓かなければ1時間かからずに構築できると思う. この手の検証用サーバを簡単に立てられるのは非常に嬉しい. Portswiggerには感謝
- ドメインの更新をやめた時以外にRoute 53のホストゾーンを削除してはならない(戒め)
- ぱぱーProfessionalかってー
以上