使用libpcap接收大于MTU的TCP段

时间:2015-08-08 21:09:35

标签: http tcp libpcap mtu

Hello网络冒险家,

我正在实施网络攻击,ARP欺骗网关和受害者,过滤HTTP数据并在浏览器中重新组合网页。也称为webspy。

但是,我在libpcap方面遇到了一些问题。当我收到包含HTTP数据的数据包时,其中一些数据包大于MTU!像1922年,2878年甚至4909字节。

起初,我认为这些是由内核给出的重新组装的HTTP数据包。但是,根据with this post,libpcap不会重新组合数据包,所以它不会给我带来一个完整的,包含来自给定请求的所有HTTP响应的完整数据包。

为了测试,我打印了所有大于MTU的数据包。所有这些都包含普通数据(CSS,JS,HTML,图像......)。

那到底是怎么回事?这些大个子是什么?我已经挣扎了几天。

奖金问题:我是否真的需要自己重新组装所有这些HTTP数据?

1 个答案:

答案 0 :(得分:0)

  

但是,我在使用libpcap时遇到了一些问题。当我收到包含HTTP数据的数据包时,其中一些数据包大于MTU!像1922年,2878年甚至4909字节。

您的网络适配器可能充当TCP offload engine,重新组合多个传入的TCP网段并将一个重新组合的网段交给主机。至少在Linux上,网络堆栈可能正在执行Large Receive Offload,如果在将数据包传递给“taps”(Linux上的libpcap使用的PF_PACKET套接字)之前完成,则会得到重组的段。

对于你的程序,这应该不是问题,因为......

  

我真的需要自己重新组装所有这些HTTP数据吗?

...您需要重新组合HTTP请求的所有组件或自行回复。