给定一个 pcap 文件,我可以使用 Wireshark 提供的整洁的过滤器从重构的 HTTP 请求和响应中提取大量信息。我还能够将 pcap 文件分割到每个 TCP 流中。 我现在遇到的问题是,在我能够与
tshark
一起使用的所有很酷的过滤器中,我找不到一个可以让我打印出完整请求/响应正文的过滤器。我正在调用这样的东西:
tshark -r dump.pcap -R "tcp.stream==123 and http.request" -T fields -e http.request.uri
是否有一些过滤器名称可以传递给
-e
来获取请求/响应正文?我最接近的是使用
-V
标志,但它也会打印出一堆我不需要的信息,并且希望避免不得不使用“哑”过滤器来拼凑。tcptrace --csv -xHTTP -f'port=80' -lten capturefile.pcap
--csv
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;
我只是让 diyism 答案更容易理解(你不需要 sudo,而且多行脚本在我看来很容易查看)
提出问题时这可能不是一个选项,但较新版本的 tshark 可以“跟踪”对话。
tshark -nr dump.pcap -qz follow,tcp,ascii,123
我知道这是一个非常老的问题。我只是为那些最终在这里寻找当前解决方案的人添加这个。
我使用此行显示最后 10 秒的请求正文和响应正文(