今回はHack the Box Staring PointのOopsieで用いる、
BurpSuiteというツールをご紹介します。
Burp ProxyはHTTP通信の詳細を監視できるソフト
BurpSuiteというソフトウェアに内蔵されるWebプロキシサーバーがBurp Proxyです。
BurpSuite自体はPortSwiggerというサーバーセキュリティの会社が、
開発しているWebセキュリティーのソフトウェアです。
Community Editionは無料ですが、ProfessionalやEnterprise版はそれぞれ、399ドル、3999ドルとなっています。
対応OSはLinux、Mac、Windowsです。
Kali Linuxには最初から導入されているツールの一つです。
検索窓に「burp」と入力してみてください。ほら、このとおり。
このプロキシサーバーという仕組みは「代理」という意味の通り、
ネットワークとの出入りの際にそこを経由させるためのサーバーです。
Burp Proxyにおいては、Webアプリケーションの詳細な動作を表示する役割があります。
つまり、このソフトを使うとこちらから送信するデータだけでなく、
インターネットから送られてくるデータについても傍受することができます。
しかもただ見ることができるだけでなく変更することもできるのです。
【参考サイト】
Burp Proxyの使い方
https://burp-resources-ja.webappsec.jp/Documentation/burp/documentation/desktop/tools/proxy/using.html
Linuxの.shファイルからインストールする方法
Burp Suiteをダウンロードするのには少し時間がかかります。
Comminity版のダウンロードはこちらからできます。
YouTubeの動画を一本見終わったくらいの時間で、
Downloadフォルダを見るとshファイルというファイルが入っています。
/home/kali/Downloads/burpsuite_community_linux_v2020_12_1.sh
これをクリックするとテキストエディターが開いてしまいますが、
実はこれがソフトウェアのファイルになっています。
Linuxにインストールするにはこのダウンロードフォルダに移動後、
インストールしたいソフトウェアのshファイルを実行します。
基本的にはこんな感じになります。
┌──(kali㉿kali)-[~/Downloads]
└─$ sudo sh burpsuite_community_linux_v2020_12_1.sh
sudoをつけるのは管理者権限がないとうまく行かないからです。
興味がある人はまずsudoをつけないで実行してみてください。
BurpSuiteのインストール時に表示されるウィンドウで、
「binへのPATHの追加を自身で行うか、管理者権限で実行してください」
といった旨の英語表記が出てくると思います。
BurpSuiteの初期設定
Kali Linuxに初期導入されていたBurpSuite(v 20209.1)は、
最新のJRE(Java Runtime Environment)では十分に検証されていないようですが今の所問題なさそうです。
Webからダウンロードしてきた最新のBurpSuiteをお使いの方は以下の表示は出ないと思います。
次にTemporary projectを選択します。
初期設定のままUse Burp defaultsを選択します。
現在の最新版(v2020.12.1)の画面だと以下のような表示になります。
初期画面が出てきます。
最初にBurpSuiteで設定しておくべきポイントがあります。
「Proxy」タブの「Intercept」をOFFにしておいてください。
これをONにした状態というのはプロキシサーバーへのリクエストが、
すべてこのBurpSuite上で保留にしておく状態になります。
次に、「Proxy」タブの「Option」より、
Intercept WebSockets Messagesのクリックをどちらも入れてください。
クライアント(自分)からサーバーへのメッセージ、
サーバーからクライアントへのメッセージ両方ともプロキシサーバー上で止めておくことができます。
後ほどこの機能を使ってBurpSuiteでデータを改ざんして送信してみます。
【参考サイト】
「ローカルプロキシツール(BurpSuite)の紹介」
https://www.as-lab.net/150713/
ブラウザにプロキシサーバーの設定をする
Kali Linuxには標準でFirefoxがインストールされていますので、
今回もFirefoxでプロキシサーバーの設定をしてみたいと思います。
EdgeやChromeでも同様の設定は可能ですので、
それぞれお使いのブラウザでプロキシサーバーを設定してください。
Firefoxの設定を開き、「一般」から一番下の「ネットワーク設定」、
「接続設定」をクリックしてください。
「インターネット接続」という設定画面が出てきます。
「手動でプロキシーを設定する」をクリックして、以下のような設定にします。
「OK」をクリックしたら設定は完了です。
この状態では通常通りインターネットを閲覧することはできません。
プロキシサーバーを通るHTTPの情報を見てみる
設定を終えるとブラウザからの送信をBurpSuiteで見ることが可能です。
試しにHack the BoxのStarting PointにあるOopsiteのサーバーを見ます。
現状は通常のAdminユーザーでログインに成功した画面です。
ここで更新ボタンを押してみます。
BurpSuiteを見てみると「Proxy」タブの「HTTP hirstory」で、
Hostである10.10.10.28に対してGETメソッドが実行されたことがわかります。
これでバッチリ通信の内容をキャプチャすることができました。
送信されたファイルにはAccount IDやCookieのUser IDとRoleが記載されています。
GET /cdn-cgi/login/admin.php?content=accounts&id=1 HTTP/1.1
Host: 10.10.10.28
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: ja,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://10.10.10.28/cdn-cgi/login/admin.php?content=uploads
Connection: close
Cookie: user=34322; role=admin
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
【参考サイト】
フリーで使用可能なBurp Proxy を使用して、Ubuntu でのSSL 通信を複合
https://troushoo.blog.fc2.com/blog-entry-249.html