Ste*_*ven 9 packet-capture pcap wireshark tshark
给定一个pcap文件,我可以使用Wireshark提供的整洁过滤器从重建的HTTP请求和响应中提取大量信息.我也能够将pcap文件拆分成每个TCP流.
麻烦我现在遇到的是我可以使用的所有酷过滤器tshark,我找不到一个可以让我打印出完整的请求/响应机构.我打电话的是这样的:
tshark -r dump.pcap -R "tcp.stream==123 and http.request" -T fields -e http.request.uri
Run Code Online (Sandbox Code Playgroud)
我可以传递一些过滤器名称-e来获取请求/响应正文吗?我最接近的是使用-V旗帜,但它也打印出一堆我不需要的信息,并且希望避免使用"哑"过滤器.
如果您愿意切换到另一个工具,tcptrace可以使用-e选项执行此操作.它还具有HTTP分析扩展(xHTTP选项),可为每个TCP流生成HTTP请求/ repsonse对.
这是一个用法示例:
tcptrace --csv -xHTTP -f'port=80' -lten capturefile.pcap
Run Code Online (Sandbox Code Playgroud)
如果您捕获了 pcap 文件,则可以执行以下操作来显示所有请求+响应。
filename="capture_file.pcap"
for stream in `tshark -r "$filename" -2 -R "tcp and (http.request or http.response)" -T fields -e tcp.stream | sort -n | uniq`; do
echo "==========BEGIN REQUEST=========="
tshark -q -r "$filename" -z follow,tcp,ascii,$stream;
echo "==========END REQUEST=========="
done;
Run Code Online (Sandbox Code Playgroud)
我只是让 diyism 答案更容易理解(你不需要 sudo,而且多行脚本在我看来很容易查看)
小智 5
当提出问题时,这可能不是一个选项,但较新版本的 tshark 可以“跟踪”对话。
tshark -nr dump.pcap -qz follow,tcp,ascii,123
Run Code Online (Sandbox Code Playgroud)
我知道这是一个非常古老的问题。我只是为那些最终在这里寻找当前解决方案的人添加这个。