0

Pcap ファイルからすべてのファイルを抽出するために、この bro スクリプトを作成しました。問題は、すべてのファイルを抽出していないことです。Wireshark で分析した http.cap があり、Http オブジェクトをエクスポートして 2 つの .html ファイルにしました。私の仲間のスクリプトは、このファイルの 1 つだけを抽出しています。

@load base/files/extract

global hash_number = 100;

event bro_init()
{
    #Log::disable_stream(Conn::LOG);
    mkdir("extract_files");     
}

event file_sniff(f: fa_file, meta: fa_metadata)
{
    local ext = "";

    if ( meta?$mime_type )
        ext = split_string(meta$mime_type, /\//)[1];

    local hash = f$seen_bytes % hash_number;
    mkdir(fmt("./extract_files/%d", hash));

    local file_path = fmt("%d/%s-%s.%s", hash, f$source, f$id, ext);
    Files::add_analyzer(f, Files::ANALYZER_EXTRACT, [$extract_filename=file_path]);
}

私はこのように仲間のスクリプトを呼び出しました: bro -r http.cap myscript.bro. 印刷関数を使用して file_sniff イベントをデバッグしたところ、2 つの .html ファイルのうち 1 つだけが追跡されました。それはBroプラットフォームに何か問題がありますか、それとも私が見逃しているものですか? これは私の pcap ファイルです。

この他の pcap ファイルでも試してみましたが、同じ結果が得られました。Wireshark では、いくつかの画像、js および http ファイルを取得し、bro は 2 つの画像のみを抽出します。

4

1 に答える 1