我正在尝试将pcap文件重播到HTTP服务器。在此之前,我尝试手动检查我是否正确使用了tcpreplay。
我已经开始netcat -l 12345
在特定端口上监听。我们称它为“服务器”在另一台我运行的机器上,我tcpdump
捕获了所有目的地为文件中特定端口的流量dummy.pcap
。之后,我在客户端计算机上运行netcat,连接到“服务器”并发送几条消息。我检查了结果pcap与tshark
它表明已捕获数据包。
我再次在服务器上启动了netcat,在客户端上,我已经启动了tcpreplay:
tcpreplay -d 5 -i eth0 -t dummy.pcap
但是在服务器上的netcat控制台上什么也没有出现。我试图在“服务器”上运行tcpdump,它表明已接收到数据包。
为什么数据包没有出现在netcat控制台中?
TCPreplay将重播服务器上的流量,但由于TCP协议的性质,它实际上并未与服务器“通信”。因此,基本上,您的服务器正在接收TCP数据包,但从不建立实际的TCP连接,因为重播未完成正确的握手。这就是为什么您的netcat中没有出现TCP会话的原因。
以我的经验,这种tcpdump仅对分析有用,如果您担心重现命令/数据序列,则需要找到特定于协议的工具(在我的情况下,它涉及编写自定义客户端)。
来自tcpreplay Wiki:
将流量发送到服务器
问题
您有一个pcap捕获,并想在另一台服务器上重播该流量。
解决方案
首先,这仅适用于ICMP和UDP通信。Tcpreplay不支持在服务器上发送TCP流量,因为它不同步TCP流中的Syn / Ack编号。
也就是说,您需要更改目标IP和MAC地址以匹配目标服务器的IP和MAC地址。在这种情况下,我们假设目标服务器IP为10.10.1.1,其MAC地址为00:01:02:03:04:05。
以及他们的常见问题解答:
=== tcpreplay是否支持将流量发送到服务器?===如果“服务器”是指侦听端口的守护程序(Unix)或服务(Windows)(Web或邮件服务器是常见示例),则可能不是。最大的问题是tcpreplay无法理解TCP等常见协议的状态。这意味着它无法同步Syn / Ack来创建有效的TCP会话。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句