我使用libpcap捕获了一个TCP数据包,我希望将整个数据包(无需修改)发送到另一个主机上的特定端口(另一个嗅探器监听该端口)。
我有什么方法可以做到这一点吗?
非常感谢!
答案 0 :(得分:1)
您没有指定您正在使用的编程语言以及您迄今为止尝试过的内容。
将IP地址字段更改为目标IP,将TCP端口字段更改为所需的端口。不要忘记更新两个校验和。
如果你想要的是TCP转发,Linux kernel already does this for you。
答案 1 :(得分:1)
netcat可能会在这种情况下工作,虽然我认为你可能需要重新构建标题,但还没试过。
How to escape hex values in netcat
另一个选择是使用iptables将数据包发送到另一个嗅探器,同时仍然在包裹分析器中捕获它
http://www.bjou.de/blog/2008/05/howto-copyteeclone-network-traffic-using-iptables/
另一种选择是使用端口镜像,根据所使用的交换机,它会有一些不同的名称,但它允许您将交换机上的端口设置为基本上是集线器。
我认为,如果你不能让netcat工作,你最好的选择是使用iptables,你甚至可以添加过滤器。
答案 2 :(得分:0)
我不知道您是否必须使用C,但即使您这样做,我也建议您先使用Python / Scapy构建原型。
使用scapy,以下是步骤:
使用Python / Scapy这一切都很容易,但我希望C更难,必须手动计算正确的偏移量和校验和。祝你好运,我希望这会有所帮助。