我不能使用 ettercap 过滤器。我正在编写我能想到的最简单的过滤器:
if (ip.proto == TCP){
msg("Ran Filter\n");
}
但即使这样也不起作用。当我使用 etterfilter 编译它并运行时:
sudo ettercap -F /tmp/filter.ef -T -M arp -i wlan1 /192.168.1.6/ //
信息未打印。通过数据包可视化,我确实看到了 TCP 数据包,但过滤器似乎不起作用,尽管ettercap
显示“内容过滤器已从 加载/tmp/filter.ef
”。
为了解决这个问题,我尝试启用 ip_forward,并尝试删除“#”符号,/etc/etter.conf
以便它将使用 iptables 作为 redir_command(第 168-169 行)
您知道如何使过滤发挥作用吗?
我ettercap NG-0.7.4.2
在 Ubuntu 12.10 上使用
答案1
终于找到答案了。问题是由于 ettercap 中的一个错误造成的!来自手册页:
You can also load a script without enabling it by appending :0 to the filename
从代码来看:
/* enable a loaded filter script? */
uint8_t f_enabled = 0;
/* is there a :0 or :1 appended to the filename? */
if ( (opt_end-optarg >=2) && *(opt_end-2) == ':' ) {
*(opt_end-2) = '\0';
f_enabled = !( *(opt_end-1) == '0' );
}
从代码中可以看出,与手册页中所说的相反,您必须将“:1”附加到过滤器的文件名后才能加载它。否则,过滤器不会被使用。
apt-get install ettercap
那么为什么只有我遇到这种情况呢?这是因为我使用的是 0.7.4.2 版本,这是我在 Ubuntu 上下载的版本。这与 ettercap 网站的说法相反,该网站称"The latest Ettercap release is: 0.7.4.1"
解决该错误的补丁已发送给 ettercap 开发人员。