0

我有 tcpdump 跟踪,我想从中恢复重组 HTTP 请求和响应。有没有一个好的工具可以做到这一点。首选 Python,但如果 Python 解决方案不可用,则愿意编写包装器。

4

3 回答 3

2

Bro执行健壮的 TCP 流重组并以独立于端口的方式解析各种应用层协议。也就是说,如果您的跟踪包含任何非标准 HTTP 端口上的 HTTP 流量,Bro 会检测到它。

Bro 的 HTTP 分析器完全可以满足您开箱即用的需求:它获取 TCP 流并将其解构为 HTTP 标头和正文,用于请求和响应。只需运行 Bro 并查看http.log

bro -r trace.pcap
less http.log

Bro 还附带 Python 绑定,这意味着您可以将所有 HTTP 事件发送到您的自定义 Python 脚本以进行单独处理。

于 2012-03-22T23:20:33.720 回答
0

您可能正在寻找tcpreplay

为了吸引你对 python 的敏感性,你可能还想看看Scapy

于 2011-08-27T00:40:34.473 回答
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 运行。这有助于您分析提出的请求

于 2017-06-09T22:12:22.593 回答