使用pcapy / impacket更改数据包数据

时间:2010-11-20 16:35:17

标签: python impacket pcapy

我正在Linux上用Python编写一个小程序,它将拦截从主机A到主机B的特定端口上的线路上传输的数据包。主机C将充当中间人,因此所有流量都将通过主机C(arp中毒方法)。我已成功写入截取部分,因此我可以在屏幕上看到所有数据,但我希望在不更改标题数据的情况下修改数据包数据(当然会改变cheksum)。如何使用pcapy / impacket截获的数据包实现此目的?

它可能有点模糊,但主要思想如下所示 1.主机A向主机B发送“Hello”(主机A和B是arp欺骗,以便流量通过主机C)。
2.主机C从主机A获取'Hello'(默认主机C将'Hello'重定向到主机B,但我想要其他东西 - 见第3点)
3.主机C将'Hello'修改为'Bye'并将(内核的ip_forward?)重定向到主机B.
主持人B得到'再见'。

也许有一种方法使用一些Linux机制来实现这一目标?现在我被卡住了,我会很感激任何想法。

1 个答案:

答案 0 :(得分:1)

我更喜欢scapy这种应用。它是一个功能强大的python包,允许您在协议栈的各个层捕获,操作和传输数据包。

有几种方法可以执行你的中间人攻击。我可能会使用“sniff”函数和一个捕获来自Host A的数据包的过滤器。然后我会指定一个回调(通过“prn”参数)修改数据包并使用“sendp”将其重新发送给主机B.请注意,scapy还包括内置的“arpcachepoison”功能。