防止libpcap捕获用pcap_inject()注入的数据包

时间:2010-12-08 23:31:05

标签: code-injection libpcap spoofing

目前正在考虑只使用pcap嗅探同一个接口的可能性,并使用pcap_inject注入数据包。

使用以下任何一种方法都可以轻松解决问题:

  • 持续校验和跟踪/大慢地图/,
  • 校验和跟踪 - 直到所有数据都被注入,比如第一个http请求;
  • 黑客bpf / libipq / Netfilter为每个实际PHY数据包携带附加参数

可是:

pcap监听eth0 / realworld的情况更接近“pcap通过源魔法监听和丢弃”/,pcap通过eth0的句柄发送数据包,以便将它们路由出去。 libpcap没有捕获使用相同库注入同一接口的数据包的理论基础是什么 - 例如,注入的数据包不会通过所有Berkeley的数据包过滤器代码?

实用测试TBD。

2 个答案:

答案 0 :(得分:1)

可能只是忽略接收路径中属性为skb->pkt_type == PACKET_OUTGOING的数据包。

答案 1 :(得分:1)

您的问题难以解析,但如果我理解正确,您正在寻找一种方法来捕获排除您注入的数据包。您可以使用捕获筛选器来执行此操作,该筛选器仅查看发送到计算机上相关接口的内容...

ether dst aa:bb:cc:dd:ee:ff 

......或者除了在相关接口上发送的内容之外的所有内容:

not ether src aa:bb:cc:dd:ee:ff

这将影响您的机器以外的流量,但是如果您捕获并注入,那么您可能无论如何都不关心自己机器的数据包。如果您需要更多自定义内容,则应该很难识别刚刚在捕获的数据包中发送的数据包。 (我想这就是校验和的意思,但我没有看到立即表格问题。)