Bro不从Pcap文件中提取所有文件

时间:2016-11-22 15:36:54

标签: file wireshark pcap extraction bro

我编写了这个兄弟脚本来从Pcap文件中提取所有文件。问题是它没有提取所有文件。我有一个使用Wireshark分析的http.cap,我导出了Http对象,导致2 .html文件。我的兄弟脚本只提取其中一个文件。

@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。 我使用print函数调试了file_sniff事件,并且只跟踪了2个.html文件中的1个。 Bro平台出了问题,或者是我缺少的东西? This是我的pcap文件。

我还尝试使用this其他pcap文件并获得相同的结果。在Wireshark中,我得到了一些图像,js和http文件,并且只提取了2张图像。

1 个答案:

答案 0 :(得分:0)

我在freenode聊天(频道#Bro)中向人们询问,他们告诉我那些pcaps没有握手就有连接。因此,没有握手,兄弟不会在连接中跟踪包,与Wireshark相反。此问题在已解决的版本2.5的更改日志中进行了描述,但我已下载此测试版本,编译它并获得相同的结果。我不知道是不是因为是测试版。我希望这在未来的版本中得到修复。