我有一个简单的问题,我敢肯定这里有人做过...

我要重写第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)之间的静默桥接嗅探配置的配置。通过这种方式,我可以静默地过滤来自任一方向的流量,而不会出现NAT问题。请注意,我的过滤器是一个充当管道过滤器的应用程序,类似于unix命令行过滤器的设计:
 >[eth0] <----------> [my filter] <----------> [eth1]<

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

我已经知道但不适合的内容:
  • Tun/Tap-在较低的数据包层工作,我需要使用较高层的流。
  • Ettercap-除了上面示例中的受限功能之外,我找不到其他替代方法。
  • 是否正在使用某些VPN软件? -我只是不知道哪个或确切如何。
  • libnetfilter_queue-适用于较低层的数据包,不适用于TCP/IP流。

  • 同样,重写应该像在本示例中一样在传输层(第4层)进行,而不是基于较低层的基于分组的方法。确切的代码将极大地帮助您!

    谢谢!

    最佳答案

    看一看Scapy或其他数据包制作工具。那里没有太多这种类型的东西。

    10-08 18:16