前回のブログで Burp Extender「ISTE」の概要と使用にあたって必要な事前準備の進め方を紹介しました。
今回のブログは実践編です。ISTEは以下の機能により診断を効率化してくれます。
- 権限チェックを効率化
- 最速で権限チェックが終わらせることができる
- アカウントがいくつあっても誤差の範囲
- リクエストごとの進捗管理を効率化
- こっちは自動スキャンも手動も終わってて、こっちは自動スキャンだけ終わってて、えっとこっちは・・・どうだっけ?がなくなる
- 管理が圧倒的に楽になる
- メモ機能で診断を効率化
- リピータの送信履歴をメモ付きで一覧化
- これ送ったんだっけ?なんで送ったんだっけ?がなくなる
どうやってこれらの機能を使えるのか、順番に解説していきます!
前回のブログをまだ読んでいない、という方は是非読んでみてください。
①権限チェックを効率化 ~実践編~
では、さっそくやっていきましょう!
まず、Burp の ISTE タブに移動します。権限チェックしたいリクエストを選択し、その下のタブで Repeater を選択します。
図2のように、プルダウンリストの中から Accounts で設定した認証情報を選択します。Account 画面で設定したコメントが表示されるので、ユーザごとの権限についてコメントを入れておけば、どのIDがどの権限を持っているのかぱっと確認できます。
最初はユーザー1( example@example.com ) のアカウントを使用してリクエストを送信してみましょう。プルダウンリストの中からユーザー1を選択した後、「 Send 」ボタンを押下します。すると、準備編で設定したログインマクロを実行したうえで、このリクエストを送信してくれます。
図4のように、リクエスト送信の履歴が一覧として残ります。HTTPステータスやレスポンスサイズ、レスポンスタイムなども一緒に残るので、とても便利です。このページはどうやら、ユーザー2( example1@example.com ) のアカウントでしか、アクセスできないようですね。
この Repeater はリクエストを直接書き換えることもできるため、ログインユーザの権限検証以外にも応用できます。一例として以下のような検証に用いることができます。
- レスポンスサイズを比較することで、攻撃コードによる情報漏洩の可能性を検証する
- レスポンスタイムの比較を行うことで、Time-based SQL injectionなどの脆弱性を検証する
いずれももちろん数字の比較だけではなく、実際にレスポンスを確認して、そういった脆弱性が存在するかどうか確かめることが大事です!!(キリッ)
少し話がそれましたが、このように ISTE を用いることで、権限が異なる複数アカウントの診断作業を、圧倒的に効率よく進めることができます。
②リクエストごとの進捗管理を効率化
次は進捗管理機能について紹介します。
進捗区分としては、『 New・Work・Hold・Abort・Done 』の5種類があります。Progress 欄のプルダウンから変更できます。
図5はリクエストの送信履歴一覧の画面です。右から4列目の Progress の区分を選択すると、列の色が自動的に変わります。また図6のとおり、チェックボックスによってリスト表示変更が可能です。Work のチェックを外すと、一覧の中から Work のリクエストが非表示になり、チェックを入れたものだけ表示することができます。
『 New・Work・Hold・Abort・Done 』の区分は自由なので、自身で決めて運用することができます。僕の場合は、以下のルールで仕分けしています。
- New:まだ何もしていないリクエスト
- Work:スキャンのみ終了したリクエスト
- Hold:ログイン処理などのChainする時に必要なリクエスト
- Abort:何らかの事情により診断対象外になったリクエスト
- Done:すべての診断が終了したリクエスト
ちなみにこの進捗管理の変更情報は、DBファイルに保存されているので、Burp を立ち上げなおしても消えることはありません。
これで進捗管理がめちゃくちゃ楽になります。『 New・Work・Hold・Abort・Done 』の使い分けを自分の中でルール化して更新することで、診断進捗が一目瞭然で確認できるようになります。
③メモ機能で診断を効率化
なにげにめちゃくちゃ便利なのがメモ機能。忘れっぽい僕にとっては最強の機能です。先述した進捗管理もメモっちゃメモですが、それとは別にここで紹介したいメモが2つ。
リクエスト別メモ
1つ目はリクエスト別メモ。
このリクエスト一覧の画面で、メモできる箇所は図7の赤枠内3箇所あります。
一番上にある横に大きい四角い赤枠内については、「 Name 」から「 C 」まで、全ての列に書き込むことができます。11列!僕はそんなにいらないけどメモは多いほうがわかりやすいので助かります!!!!
右側の大きなメモはリクエストごとに切り替わる(リクエストごとに保持してくれている)ので、リクエストごとの補足メモが書き込めます。下のNotesも同様にリクエストごとに切り替わるので、リピータで送信したリクエストごとの補足メモを書き込めます。
② Burp Project 内共通メモ
2つ目が Burp Project 内共通メモです。
図8のとおり画面を4分割したメモがとれます。現在表示されているスペースだけでなく、スクロールして下にメモを追加していけるので、多くのメモを残せます。
これら2つのメモには、いずれもテンプレート設定機能があります。
Options > User Options > Node templates > Notes(もしくは List ) からテンプレートを設定できます。
編集後に「 Save 」ボタンを押下すると保存できます。
僕の場合、先ほどの『 New・Work・Hold・Abort・Done 』の使い分けルールや、他の診断ツールで用いるコマンドなどをNotes の方にテンプレートメモとして記載しています。診断するときのカンニング帳って感じで使ってます!
まとめ
以上、「 ISTE 」の【準備編】【実践編】と紹介してきました。次回番外編として、Copy template機能やショートカットキーなどの便利機能について紹介する予定です。引き続きお読みいただけると嬉しいです!