![Ettercap——数据包注入/篡改](https://linux22.com/image/535113/Ettercap%E2%80%94%E2%80%94%E6%95%B0%E6%8D%AE%E5%8C%85%E6%B3%A8%E5%85%A5%2F%E7%AF%A1%E6%94%B9.png)
因此我在端口 3128 上使用 squid 设置了代理。
我还设置了 ettercap。
我的主要目标是当数据流经我的代理时改变它。
基本上,您使用我的代理打开 www.something.com,它会显示“lala”,我想使用 ettercap 将“lala”更改为“lala2”。
有任何命令行提示可以实现这一点吗?据我所知,这不是 MITM ARP 程序。
答案1
如果您已经有一个数据流经的工作代理,则不需要 arpspoof。您必须为 ettercap 编写一个过滤器。纯文本文件replace.filter
包含(http 的端口 80):
if (ip.proto == TCP && tcp.dst == 80) { // suspress gzipped content
if (search(DATA.data, "Accept-Encoding")) {
replace("Accept-Encoding", "Accept-DontLoad");
msg("zapped Accept-Encoding!\n");
}
}
if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, "searchstring")) {
replace("searchstring", "replacestring");
}
}
您可以在同一个文件中为不同的 port 使用多个过滤器。您还必须“编译”您的过滤器才能正常工作。
etterfilter replace.filter -o replace.ef
使用此过滤器启动 ettercap,方法是发出
ettercap -T -q -F replace.ef -M ARP /<GATEWAY_IP>/ /<TARGET_IP>/
答案2
在 squid.conf 中,使用redirect_program
配置变量指向程序/脚本。在该脚本中,您可以随意处理传递的数据。有关有趣的示例,请参阅颠倒的特尔奈特。
答案3
您真正需要的是一个可以在应用层进行过滤的代理。Squid 有提供此功能的模块,但快速搜索没有显示任何不需要重新编译 Squid 的模块。或者,您可以通过提供所需功能的代理链接您的 Squid 代理。它可以像使用 HTTP::Proxy 的 Perl 脚本一样简单,也可以是您选择的其他语言和库。
Ettercap 确实不是用于此目的的工具,尽管它可能可以工作。您可能必须对内核路由表进行一些调整才能使其工作。尝试在当前配置中嗅探您的流量:您可能会发现 Ettercap 正在重新传输修改后的帧而不丢弃原始帧。另外,请确保您拥有最新版本的 Ettercap。它最近重新发布,修复了许多错误,我知道至少有几个与数据包过滤有关。最新版本是 0.7.4。