python - 重写实时 TCP/IP(第 4 层)(即套接字层)流

标签 python c security network-programming sockets

我有一个简单的问题,我确定这里有人以前做过...

我想重写第 4 层 TCP/IP 流(不是较低层的单个数据包或帧。)Ettercap 的 etterfilter 命令可让您基于固定字符串执行第 4 层 TCP/IP 流的简单实时替换或正则表达式。示例 ettercap 脚本代码:

 if (ip.proto == TCP && tcp.dst == 80) {
    if (search(DATA.data, "gzip")) {
       replace("gzip", "    ");
       msg("whited out gzip\n");
    }
 }

 if (ip.proto == TCP && tcp.dst == 80) {
    if (search(DATA.data, "deflate")) {
       replace("deflate", "       "); 
       msg("whited out deflate\n");
    }
 } 

http://ettercap.sourceforge.net/forum/viewtopic.php?t=2833

我想根据我自己的过滤程序重写流,而不是简单的字符串替换。任何人都知道如何做到这一点?除了 Ettercap 之外,还有什么东西可以像这样进行实时替换,也许可以作为 VPN 软件的插件或其他东西?

我想要一个类似于 ettercap 在两个以太网接口(interface)之间的静默桥接嗅探 配置的配置。通过这种方式,我可以在没有 NATing 问题的情况下静默过滤来自任一方向的流量。请注意,我的过滤器是一个充当管道过滤器的应用程序,类似于 unix 命令行过滤器的设计:

 >[eth0] <----------> [my filter] <----------> [eth1]<

我的过滤器将是一个用户空间 Python 函数。

我已经知道但不适合的:

  • Tun/Tap - 在较低的数据包层工作,我需要处理较高层的流。

  • Ettercap - 除了上述示例中的受限功能外,我找不到任何方法进行替换。

  • 连接到某些 VPN 软件? - 我只是想不通是哪个或具体如何。

  • libnetfilter_queue - 适用于底层数据包,不适用于 TCP/IP 流。

同样,重写应该像本例中那样发生在传输层(第 4 层),而不是基于较低层数据包的方法。准确的代码将大有帮助!

谢谢!

最佳答案

看看Scapy ,或其他数据包制作工具。这种类型的并不多。

关于python - 重写实时 TCP/IP(第 4 层)(即套接字层)流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2563978/

相关文章:

python - 如何在 lxml.html 树中插入 HTML 元素

c - 指向表的数组和表元素上的双指针

c - 了解作用域后堆栈使用错误

c# - 开发人员的网络安全基础(IIS、SQL、RDP 等)

python - Pandas 的excel索引匹配

python - 下载 bzr 分支时权限被拒绝(公钥)

python - httplib2 使用代理给出内部服务器错误 500

c - 关于 ASN.1 查询

javascript - 保护混合 apk

security - 如何为可下载的服务器软件配置证书