我正在使用Ettercap过滤器来检测从远程计算机上的特定服务返回的查询响应。当我看到来自服务的响应时,我正在搜索数据包中的数据以查看偏移量是否是特定值,如果是,我将更改另一个偏移量的值。
麻烦的是,当我在新的虚拟机上尝试这个时,我构建了我的Ettercap过滤器,不再获得DATA.data变量中的任何数据。
if(ip.proto == TCP && tcp.src == 17867) {
msg("Response seen!\n");
if(DATA.data + 2 == "\0x01") {
msg("Flag detected!\n");
DATA.data + 5 = 0x09;
}
}
过滤器已应用于流量,因为“看到了响应!”消息由Ettercap打印出来。但是,“检测到标志!”消息没有。我认为 DATA.data确实是空的,因为如果我更改第二个“if”语句以检查DATA.data == ""
,那么“检测到标志!”消息被打印出来。
为什么会发生这种情况的任何想法?!
另外,如果这是一个错误的网站提出这样的问题,请告诉我。我不确定它是否适合这里或超级用户或服务器故障。
答案 0 :(得分:0)
这可能是编码问题。出于调试目的,尝试打印DATA.data + 2的值以查看它实际上是什么以及长度是否匹配。
答案 1 :(得分:0)
我遇到了同样的问题。 (ettercap接收null (0x00)
个字符或0x20
(DECODED ONE))。我试图从源代码编译ettercap
,一切正常。
尝试使用ettercap
过滤器记录LOG
收到的内容,然后查看收到的内容。如果它是nulls
或zeros
,你的问题可能就像我的一样!
这似乎是etterfilter或ettercap本身的一些问题。
更改您的ettercap
版本,它会起作用(我的确如此)。
我的问题出在5 r1
的回溯中,它是ettercap
。我更新了ettercap
,一切正常。