我有一个简单的问题,我确定这里有人以前做过...
我想重写第 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/