是否可以使用Python将数据包注入现有的tcp连接?

时间:2012-11-07 16:28:50

标签: python networking tcp packets

正如标题所说,我想使用现有的tcp连接发送数据。所述连接已由第三方程序建立。我无法找到关于此的更多信息,可以肯定地说我根本不知道它是如何工作的。

操作系统是Windows。我首选的编程语言是python - 我不想使用第三方python模块,但如果它们让我的生活更轻松,我会的。

只是为了澄清,如果你不确定我想做什么:我想发送数据,好像它是由另一个程序发送的;非常像WPE pro的发送功能。

更新

从技术上讲,我不能手动设计TCP数据包然后告诉网络设备(或操作系统)发送该数据包吗?注入的插座不会完全相同吗?

编辑:维基百科称接收主机确认收到的数据包,这使得这更加困难。但是如果在第三方程序收到之前可以删除该确认包,那么这应该可行。正确?

2 个答案:

答案 0 :(得分:1)

Scapy / Pcapy是用于监控数据包并将数据包注入实时网络接口的强大工具。我已将它们用于多个项目。这些工具非常适用于激励/响应低级网络协议(即DHCP,DNS等)以及通过简单UDP发送的任何非有状态协议。

不幸的是,TCP层非常复杂且有状态。因此,在流中注入有意义的东西将更加困难。此外,Scapy / Pcapy目前没有support for tcp

答案 1 :(得分:1)

TCP会话不是多对一连接。它是一种点对点状态协议,用于跟踪已发送的数据包与另一端收到的数据包。我不相信你可以注入已经建立的会议。正如之前所指出的,你最好的选择是建立一个代理人并充当中间人的闯入者。仍然不是一件微不足道的事情,但可行。