Ettercap——数据包注入/篡改

Ettercap——数据包注入/篡改

因此我在端口 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。

相关内容