前言
Ettercap有四種界面:Text,Curses,GTK2,Daemonize。
- -T 命令行界面,只顯示字符。通常與配套的參數有-q(安靜模式),加上該選項,則不會顯示抓到的數據包內容。
- Curses和GTK2是圖形化界面。
- Daemonize是守護模式,相當於在后台運行。
ettercap運行方式
ettercap有兩種運行方式:UNIFIED和BRIDGED。
其中,UNIFIED的方式是以中間人方式嗅探;BRIDGED方式是在雙網卡情況下,嗅探兩塊網卡之間的數據包。
UNIFED方式的大致原理為同時欺騙A和B,把原本要發送給對方的數據包發送到第三者C上,然后由C再轉發給目標。這樣C就充當了一個中間人的角色。因為數據包會通過C那里,所以由C再轉發給目標。這樣C就充當了一個中間人的角色。因為數據包會通過C那里,所以C可以對數據包進行分析處理,導致原本只屬於A和B的信息泄露給了C。
BRIDGED方式有點像筆記本電腦上的兩個網卡,一個有線網卡,一個無線網卡。我們可以將有線網卡的internet連接共享給無線網卡,這樣筆記本就變成了一個無線ap。無線網卡產生的所有數據包流量都將傳送給有線網卡。BRIDGED方式ettercap嗅探的就是這兩塊網卡之間的數據包。
ettercap常用的功能
- 在已有的連接上注入數據: 可以在維持原有連接不變的基礎上想服務器或客戶端注入數據,以達到模擬命令或響應的目的。
- SSH1支持:可以捕獲SSH1連接上的User和Pass信息,甚至其他數據。(全雙工)
- HTTPS支持:可以監聽http SSL連接上加密數據,甚至通過Proxy的連接。
- 監聽通過GRE通道的遠程通信:可以通過監聽來自遠程cisco路由器的GRE通道的數據流,並對它進行中間人攻擊。
- Plug-in支持:通過Ettercap的API可以創建自己的Plug-in。
- 口令收集:可以收集以下協議的口令信息:TELNET、FTP、POP、RLOGIN、SSH1、ICQ、SMB、MySQL、HTTP、NNTP、X11、NAPSTER、IRC、RIP、BGP、SOCK5、IMAP4、VNC、LDAP、NFS、SNMP、HALFLIFE、QUAKE3、MSNYMSG(不久還會有新的協議獲得支持).
- 數據包過濾和丟棄:可以建立一個查找特定字符串(甚至包括十六進制數)的過濾鏈,根據這個過濾鏈對TCP/UDP數據包進行過濾並用自己的數據替換這些數據包,或丟棄整個數據包。
- 被動的OS指紋提取:可以被動地(不必主動發送數據包)獲取局域網上計算機系統的詳細信息,包括操作系統版本、運行的服務、打開的端口、IP地址、MAC地址和網卡的生產廠家等信息。
- OS指紋:可以提取被控主機的OS指紋以及它的網卡信息(利用NMAP Fyodor數據庫).
- 殺死一個連接:殺死當前連接表中的連接,甚至所有連接。
- 數據包生產:可以創建和發送偽造的數據包,允許你偽造從以太報頭到應用層的所有信息。
- 把捕獲的數據流綁定到一個本地端口:可以通過一個客戶端軟件連接到該端口上,進行進一步地協議解碼或向其中注入數據(僅適用於基於ARP的方式)。
ettercap中間人攻擊
- arp毒化
arp毒化有雙向(remote)和單向(oneway)兩種方式。
雙向方式將對兩個目標的ARP緩存都進行毒化,對兩者之間的通信進行監聽。單向方式只會監聽從第一個目標到第二個目標的單向通信內容。
若目標主機開啟了ARP防火牆,那么直接欺騙會引發報警且無效果。這時就是單向ARP毒化起作用的時候了。只要路由器沒有對IP和MAC進行綁定,我們就可以只欺騙路由器,使從路由器發給目標主機的數據包經過中間人,完成我們的攻擊。
- ICMP欺騙
icmp欺騙即基於重定向(redirect)的路由欺騙技術。其基本原理是欺騙其他的主機,本機才是最近的路由,因此其他主機會將數據包發送到本機,然后本機再重新將其轉發到真正的路由器上。於是,我們便可以對這些數據包進行監聽。
icmp欺騙不適用於在交換機下的環境。若本機在交換機的環境下,則最好選擇arp毒化的方式進行攻擊。
icmp欺騙方式的參數是真實路由器的MAC和IP。參數形式為(MAC/IP)。舉例如下:
-M icmp:00:11:22:33:44:55/10.0.0.1
- DHCP spoofing
DHCP spoofing的基本原理是本機偽裝成DHCP服務器,代替真實的DHCP服務器給新接入網絡的主機動態分配ip。這樣的缺點是可能會與真實的DHCP服務器重復分配IP,造成沖突,而且只能針對新接入的主機,不影響到之前的主機。
DHCP spoofing方式的參數是可以分配出去的ip地址池,子網掩碼和DNS,參數形式為(ip_pool/netmask/dns)。舉例如下:
-M dhcp:192.168.0.30,35,50-60/255.255.255.0/192.168.0.1,對應的含義為將分配192.168.0.30,35,50-60之間的地址,子網掩碼為255.255.255.0,DNS服務器為192.168.0.1.
- Port Stealing
此攻擊方式適用的環境是在交換機下,且路由器中ip和mac綁定無法進行arp欺騙。其基本思想是,既然無法欺騙路由器的IP和MAC對應關系,那么就欺騙交換機。這樣,原本應該通過交換機某一端口到達目標主機的數據包被傳入了攻擊者的端口。
由於本方法只能用於交換環境,且會產生大量的數據包,嚴重影響網絡狀況,用之間最好三思。
目標寫法
目標寫法為:mac/IPs/PORTs,或mac/IPs/Ipv6/PORTs,即mac地址,ip地址,端口號。留空不寫表示"ANY",即所有;多個mac地址之間用";"隔開;多個IP地址和端口號可以用符號"-"表示連續和英文符號分號";"隔開;如/192.168.1.100-200;192.168.2.130/ ; 當ip有多個的時候,可以用","分隔不同的C段ip。
注意點:
- ettercap並不會轉發數據包,轉發數據包的是操作系統,因此,在中間人攻擊時需要啟用操作系統的數據包轉發功能。
- sysctl -w net.ipv4.ip_forward =1這樣設置之后,當前系統就能實現包轉發,但下次啟動計算機時將失效。
- 在配置文件/etc/sysctl.conf中寫入:net.ipv4.ip_forward = 1.這樣就不會在重啟的時候失效。
- 用戶還可以使用如下命令查看當前系統是否支持包轉發:sysctl net.ipv4.ip_forward
- 參考鏈接:http://www.cnblogs.com/gunl/archive/2010/09/14/1826234.htm