我已经使用 libpcap 捕获了一个 TCP 数据包,我想将整个数据包(不修改它)发送到另一台主机上的特定端口(它有另一个嗅探器监听该端口)。
有什么办法可以做到这一点吗?
非常感谢!
我已经使用 libpcap 捕获了一个 TCP 数据包,我想将整个数据包(不修改它)发送到另一台主机上的特定端口(它有另一个嗅探器监听该端口)。
有什么办法可以做到这一点吗?
非常感谢!
您没有指定您正在使用哪种编程语言以及到目前为止您尝试过的内容。
将 IP 地址字段更改为目标 IP,将 TCP 端口字段更改为您想要的端口。不要忘记更新两个校验和。
如果您想要的是 TCP 转发,Linux 内核已经为您完成了这项工作。
netcat 可能在这种情况下工作,虽然我认为你可能必须重建标题,但没有尝试过。
另一种选择是使用 iptables 将数据包发送到另一个嗅探器,同时仍然在你的包分析器中捕获它
http://www.bjou.de/blog/2008/05/howto-copyteeclone-network-traffic-using-iptables/
另一种选择是使用端口镜像,这取决于所使用的交换机有几个不同的名称,但它允许您将交换机上的端口设置为本质上是集线器。
我认为如果你不能让 netcat 工作,你最好的选择是使用 iptables,你甚至可以添加过滤器。
我不知道您是否必须使用 C,但即使您这样做,我还是建议您首先使用 Python/Scapy 构建原型。
使用 scapy,步骤如下:
使用 Python/Scapy 这一切都非常简单,但我预计使用 C 会更困难,必须手动计算正确的偏移量和校验和等。祝你好运,我希望这会有所帮助。