use*_*060 13 c python sockets security network-programming
我有一个简单的问题,我相信这里有人已经做过......
我想重写第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");
}
}
Run Code Online (Sandbox Code Playgroud)
http://ettercap.sourceforge.net/forum/viewtopic.php?t=2833
我想基于我自己的过滤器程序重写流,而不是简单的字符串替换.任何人都知道如何做到这一点?除了Ettercap之外还有什么可以做这样的实时替换,可能作为VPN软件的插件还是什么?
我想在两个以太网接口之间进行类似于ettercap的静默桥接嗅探配置的配置.通过这种方式,我可以无声地过滤来自任一方向的流量而不会出现NAT问题.请注意,我的过滤器是一个充当管道过滤器的应用程序,类似于unix命令行过滤器的设计:
>[eth0] <----------> [my filter] <----------> [eth1]<
Run Code Online (Sandbox Code Playgroud)
我的过滤器将是用户空间Python函数.
我已经知道但不适合:
Tun/Tap - 在较低的数据包层工作,我需要使用更高层的流.
Ettercap - 除了上面示例中的受限功能之外,我找不到任何替换方法.
挂进一些VPN软件? - 我无法弄清楚究竟是哪种或者究竟是怎样的.
libnetfilter_queue - 使用较低层数据包,而不是TCP/IP流.
同样,重写应该在传输层(第4层)发生,就像在本例中那样,而不是基于较低层数据包的方法.确切的代码将极大地帮助!
谢谢!