これは Wireshark で実行できる場合がありますが、 Broを使用すると桁違いに簡単です。
URI の抽出
トレース ファイルを使用して実行するだけです。
bro -r <trace>
この呼び出しにより、現在のディレクトリに一連のログ ファイルが生成されます。あなたが興味を持っているのは ですhttp.log
。出力をフィルタリングして、GET 要求のみを取得できます。
bro-cut id.orig_h id.resp_h method host uri < http.log | awk '$3 == "GET"'
出力例:
192.168.1.104 212.96.161.238 GET update.avg.com /softw/90/update/avg9infowin.ctf
192.168.1.104 77.67.44.206 GET backup.avg.cz /softw/90/update/u7avi1777u1705ff.bin
192.168.1.104 198.189.255.75 GET aa.avg.com /softw/90/update/u7iavi2511u2510ff.bin
192.168.1.104 77.67.44.206 GET backup.avg.cz /softw/90/update/x8xplsb2_118c8.bin
ご覧のとおり、最後の 2 つの列が完全な URL を構成しています。間のスペースを削除するには、awk を使用して最後の 2 つのフィールドを連結します。
ファイルの抽出
注: 今後の Bro 2.1 リリースでは、ファイル抽出が大幅に改善されます。それまでは、保存するファイルの MIME タイプを指定することで、HTTP ストリームからすべてのファイルを抽出できます。
bro -r <trace> 'HTTP::extract_file_type = /video\/avi/'
Bro は HTTP 本文の MIME タイプをスニッフィングし/video\/avi/
、それが正規表現と一致する場合、接頭辞を付けたファイルを作成しますhttp-item
。HTTP::extraction_prefix
変数を再定義することで、プレフィックス名を変更できます。