[Cuckoo Sandbox] プロキシ経由通信時の解析結果のURL表記の崩れの修正
Cuckooはmitmproxyに対応しているが、レポートのURL記載周りにおいてはURLにパスのみが含まれている前提になっている。
結果、パスが「http://〜」から始まるプロキシサーバ宛の通信の記載は以下のようになる。
- Performs some HTTP requests(3 events)
request GET http://www.msftncsi.comhttp://www.msftncsi.com/ncsi.txt
- Network Analysis
GET => 200 http://www.msftncsi.comhttp://www.msftncsi.com/ncsi.txt
ここで原因となった情報を分解してみる。
key | value |
---|---|
protocol | http |
host | www.msftncsi.com |
uri | http://www.msftncsi.com/ncsi.txt |
(表示構造) | [protocol]://[host][uri] |
(表示結果) | http://www.msftncsi.comhttp://www.msftncsi.com/ncsi.txt |
上記uriがプロキシ宛の場合httpおよびホスト名が入っているので、表示が崩れる。
そこで、修正を試みる。
Performs some HTTP requests
- /usr/local/lib/python2.7/dist-packages/cuckoo/common/abstracts.py
Cuckooはmitm.logを読み込むにもかかわらず、実際のmitmのログはdump.mitmにあるため、データを読み込めていない。
Cuckooはmitm.logからデータが取得できない場合はプロキシ経由ではないと判断しHTTP通信をtcpdumpから取得するため表示が崩れる。
これは環境依存かも。
657c657,658 < self.mitmout_path = os.path.join(self.analysis_path, "mitm.log") --- > #self.mitmout_path = os.path.join(self.analysis_path, "mitm.log") > self.mitmout_path = os.path.join(self.analysis_path, "dump.mitm")
Network Analysis
- /usr/local/lib/python2.7/dist-packages/cuckoo/web/templates/partials/http-request.html
こちらはmitmの使用にかかわらずtcpdumpの結果から情報を取得するためプロキシ経由を考慮せずURLを取得する。
そのためデータ構造をhttp.uriだけに変更する。
6c6,7 < <span class="url">{{ http.protocol }}://{{http.host}}{{http.uri}}</span> --- > <!--<span class="url">{{ http.protocol }}://{{http.host}}{{http.uri}}</span>--> > <span class="url">{{http.uri}}</span>
修正後、以下のような表示になる。
- Performs some HTTP requests(3 events)
request GET http://www.msftncsi.com/ncsi.txt
- Network Analysis
GET => 200 http://www.msftncsi.com/ncsi.txt
以上。