我写这个bro脚本是为了从一个Pcap文件中提取所有文件。问题是它没有解压所有的文件。我有一个我用Wireshark分析过的http.cap,我把Http对象导出到2个.html文件中。我的bro脚本只提取了其中一个文件。
@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平台有问题,还是我遗漏了什么?This是我的pcap文件。
我也尝试了this的其他pcap文件,并得到了相同的结果。在Wireshark中,我得到了一些图片,js和http文件,而bro只提取了2张图片。
发布于 2016-11-24 02:44:15
我问过freenode chat (channel #Bro)中的人,他们告诉我那些pcaps无需握手就可以连接。因此,与Wireshark相反,bro在没有握手的情况下不会跟踪连接中的包。这个问题在bro 2.5版本的更改日志中被描述为已解决,但我没有加载这个beta版本,编译后得到了相同的结果。我不知道是不是因为它是测试版。我希望这个问题在未来的版本中得到修复。
https://stackoverflow.com/questions/40745930
复制相似问题