我有tcpdump跟踪,我想从中恢复重组HTTP请求和响应。有没有一个很好的工具来做到这一点。如果python解决方案不可用,Python首选但愿意编写包装器。
答案 0 :(得分:2)
Bro执行强大的TCP流重组,并以与端口无关的方式解析各种应用层协议。也就是说,如果您的跟踪包含任何非标准HTTP端口上的HTTP流量,Bro会检测到它。
Bro的HTTP分析器完全满足您的需求:它接收TCP流并将其解构为HTTP标头和主体,用于请求和响应。只需运行Bro并查看http.log
:
bro -r trace.pcap
less http.log
Bro还附带了Python绑定,这意味着,您可以将所有HTTP事件发送到自定义Python脚本以进行单独处理。
答案 1 :(得分:0)
答案 2 :(得分:0)
##this_script.bro##
@load-sigs /usr/local/bro/share/bro/policy/frameworks/signatures/detect-payload.sig
global x: string = "";
redef tcp_content_delivery_ports_orig += {[80/tcp] = T};
event tcp_contents(c: connection, is_orig: bool, seq: count, contents: string)
{
x += contents;
}
event signature_match(state:signature_state, msg:string, data:string)
{
print fmt(msg);
print data;
}
event bro_done()
{
print x; #reassemble payload
}
这是一个在端口80上显示tcp流重组有效负载的脚本。您可以通过bro -i iface_name this_script.bro运行。这有助于您分析所提出的请求