Username: Password:

Ettercap - 多功能交换局域网sniffer
来源: ChinaUnix博客  作者: ChinaUnix博客   发布时间:2008-06-18 08:33:05

Ettercap最初设计为交换网上的sniffer,但是随着发展,他获得了越来越多的功能,成为一款有效的、灵活的中介攻击工具。他支持主动及被动的协议解析并包含了许多网络和主机特性(如OS指纹等)分析。
Ettercap有5种sniffing工作方式:
1、IPBASED
在基于IP地址的sniffing方式下,Ettercap将根据源IP-PORT和目的IP-PORT来捕获数据包。
2、MACBASED
在基于MAC地址的方式下,Ettercap将根据源MAC和目的MAC来捕获数据包(在捕获通过网关的数据包时,这种方式很有用)
3、ARPBASED
在基于ARP欺骗的方式下,Ettercap利用ARP欺骗在交换局域网内监听两个主机之间的通信(全双工)。
4、SMARTARP
在SMARTARP方式下,Ettercap利用ARP欺骗,监听交换网上某台主机和任何已知的其他主机(存在于主机表中的主机)之间的通信(全双工)。
5、PUBLICARP
在PUBLICARP方式下,Ettercap利用ARP欺骗,监听交换网上某台主机和任何其他主机之间的通信(半双工)。此方式以广播方式发送
ARP响应,但是假如Ettercap已拥有了完整的主机地址表(或在Ettercap启动时已对LAN上的主机进行了扫描),Ettercap会自
动选取SMARTARP方式,而且ARP响应会发送给被监听主机之外的任何主机,以避免在Win2K上出现IP地址冲突的消息。 网管下载dl.bitscn.com

Ettercap中最常用的一些功能包括:
1、在已有连接中注入数据:您能够在维持原有连接不变的基础上向服务器或客户端注入数据,以达到模拟命令或响应的目的。
2、SSH1支持:您能够捕获SSH1连接上的User和PASS信息,甚至其他数据。Ettercap是第一个在全双工的条件下监听SSH连接的软件。
3、HTTPS支持:您能够监听http SSL连接上加密数据,甚至通过PROXY的连接。
4、监听通过GRE通道的远程通信:您能够通过监听来自远程cisco路由器的GRE通道的数据流,并对他进行中间人攻击。
5、Plug-in支持:您能够通过Ettercap的API创建自己的Plug-in。
6、口令收集:您能够收集以下协议的口令信息,TELNET、FTP、POP、RLOGIN、SSH1、ICQ、SMB、MySQL、HTTP、
NNTP、X11、NAPSTER、IRC、RIP、BGP、SOCK5、IMAP4、VNC、LDAP、NFS、SNMP、HALFLIFE、
QUAKE3、MSNYMSG(不久还会有新的协议获得支持)。
7、数据包过滤和丢弃:您能够建立一个查找特定字符串(甚至包括十六近制数)的过滤链,根据这个过滤链对TCP/UDP数据包进行过滤并用自己的数据替换这些数据包,或丢弃整个数据包。
8、被动的OS指纹提取:您能够被动地(不必主动发送数据包)获取局域网上电脑系统的周详信息,包括操作系统版本、运行的服务、打开的端口、IP地址、MAC地址和网卡的生产厂家等信息。
网管联盟bitsCN@com
9、OS指纹:您能够提取被控主机的OS指纹连同他的网卡信息(利用NMAP Fyodor数据库)。
10、杀死一个连接:杀死当前连接表中的连接,甚至任何连接。
11、数据包生产:您能够创建和发送伪造的数据包。允许您伪造从以太报头到应用层的任何信息。
12、把捕获的数据流绑定到一个本地端口:您能够通过一个客户端软件连接到该端口上,进行进一步的协议解码或向其中注入数据(仅适用于基于 ARP的方式)。
Ettercap的长处在于:
1、他无需libpcap、libnet等常用库的支持。
2、基于ARP欺骗的sniffing无需把执行ettercap的主机的网卡配置为全收方式。
3、支持后台执行。
是不是很酷呀?!
Ettercap的选项说明:
监听方式:
-a,--arpsniff
基于ARP的sniffing。
指定监听交换网的方式,假如您想要采用中间人技术进行攻击,必须选用这个选项。假如这个参数和静音方式(-z选项)连用,您必须为
ARPBASED方式指定两对IP-MAC地址(全双工),或为PUBLICARP方式指定一个IP-MAC地址(半双工)。在PUBLICARP方式
下,ARP响应是以广播方式发送的,但是,假如Ettercap拥有了完整的主机表(在启动时对局域网进行了扫描),Etercap会自动选择
SMARTARP方式,ARP响应会发送给处被控主机以外的任何主机,并建立一个哈希表,以便以后在全双工条件下的中间人攻击中能够将数据包从监听主机发
送给以这种方式截获的客户。 网管u家u.bitsCN.com
注释:假如您采用
SMARTARP方式的ARP欺骗,要在配置文档中配置网关的IP地址(GWIP选项),并通过-e选项加载这个文档。否则这个客户将无法连接到远程主
机。需要进行包替换或包丢弃的数据包过滤功能仅仅能够在ARPBASED方式下使用,因为为了保持连接必须调整数据包的TCP序列号。
-s,--sniff
基于IP的监听。
这是最早的监听方式。他适用和HUB环境,但是在交换网下就没有作用了。您能够仅仅指定源或目的IP地址,能够指定也能够不指定端口,或干脆什么也不指定,这样意味着监听网上的任何主机。能够用“ANY”来表示IP地址,他的意思是来自或去往每一个主机。
-m,-macsniff
基于MAC的监听
适用于监听远程的TCP通信。在HUB环境下,假如您想要监听通过网关的连接,仅仅指定欲监控主机的IP和网关的IP是不行的,因为数据包是从外
部主机发送的,而不是从网关发送的,所以您不能采取指定IP地址的方法。为了达到监控内外通信的目的,您只要指定被监控主机的MAC地址和网关的MAC地
址,这样就能够监控被监听主机的任何Internet通信。
脱机sniffing:
-T,--readpcapfile
脱机sniffing。
假如使能了这个参数,Ettercap将监听一个pcap兼容文档中存储的网络数据包,而不是直接监听网络上的数据包。假如您有tcpdump或etereal转储的数据文档,并想对这些文档进行分析的时候,这个选项很合适。
中国网管联盟bitsCN.com
-Y,--writepcapfile
把数据包转储到一个pcap格式的文档中。
假如您必须要在一个交换的局域网上使用主动sniffing(通过ARP欺骗)方式监听,但是又希望利用tcpdump或etereal对截获的
数据包进行分析,能够选用这个选项。您能够利用这个选项把监听到的数据包转储在一个文档中,然后加载到适当的应用程式中进行分析。
通用选项
-N,--simple
非交互方式。
假如您希望从一个脚本提交Ettercap,或您已了解一些目标信息,或您想要在后台提交Ettercap,让他收集数据或口令信息(和
-quite选项连用)的时候,能够采用这个选项。在这种工作方式下,Ettercap的某些功能无法实现,如字符注入等需要交互式处理的功能。但其他功
能仍得到全面支持,如过滤功能。所以能够让Ettercap对两个主机进行ARP欺骗(一台被监控主机和他的网关),并过滤他的任何在80端口的连接,并
用一些字符串进行替换,那么他到Internet的任何通信都会按照您的需要而改变。
-z,--silent
以静音方式启动(在启动时没有ARP风暴)。
假如您希望以非攻击方式启动Ettercap(某些NIDS检测到过多的ARP请求时会产生报警信息)。若要选用这个选项,您必须了解有关目标系
统的任何必要的信息。例如,假如您需要欺骗两台主机,您需要知道这两台主机的IP地址和MAC地址。假如您选择了IP监听或MAC监听,会自动选择这个选
项,因为您无需知道局域网上的主机列表。假如您想要了解全部主机信息,使用“ettercao -Nl”选项,需要注意的是,这是带有攻击性的方式。
网管u家u.bitsCN.com
-O,--passive
以被动方式收集信息。
这种方式不会向网上发送任何数据包,他会将网卡置于全收方式,并查看流经的数据包。他将分析每一个需关注的数据包(SYN和SYN +
ACK),并利用这些信息建立完整的局域网主机映射图。所收集的信息包括:主机的IP和MAC地址、网卡生产厂家、操作系统类型(被动OS指纹)和运行的
服务等。在这个列表中还会包含其他一些信息,如:“GW”,假如该主机是个网关的话,“NL”,假如这个IP不属于本网段,连同“RT”,假如该主机发
挥了路由器的功能。假如您需要通过被动方式建立一个完整的主机列表的时候,能够选择这个选项。当您对所收集的信息感到满意的时候,能够通过按下“C”键,
把收集的信息转换为主机列表,然后按照通常的方式工作。在下一节中将解释在sample方式下,本选项的作用。
-b,--broadping
在启动时利用广播ping,而不是ARP风暴来获得网络主机信息。
这种方法的可靠性差,准确性也低。有些主机不会响应广播ping(如windows),所在这种方式下,这些主机是不可见的。假如您想要扫描局域
网上的Linux主机,这个选项是很有用的。通常您能够把这个选项--list选项连用以便获得主机列表“ettercap -Nlb”
-D,--delay
网管网www_bitscn_com

假如您选择了ARP欺骗方式,能够利用这个选项来控制ARP响应之间的延迟秒数。假如您希望这种欺骗数据流不要过于集中,这个选项是很有帮助的。在大多数OS中,缺省的arp缓存有效时间间隔超过一分钟(在FreeBSD系统中为1200秒)。缺省的延迟为30秒。
-Z,--stormdelay
指定在arp风暴开始后arp请求之间的延迟微秒数。假如您希望扫描不要过于集中能够使用这个选项。许多IDS 对于过于大量的arp请求会产生报警信息,但是假如您用低一些的速率发送arp数据包,IDS将不会报告任何异常事件。缺省的延迟时间为1500微秒。
-S,--spoof
假如您想欺骗IDS,能够利用一个伪造的IP来进行局域网arp扫描。但是我们不能伪造源MAC地址,因为良好配置的交换机会阻断您的请求包。
-H,--hosts
指定在启动是仅扫描这些主机。
假如您希望仅对某些IP进行arp扫描的时候,能够选用这个选项。这样,您既能够从arp扫描中获得好处,又能够尽量保持低攻击性。甚至在您希望
采用PUBLIC ARP方式,但又想仅仅欺骗某几个主机的时候,这个选项也是很有用的。由于在拥有主机列表的情况下PUBLIC
ARP方式会自动转换为SMARTARP方式,只有这些主机被欺骗,能够保持其他主机的arp缓存不受影响。IP地址表的表示法为:点分制表示的IP地
址,地址之间用分号分隔(在他们之间没有空格),还能够用中横线表示一个IP地址范围或一个IP地址表(使用逗号)。 网管联盟bitsCN@com
例:
192.168.0.2-25 :从2到25
192.168.0.1,3,5 :主机1、3和5。
192.168.0.-3.1-10;192.168.4,5,7 :将要在子网192.168.0,192.168.1,192.168.2,192.168.3中扫描主机1到10,连同在子网192.168.4中扫描主机5和7。
-d,--dontresolve
在启动时不解决IP。
假如您在启动程式时遭遇疯狂的“Resolving n hostnames…”消息时,这个选项会有所帮助。这种情况是由于您的网络中的DNS很慢而造成的。
-I,--iface
用于任何操作所针对的网络接口。
您甚至能够指定一个网络别名,以便扫描和您的当前IP不同的子网。
-n,--netmask
用于扫描局域网络的网络掩码(以点分制表示)。
缺省的网络掩码为当前ifconfig中定义的掩码。但是,假如您的掩码为,比如255.255.0.0,那么假如您要在启动时进行arp扫描的话,鼓励您另外指定一个限制更强的掩码。
-e,--etterconf
使用配置文档,而不是命令行参数。
在软件的tar包中有一个etter.conf文档,其中包含一些配置范例,参考这些范例来了解怎样编写配置文档,在这些例子中给出了任何的指导
信息。通过配置文档,您能够选择性地禁止某个协议分析或把他转移到另一个端口。命令行选项和配置文档能够很灵活地混合使用,需要记住的是配置文档中的选
项压倒命令行选项,所以,假如在etter.conf指定了IFACE:eth0,并且您在启动程式的时候指定了“ettercap -i eth1
-e etter.conf”,那么最终的选择结果是eth0。 网管论坛bbs_bitsCN_com
注意:“-e etter.conf”选项必须在任何选项的后面出现,也就是说他必须是最后一个选项。
-g,--linktype
这个标志有两个补充功能,因此要注意他。
假如这个标志用于交互式方式,他不检查局域网的类型。另一方面,假如和命令行方式(-N)连用,他要对局域网进行检查,以了解他是否是个交换网。有时,假如在局域网内只有两台主机,这种发现方法有可能失败。
-j,--loadhosts
用于从指定的文档中加载主机表,该文档是通过-k选项创建的。
-k,--savehosts
把主机列表保存到文档中。
当目标网络中有很多主机,并且您不希望在每一次启动的时候都做一次arp风暴的时候,这个选项是很有帮助的。您只要指定这个选项,并把列表转储到
一个文档中。然后加载这个利用-j 选项从文档中加载这些信息。文档名的形式为:“netaddress_neymask.etl”
-v,--version
检查最新的ettercap版本。
任何的操作都在您的控制之下。每一个步骤都需要用户确认。利用这个选项ettercap将连接到
http://ettercap.sourceforge.net:80
web站点,并请求/latest.php,然后分析查询结果并和您的当前版本进行比较。假如有一个更新的版本可用,ettercap将询问您是否要需要
wget(必须在路径中)。假如您想要对任何的问题自动回答yes,增加选项-y。 网管bitscn_com
-h,--help
在屏幕上显示帮助信息,对每一个选项都有一个简短的描述。
静音方式选项(仅能够和-N选项连用)
-t,-proto
仅监听协议PROTO的数据包(缺省为TCP+UDP)。
这个选项仅在simple方式下有用,假如您以交互式方式启动ettercap,TCP和UDP数据包都将被监听。PROTO能够是tcp或udp或all。
-J,--onlypoison
这个选项使ettercap不监听任何数据流,但仅仅对目标进行欺骗。假如您需要利用ettercap进行欺骗,而用其他的软件tcpdump或ethereal进行监听时,能够利用这个选项(注意在这种方式下要使能IP_forwarding)。
另外一种用法是多目标监听。正如您所了解的,您能够利用ettercap监听两个目标之间的连接信息(ARPBASED),或某一个目标的进出信
息(SMART ARP)。利用这个选项,您能够同时监听若干目标(因为同时启动了多个程式)。启动第一个程式时选用SMART
ARP,并用-H选项限制smart功能仅针对您想要欺骗的主机进行(记住假如在欺骗中涉及了网关,必须在以smart方式运行的实例中指定他)。然后在
启动其他的“ettercap -J”。
-R,--reverse
监听除选择的连接以外的任何连接。假如您在一个远程主机上使用ettercap,并且需要监听除了您自己的从本地到远程的连接以外的任何其他连接时,能够选择这个选项。因为假如包含了这样的连接将会使ettercap监听自己的输出,并不断迭加上去。
网管bitscn_com
-O,passive
以被动的方式收集信息。在simple方式下,我们能够在许多方式中选择这个选项。“ettercap
-NO”将以半交互的方式启动ettercap,输入“h”来获得帮助信息。您能够查看收集的信息,也能够把他们记录到日志文档中,或简单地浏览分析的数
据包。“ettercap -NOL”和上面的方式相类似,但是他会自动地把数据记录到文档中,记录的时间间隔是5分钟。“ettercap
-NOLq”使ettercap每5分钟把日志写到文档中。您能够走开,抽支香烟,返回时就会有一个有关局域网的完整报告在等待着您…J
-p,--plugin
运行外部插件“NAME”
大多数插件需要一个目标主机,这只要在插件的名字后面指定目标主机就能够了。事实上,命令行上的主机解析中,第一个主机为DEST,SOURCE
也同样。为了获得可用的外部插件列表,使用“list”(不包括引号)作为插件的名字。由于ettercap
0.6.2提供了钩子插件系统,所以一些插件并不是作为单独的程式运行,他们能够和ettercap交互,能够通过接口或配置文档使能或禁止。有关插件的
周详信息连同怎样编写自己的插件,能够在README.PLUGING文档中找到。
-l,--list
列出局域网中的任何主机,报告每一个MAC地址。
通常和-b(ping广播)选项和-d(不解决主机名)选项连用。
网管u家u.bitsCN.com

-C,--collect
收集在命令行上指定的那些主机的任何用户和口令信息。
在配置文档(etter.conf)中配置口令收集器,假如需要的话,能够有选择性地禁止他们,或把他们转移到另一个端口。假如您不希望收集
SSH连接信息,但收集其他任何协议的数据的时候,这个选项很有用。假如您已知某一台主机在端口4567上提供telnet服务,只要把telnet解码
移动到4567/tcp就能够了。
-f,--fingerprint
对主机进行OS指纹收集。
这个选项利用和nmap所使用的相同的方法和数据库:Fyodor fyodor@insecure.org,所以引用一段其man手册页中的一段:
这个选项通过TCP/IP指纹来标识远程主机。换句话说,他通过一套技术来检测被扫描主机的网络协议栈的特征。他利用这些信息建立一个指纹,这个指纹将同已知OS指纹库相比较,从而确定所扫描主机的系统类型。
-f选项甚至能够向您提供被扫描主机所用的网络适配器的生产厂家。这些信息被存放在mac-fingerprints数据库中。
-x,--hexview
以十六进制数方式转储数据。
提示:在监听的时候,能够改变显示效果,只要按”x”或”h”键就能够实现按16进制数显示或按Ascii字符显示。
-L,--logtofile
假如这个参数单独使用的话,会把任何的数据保存到特定的文档中。他会为每一个连接建立一个单独的文档,在UNIX系统下文档名为YYYYMMDD-P-IP:PORT-IP:PORT.log,
网管bitscn_com
在Windows环境下的文档名为P-IP[PORT]-IP[PORT].log。假如和C参数连用,他会创建一个名为YYYYMMDD-collected-pass.log文档,其中记录了任何监听到的口令信息。
-q,--quiet
魔鬼化ettercap。
假如您希望以后台工作方式记录任何的数据,能够使用这个选项。这个选项将使ettercap脱离当前的tty,并把他配置为一个daemon。这
个选项必须和-NL(或-NCL)选项联合使用,否则的话没有任何作用。显然,还需要指定一种监听方式,因此这个选项还要和一个表示监听方式的选项相配
合。
-w,--newcert
为HTTPS中介攻击方式创建一个新的cert文档。
假如您想要利用社会工程方式获得的信息创建一个cert文档,能够使用这个选项。新创建的文档保存在当前工作目录下。为了长期替换缺省的cert文档(etter.ssl.crt),必须改写/usr.local/share/etter.ssl.crt。
-F,--filter
从文档FILENAME中加载过滤链。
过滤链文档是用伪XML格式编写的。您能够通过手工改写文档或通过ettercap的用户界面来让ettercap创建这个文档(在连接表界面中按’F’键)。假如您很熟悉XML语言分析,能够写自己的程式来建立过滤链文档。
过滤规则很简单:
假如 协议 源端口 目的端口 数据流 和规则匹配,在过滤器完成了他的响应 之后,跳转到在 域中定义的过滤器id,否则他跳转到 。假如这些域是空的,链就中断了。假如源端口和目的端口为0,意味着任意端口。在查找串中可一使用通配符(细节见README)。
网管u家u.bitscn@com
注意:这个选项使能了过滤器,假如需要禁止他,在监听过程中按“S”(源)或“D”(目的)。
注意:在命令行上,对主机的解析为:ettercap ?F etter.filter DEST SOURCE。所以第一个主机被绑定到目的链,第二个主机被绑定到源链。
重要注意事项:源链规则应用到从源发出的数据上,而不是发送到源的数据上,千万牢记!!!对于目的地址也是同样。
-c,--check
检查您是否被局域网上特定目标中的其他欺骗者所欺骗。
对命令行上的目标主机的解析是反向的。第一个主机是DEST,第二个主机是SOURCE。假如您在基于IP的方式下监听,这个顺序没有关系,因为源和目的都被忽略了。但是假如您在对连接进行过滤,这个顺序对于绑定到相关的过滤链就很重要了。
这个反向的顺序是由于和插件的更加灵活接口。因为有些插件需要指定目标主机,那么ettercap ?Np ooze victim这种形式要比ettercap ?Np ooze NOONE victim简单一些。
能够用点分制的格式来输入目标(192.168.0.1)或以域名的格式来输入目标(victim.mynet.org)。只有在-H选项中能够使用通配符。
交互模式
假如启动ettercap的时候没有指定-N选项,那么就自动选取了交互模式。假如在某些情况下不知到能够做什么,只要键入‘H’就能够弹出帮助画面。在那里能够看到可执行命令的消息列表。
中国网管论坛bbs.bitsCN.com
脱机工作
假如您想要分析由tcpdump或ethereal保存的libpcap格式文档,能够使用Script插件。能够用他来重构连接列表,进行口令
收集工作或被动OS指纹收集。要实现这些只要指定-T选项,然后以和收集网络数据同样的方式使用ettercap。为了保存tcpdump文档以便进行进
一步的分析,使用-Y选项。
               
               
               

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅