Ettercap的过滤规则只能经过编译之后才能由-F参数载入到ettercap中使用。
编译过滤规则命令是:etterfilter filter.ecf -o filter.ef.
过滤规则的语法与C类似,但只有if语句,不支持循环语句。需要注意的地方是,if与“(”之间必须要有一个空格,且大括号{}不能省略。
ettercap提供一些函数:
- search(where,what) 从字符串where查找what,若找到则返回true。
- regex(where,regex) 从字符串where中匹配正则表达式regex,若找到则返回true。
- replace(what,with) 把字符串what替换成字符串with。
- inject(what) 注入what内容,它总是注入DATA.data,在inject()命令之前,正确使用drop()命令来用一个虚假的包来替换全部的包(You can use it to replace the entire packet with a fake one using the drop() function right before the inject() command.),这种情况下,过滤引擎将丢弃当前分组的包,并且注入虚假的包。
- log(what,where) 把字符串what记录到where文件中;
- Msg(message) 在屏幕上显示字符串message;
- drop() 此函数标志着包被丢弃,该分组将不会被转发到真正的目的地;
- kill() 该函数杀死拥有匹配包的连接,如果它是TCP连接,RST被发送到连接的两侧;如果它是UDP连接,一个icmp端口不可达被发送到该分组的源;
- exec(command) 这个函数执行一个shell命令。你不得不提供全部的命令因为它执行没有环境。
- exit() 退出。
Etterlog分析数据
etterlog是用来读取分析ettercap -L或者 -l 参数产生的log文件。
etterlog -A sniffed_data.ecp >1.txt 即将ettercap产生的log数据转成可显示的数据保存在1.txt中;
ettercap -B sniffed_data.ecp > 1.data 将数据原封不动的转存成文件。