dsniff 和 Ettercap 和 bettercap 详解 - 网络嗅探工具包
?
官網:https://www.monkey.org/~dugsong/dsniff/
linux 嗅探工具 Dsniff 詳解:https://wenku.baidu.com/view/61a178886529647d272852a9.html
ettercap做arp欺騙和dns欺騙-----詳細教程:https://blog.csdn.net/qq_38228830/article/details/81989301
ettercap局域網內DNS欺騙:https://www.cnblogs.com/hkleak/p/5043063.html
Ettercap使用記錄之一:http://www.cnblogs.com/lsbs/p/3842679.html
bettercap--優秀的MITM攻擊測試框架:http://blog.csdn.net/c465869935/article/details/50900067
Ettercap的arpspoof方法:http://wxfplane.blog.51cto.com/10720689/1749951/
局域網攻擊軟件Ettercap中文說明:https://wenku.baidu.com/view/bea211156edb6f1aff001f92.html
強大的嗅探工具ettercap使用教程:我的欺騙規則:http://www.vfocus.net/art/20120214/9763.html
?
?
簡介
?
? ? ? ? Dsniff是一個著名的網絡嗅探工具包。高級口令嗅探工具。綜合性的網絡嗅探工具包。Dsniff其開發者DugSong早在1999年12月,以密歇根大學CITI研究室( CenterforInformationTechnologyIntegration)的研究成果為基礎, 開發了這個后來具有很大影響力的網絡安全工具包。 DugSong開發Dsniff的本意是揭示網絡通信的不安全性, 借助這個工具包, 網絡管理員可以對自己的網絡進行審計, 也包括滲透測試。 但萬事總有其兩面 性, Dsniff所帶來的負面作用也是“巨大”的,首先它是可以自由獲取的,任何擁有這個工具包的人都可能做“非正當”的事,其次, Dsniff里面的某 些工具,充分揭示了一些安全協議的“不安全性”, 例如針對SSH1和SSL的MITM( Man-In-The-Middle) 攻擊工具—SSHmitm和 Webmitm。 SSH1和SSL都是建立網絡通信加密通道的機制,向來被認為是很安全的,但人們在具體使用時,往往因為方便性上的考慮而忽視了某些環 節,造成實事上的不安全。 所以說, 最大的不安全性, 往往并不在于對安全的一無所知, 而在于過于相信自己的安全。
? ? ? ? DubSong在2000年12月發布了Dsniff的v2.3版本,該版本支持 OpenBSD、 Linux、 Solaris系統平臺。目前,最新版本是2001年3月發布的 v2.4b1的 Beta版。 Dsniff的下載網址:http://monkey.org/~dugsong/dsniff/?。除了針對Unix系統的版本,從網上也可以得到Windows平臺上運行的Dsniff早期版
?
dsniff工具介紹
dsniff是純粹被動的進行網絡活動監視的工具,包括: dsniff、filesnarf、mailsnarf 、msgsnarf、urlsnarf、webspy針對SSH和SSL的MITM ( Man-In-The-Middle)“攻擊”工具,包括sshmitm和webmitm發起主動欺騙的工具,包括:arpspoof、 dnsspoof、 macof其它工具,包括tcpkill、 tcpnice
?
Dsniff包中的工具基本上可以分為四類:
1. 純粹被動地進行網絡活動監視的工具,包括:dsniff、filesnarf、mailsnarf、msgsnarf、urlsnarf、webspy、sshow。
2. 針對SSH和SSL的MITM“攻擊”工具,包括sshmitm和webmitm。
3. 發起主動欺騙的工具,包括:arpspoof、dnsspoof、macof。
4. 其它工具,包括tcpkill、tcpnice。
?
dsniff
dsniff是一個密碼偵測工具, 他能夠自動分析端口上收到的某些協議的數據包, 并獲取相應的密碼。 dnisff支持的協議有 FTP,Telnet, SMTP,HTTP,POP,poppass, NNTP,IMAP,SNMP, LDAP, Rlogin, RIP, OSPF, PPTP MS-CHAP, NFS, VRRP, YP/NIS, SOCKS, X11, CVS, IRC, AIM, ICQ, Napster, PostgreSQL, Meeting Maker, Citrix ICA, Symantec pcAnywhere, NAI Sniffer,MicrosoftSMB,OracleSQL*Net,SybaseandMicrosoftSQL。
用法:dsniff [-c] [-d] [-m] [-n] [-i interface | -p pcapfile] [-s snaplen] [-f services] [-t trigger[,...]]] [-r|-wsavefile] [expression]選項-c 打開半雙工TCP流,允許在使用 arpspoof時進行正確的嗅探操作-d 啟動調試模式;-m 使用dsniff.magic文件,通過在magic文件中定義的特征,嘗試自動判斷協議-n 不把 IP 地址解析成主機名-i interface 指定網絡接口-p pcapfile 不是處理網絡上所觀察到的數據包的內容,而是處理給定捕獲數據包的PCAP文件。 -s snaplen 對報文的前snaplen個字節進行嗅探,而不是默認的1024字節;.-f services 以/etc/service格式從文件中加載觸發器(也就是口令嗅探的服務類型);-t trigger[,...]使用格式 port/proto=service 來加載一個以逗號界定的觸發器集(e.g. 80/tcp=http).dsniff –t 21/tcp=ftp,23/tcp=telnet –m-r savefile 從保存的文件中讀取會話(-w 選項 可以保存會話到文件)-w file 保存 會話 到文件中expression 指定一個 tcpdump(8) filter expression 來讓 sniff 選擇要嗅探的流量. 在掛起的信號中,dsniff會將當前的觸發器表轉儲到dsniff.services。FILES/usr/share/dsniff/dsniff.servicesDefault trigger table/usr/share/dsniff/dsniff.magicNetwork protocol magic參見;另請參閱arpspoof(8), libnids(3), services(5), magic(5)
?
filesnarf 和 mailsnarf 和?msgsnarf 和?urlsnarf 和?webspy 和?webspy
filesnarf 和 mailsnarf 和 msgsnarf 和 urlsnarf 和 webspy 和 webspy ?使用方式都 差不多。可以 使用 man 查看具體使用。
FILESNARF(8) System Manager's Manual FILESNARF(8)NAMEfilesnarf - sniff files from NFS trafficSYNOPSISfilesnarf [-i interface | -p pcapfile] [[-v] pattern [expression]]DESCRIPTIONfilesnarf saves files sniffed from NFS traffic in the current workingdirectory.OPTIONS-i interface 指定監聽接口-p pcapfile 處理捕獲的 包文件-v "反轉" 模式. 反轉匹配,選中不匹配的文件.pattern 指定正則表達式 expression 指定 一個要嗅探的流量的 tcpdump(8) 過濾表達式 SEE ALSOdsniff(8), nfsd(8)
?
filesnarf
filesnarf 可以嗅探網絡文件系統( NFS) 的流量, 并選定某個文件, 轉儲到本地當前工作目錄。
Tcpdump 可用于嗅探NFS流量。Filesnarf 工具可以真正的接收被嗅探的文件,并在系統上對其重新配置。某人在任何時候在網絡上通過NFS移動文件時,你都可以獲得該文件的一個副本。
同樣可以使用-i選項來指定網絡接口。
在命令行上,可以指定Tcpdump報文過濾器表達式,用于嗅探NFS流量,并且可以指定要匹配的文件模式
如:想嗅探 192.168.0.21上的mp3文件則
# filesnarf *.mp3 host 192.168.0.21
?
mailsnarf
milsnarf 可以嗅探 SMTP 和 POP 流量,并以Berkeley郵件格式輸出e-mail消息,轉儲選定的郵件內容到本地。
?
msgsnarf
msgsnarf 可以嗅探聊天軟件的聊天內容,包括 AOL,ICQ 2000, IRC, MSN Messenger, 或 YahooMessenger
?
urlsnarf
urlsnarf可以嗅探HTTP請求報文的內容,并以CLF(CommonLogFormat)通用日志格式輸出。這種格式是許多Web服務器所使用的,例如IIS和Apache,事后可以很方便的用一些日志分析工具來分析記錄結果。 Urlsnarf的工作方式就象這個工具箱中的其他嗅探程序一樣,它是根據web url工作的。
它將自己從http流量中嗅探到的任何url存儲到一個日志文件中,可以在以后對該日志文件進行分析。
它是查看在局域網上瀏覽信息的最簡便方法。
?
webspy
webspy指定一個要嗅探的主機, 如果指定主機發送HTTP請求, 打開網頁, webspy也會通過 netscape 瀏覽器在本地打開一個相同的網頁。
即將嗅探到的來自某個客戶端的URLs請求發送給本地瀏覽器顯示,可以達到“實時”監視網絡上HTTP活動的效果。 Dsniff中軟件的最后一個工具,主要是通過指定lan上主機ip地址,Webspy是將嗅探從該主機發源的web流量。無論任何時候,只要從這臺主機進入特定的一個url,Webspy都會在瀏覽器上加載相同的URL。
?
sshow
對嗅探到的SSH通信進行分析,解析其認證過程、交互會話的口令長度,以及命令行長度等信息。
?
?
SSH 中間人攻擊 sshmitm 和 SSL 中間人攻擊 webmitm
sshmitm
Dsniff還包含了大量mim竊取密碼的方式,在這種方式下即使是ssl方式https 和ssh都是可以被中途截取的,非常的強大。當然這種方式僅僅用于同一個局域網中。
Sshmitm 是Dsniff自帶的一個具有威脅的工具之一。如果你是在運行dnsspoof來偽造實際機器主機名,那么sshmitm可以重新定向到你的機器的ssh流量。因為它支持到ss1,所以這也是我們需要考慮把ssh升級到2的原因。
sshmitm是Dsniff自帶的一個具有威脅的工具之一。首先通過dnsspoof偽造實際機器主機名將攻擊目標主機的 SSH連接轉到本地,那么 sshmitm可以截獲來自主機的密鑰,并獲得被劫持連接中的所有信息解碼,然后重新轉發SSH流量到SSH服務器。sshmitm可以對某個 SSH會話發動 MITM( Monkey-In-The-Middle)攻擊(注意,這里的Monkey是Dsniff包 readme文件中的解析, 而不是常見的Man, 這種區別實際上是沒有“區別”, 也許就是因為Dsniff以猴子做為其標志的原因吧)。 通過 sshmitm, 攻擊者可以捕獲某
個SSH會話的登錄口令,甚至可以“劫持”整個會話過程(攻擊者在其主機上通過OpenSSL提供的代碼生成偽造的證 書, 以欺騙目標主機, 使之相信就是有效的通信另一方, 結果是,攻擊者主機成了SSH安全通道的中轉站)。 目前, 對于SSH1, 這種MITM攻擊已經構成了嚴重的威脅。 MITM并不是一個新的概念, 它是一種對認證及密鑰交換協議進行攻擊的有效手段。 通常, 在SSH會話中, 服務器首先會給客戶端發送其公鑰, 嚴 格來說, 這種密鑰的交換和管理應該是基于X.509這種公鑰基礎設施( PKI)的,但因為PKI本身的復雜性導致真正應用了這種公鑰管理機制的服務器非常 少,所以,通常情況下,服務器只是簡單的自己生成密鑰對,并將其中的公鑰發送給客戶端。客戶端收到服務器的公鑰后,必須獨立驗證其有效性。通常,使用 SSH的客戶端會由sysadmin或其它賬號來維護一個“密鑰/主機名”的本地數據庫,當首次與某個SSH服務器建立連接時,客戶端可能被事先配制成自 動接受并記錄服務器公鑰到本地數據庫中,這就導致可能發生MITM攻擊。其實,建立加密的安全網絡都存在一個基本的問題,無論如何,
某種程度上講,加密通 道的初始化連接總是建立在一個存在潛在危險的網絡之上的,如果密鑰交換機制并不健全,或者是根本就被忽略了,那之后建立起來的加密通道也形同虛設了。按道 理講, SSH之類的協議本身是沒有問題的, 只要嚴格按照標準來建立加密及密鑰交換管理機制( 例如PKI), 攻擊者是根本不會有可乘之機的, 可問題就在于, 許多時候, 為了使用上的方便, “復雜”的保證技術就被人們拋之腦后了。 當然, 一種協議如果其可用性并不很強, 也許本身就是問題, 現在, SSH2較SSH1 已經有了較大改進。具體來說, 在某個SSH連接建立之初,如果客戶端收到一個未知的服務器端公鑰, OpenSSH會有下列配置處理方式:自動增加該公鑰到本地數據庫; 發出下面列出的警告消息,并詢問用戶是添加該公鑰還是放棄連接;
------------------------------------------------------------------------
--WARNING:HOSTIDENTIFICATIONHASCHANGED!--
------------------------------------------------------------------------
ITISPOSSIBLETHATSOMEONEISDOINGSOMETHINGNASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the host-key has just been changed. Please contact your system administrator.?
拒絕接受。如果客戶端對未知公鑰的驗證被取消了 ( 或者客戶端配置本身已經旁路掉了這個過程), 或者如果客戶端保存已知主機CA證書的緩存被“毒害”了, 就 很有可能導致攻擊者發起MITM攻擊。從根本上講,要防止MITM方式的攻擊,用戶自身加強安全措施才是關鍵, 例如, 密鑰的初始交換也許可以換做其它方式 ( 比如軟盤), 嚴格管理本地的證書列表數據庫, 對于出現的告警提示, 應該仔細甄別, 防止第三方的欺騙行為
?
webmitm
webmitm與sshmitm類似,也需要dnsspoof的“配合”,不同的是,webmitm“劫持”的是HTTP和HTTPS會話過程,捕獲SSL的加密通信
?
?
arpspoof
arp毒化的原理,簡單的說就是偽造MAC地址與IP的對應關系,導致數據包由中間人轉發出去。
詳細介紹請看:http://www.2cto.com/Article/201207/144532.html
arp 毒化有雙向(remote)和單向(oneway)兩種方式。
雙向方式將對兩個目標的ARP緩存都進行毒化,對兩者之間的通信進行監聽。
單向方式只會監聽從第一個目標到第二個目標的單向通信內容。
一般來說,我們會選擇使用雙向欺騙的方式來獲取所有的數據包進行嗅探分析。
若目標主機開啟了ARP防火墻怎么辦?直接欺騙會引發報警且無效果。這時就是單向ARP毒化大顯神威的時候了。只要路由器沒有對IP和MAC進行綁定,我們就可以只欺騙路由器,使從路由器發給目標主機的數據包經過中間人,完成我們的攻擊。
root@kali:~# arpspoof -h
Version: 2.4
Usage: arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host名字arpspoof - 在交換式網絡截獲包
概要arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host
描述 arpspoof 通過偽造ARP響應,重定向局域網中一個目標主機(或所有主機)上的數據包 到 局域網中的另一個主機上。這在交換式網絡上嗅探流量是一個非常有效的方法注意:內核IP轉發(或一個實現相同功能的用戶程序,如 fragrouter(8))必須提前打開。選項-i 網卡接口 指定使用的網卡接口-c own|host|both 指定在恢復arp配置時使用的硬件地址;在清理時,可以用自己的地址和主機的地址發送數據包。用一個假的硬件地址發送數據包可能會破壞與某些switch/ap/bridge 配置的連接,但是它比使用自己的地址更可靠,這是arpspoof事后清理的默認方式。-t target 指定要 ARP毒化 的主機(如果沒有指定,默認局域網所有主機). 可以重復指定多個主機。-r 毒化兩個主機(主機和目標)以捕獲兩個方向的流量。(只在與 -t 聯合使用才有效)host 指定你希望攔截數據包的主機(通常是本地網關)。參見;另請參閱dsniff(8), fragrouter(8)// 使用ARP毒化,重定向受害者的流量傳送給攻擊者。
root@bt:~# arpspoof -i eth0 -t 192.168.1.5 192.168.1.1 // 第二個ARP毒化攻擊使網關的數據重定向到攻擊者的機器(流量由網關到攻擊者再到受攻擊者)
root@bt:~# arpspoof -i eth0 -t 192.168.1.1 192.168.1.2 root@bt:~# arpspoof -i eth0 -t 192.168.1.5 192.168.1.1
root@bt:~# arpspoof -i eth0 -t 192.168.1.1 192.168.1.5
arpspoof 啟用 arp欺騙,將自己網卡的IP地址偽裝成指定IP地址的MAC持續不斷的發送假的ARP響應包給一臺或多臺主機,以“毒害”其ARP緩存表。一旦成功,即可以用別的嗅探工具來“接收”發送到本地的數據包。與Ettercap不同的是, arpspoof并不進行真正的“嗅探”,它只是簡單的進行ARP欺騙,本地主機 必須啟動內核的IP Forwarding功能(或者使用fragrouter這樣的工具),否則,所有“轉向”發到本地的數據包就如同進了黑洞, 正常的網絡通信將無法進行, 而一旦啟動了本地的IP Forwarding,內核將自動對本地收到的目的IP卻是別處的數據包進行轉發,正常的通信自然可以進行。這樣,就可以進行后續的工作,包括分析嗅 探得到的數據包、修改數據包中的某些信息以重新轉發等等。
Ettercap則不光進行ARP欺騙,它還要做后續的許多工作,包括分析嗅探得到的數據包、修改數據包中的某些信息以重新轉發等等。
在Linux中,缺省是禁止IP Forwarding的,可以使用下面命令啟動它:
啟用IP轉發,輸入下面命令(PS:利用Linux主機的路由功能):
root@bt:~# cat /proc/sys/net/ipv4/ip_forward
root@bt:~# echo 1 > /proc/sys/net/ipv4/ip_forward
root@bt:~# cat /proc/sys/net/ipv4/ip_forward
或者 修改下面文件
修改 #vi /etc/sysctl.conf 修改 net.ipv4.ip_forward=1
修改后運行 #sysctl –p 命令使得內核改變立即生效;
一旦啟動了本地的 IP Forwarding,內核將自動對本地收到的目的IP是別處的數據包進行轉發,
(同時向數據包的源地址發送ICMP重定向報文, 當然, 由于啟用了ARP欺騙, 這個重定向報文是不起作用的)。
?
arpspoof?[-i?interface] [-t?target]?host????如 果不指定tagget則向網絡中所有的主機發送欺騙
?
dnsspoof
root@kali:~# dnsspoof -h
Version: 2.4
用法: dnsspoof [-i interface] [-f hostsfile] [expression]描述 dnsspoof啟用DNS欺騙,如果dnsspoof嗅探到局域網內有DNS請求數據包,它會分析其內容,并用偽造的DNS響應包來回復請求者。如果是請求解析某個域名,dnsspoof會讓域名重新指向另一個IP地址(黑客所控制的主機),如果反向IP指針解析,也會返回一個偽造的域名.在dnsspoof的命令選項中,可以指定一個主機列表文件,文件格式與/etc/hosts相同,如果不指定該文件,dnsspoof會返回本地的IP給域名解析請求者。選項-i interface 指定使用的網卡-f hostsfile 指定要欺騙的網址。如果不指定hostsfile,將返回本機的IP地址給攻擊者expression 指定一個tcpdump(8)過濾器表達式來選擇要嗅探的流量。就是指定一個Tcpdump準則 的 包過濾文件/usr/share/dsniff/dnsspoof.hostsSample hosts file.參見;另請參閱dsniff(8), hosts(5) // man 8 dsniff 或者 man 5 hosts
root@bt:#dnsspoof -i eth0 -f /usr/h22.hosts
dnsspoof?[-i?interface] [-f?hostsfile] [expression]???這里-f 可以指定主機列表文件,文件格式與/usr/local/lib/dnsspoof.hosts相同,如果不指定該文件,dnsspoof會返回本地的 IP給域名解析請求者
這里本地主機會搶先代替DNS服務器來相應查詢,前提是本地主機先回答DNS查詢,如果因為 網絡問題,DNS服務器先發送了應答,DNS欺騙就不能生效了
?
macof
?
macof?用來進行 MAC flooding,可以用來使交換機的MAC表溢出,對于以后收到的數據包以廣播方式發送。
注意:在進行MAC泛洪之前就存在于交換機MAC表中的條目不會被覆蓋,只能等到這些條目自然老化
在本地網絡中發送大量的隨機MAC地址的數據包,可以指定源IP、目的IP、源端口、目的端口,
以MAC洪水的方式來導致某些交換機喪失“交換”能力,以達到共享式嗅探的目的。
NAMEmacof - 用隨機 MAC 地址 洪泛 交換式局域網絡用法macof [-i interface] [-s src] [-d dst] [-e tha] [-x sport] [-y dport][-n times]選項-i interface 指定發送的網卡接口-s src 指定源 IP 地址-d dst 指定目的 IP 地址-e tha 指定目標硬件地址-x sport 指定 TCP 源端口-y dport 指定 TCP 目的端口-n times 指定發送包 的 個數任何未指定的選項的值都是隨機生成的。參見;另請參閱dsniff(8)
macof?[-i?interface] [-ssrc] [-ddst] [-e?tha] [-xsport] [-ydport] [-n?times]
?
tcpkill
tcpkill能夠切斷指定的TCP會話連接,主要是基于TCP的三次握手過程。?中斷特定的TCP連接。
root@kali:~# tcpkill -h
Version: 2.4
Usage: tcpkill [-i interface] [-1..9] expressionNAMEtcpkill - kill TCP connections on a LAN選項-i interface 指定監聽接口-1...9 指定在殺死連接時使用的蠻力的程度。為了在移動的接收窗口中找到一個RST,快速連接可能需要一個更高的數字。默認是3。expression 指定一個tcpdump(8)過濾器表達式來選擇要殺死的連接SEE ALSOdsniff(8), tcpnice(8)
?
這里,當tcpkill檢測到兩邊的TCP連接后,會同時想兩邊(冒充對方)發送tcp reset報文,重置連接。
?
tcpnice
tcpnice能夠通過在添加活動的流量,降低指定的LAN上的TCP連接的速度
tcpnice?[-I] [-iinterface] [-nincrement]?expression???這里的-n后面可以跟1-20,代表降低的速度,1為原速,20為最低
?
?
其它交換網絡嗅探器
Ettercap
官網:http://www.ettercap-project.org
Ettercap簡要原理介紹以及使用說明:http://www.2cto.com/article/201301/183322.html
Ettercap使用記錄之一 、二、三:http://www.cnblogs.com/lsbs/p/3842679.html?
man ettercap:https://linux.die.net/man/8/ettercap
?
?
用法:
用法: ettercap [選項] [目標1] [目標2]目標寫法:(可以查看 man ettercap 獲取更詳細信息)
目標寫法格式是: MAC/IPs/PORTs 。依照這個規則,我們把目標可以精確到特定的主機和端口上。MAC、IP、和PORT為三個條件,為空代表ANY。
"//80"即表示對任意MAC、任意IP上的80端口進行嗅探。一般來說,MAC部分留空,除非你愿意去手動輸入那一長串的MAC地址。因此,我們可以只用IP部分來確定目標主機。注意:如果 IPv6 啟用,目標是 MAC/IPs/IPv6/PORTs 這種形式。 即 mac地址,ip地址,端口號中間用 "/" 符號隔開,留空不寫表示 “ANY”,即所有。當IP有多個的時候,可以用英文","分隔不同的C段ip。可以用"-"表示連續的ip。可以用";"分隔不同表達形式的ip。
舉例如下:"10.0.0.1-5;10.0.1.33" 表示 ip 10.0.0.1, 2, 3, 4, 5 和 10.0.1.33
端口部分也有類似的寫法,看例子:"20-25,80,110" 表示 20, 21, 22, 23, 24, 25, 80 和 110例如: /192.168.1.1/ 表示 192.168.1.1 的所有端口號aa:bb:cc:dd:ee:ff//80 表示 aa:bb:cc:dd:ee:ff 的80端口. 其中多個mac地址用英文符號分號 ';' 隔開。多個ip地址和端口號可以用符號 '-' 表示連續 和 英文符號分號 ';' 隔開;e.g."10.0.0.1-5;10.0.1.33" 表示 10.0.0.1, 2, 3, 4, 5 和 10.0.1.33 "20-25,80,110" 表示 20, 21, 22, 23, 24, 25, 80 和 110/192.168.1.100-120;192.168.2.130/ 表示 /192.168.1.100,101,102,103,~~120;192.168.12.130/ 這兩個目標是為了過濾從一個到另一個之間的流量,反之亦然(因為連接是雙向的)。"//80" 表示任意MAC地址,任意 IP ,但是端口是80 的目標。"/10.0.0.1/" 表示任意 MAC地址,IP是10.0.0.1,任意端口 的 目標 "//" 表示 "子網中所有主機"。注意:可以在命令行用 -R 選項 反向 匹配 目標. So if you want to sniff如果要嗅探除了10.0.0.1目標的所有進出流量。可以這樣寫:"./ettercap -R /10.0.0.1/"注意:目標也就是對局域網初始掃描掃描的主機。你可以通過netmask來限制只掃描網絡中的一部分主機。結果是掃描兩部分目標后后并的結果。還記得沒有指定目標就意味著“沒有目標”,但是指定“//”意味著“子網中的所有主機”。嗅探 和 攻擊 選項:-M, --mitm <method:args> 中間人攻擊,即兩臺終端間進行欺騙。(后面跟的參數可以參看 man ettercap)-o, --only-mitm 不嗅探,只執行中間人攻擊-b, --broadcast 嗅探廣播數據包-B, --bridge <IFACE> 使用橋接嗅探 (需要2個網絡接口)。即 雙網卡之間進行欺騙-p, --nopromisc 不把網絡接口設置成混雜模式-S, --nosslmitm 不偽造SSL證書。即不使用ssl中間人攻擊-u, --unoffensive 不轉發數據包-r, --read <file> 從 pcapfile <file> 讀取數據-f, --pcapfilter <string> set the pcap filter <string>-R, --reversed 反轉目標匹配。(即 匹配所有和目標不匹配的)-t, --proto <proto> 設置要嗅探的協議(默認嗅探所有)--certificate <file> ssl中間人攻擊使用指定的 證書文件 --private-key <file> ssl中間人攻擊使用指定的 私鑰文件 運行界面類型:-T, --text 文本模式顯示 -q, --quiet 安靜模式,不顯示嗅探數據 -s, --script <CMD> 加載腳本 -C, --curses curses-UI模式 -D, --daemon 守護模式(后臺模式)(no GUI)-G, --gtk GTK-UI模式 日志記錄選項:-w, --write <file> 把嗅探到的數據寫入到 pcapfile <file>-L, --log <logfile> 把所有數據包保存<logfile>日志文件中 -l, --log-info <logfile> 僅僅記錄被動信息到這個<logfile>日志文件中-m, --log-msg <logfile> 將所有的消息記錄到這個<logfile>日志中。-c, --compress 使用gzip壓縮日志文件可視化選項:-d, --dns 把IP地址解析成主機名-V, --visual <format> 顯示方式 -e, --regex <regex> 使用一個正則表達式 -E, --ext-headers 為每個pck打印擴展標題-Q, --superquiet 超級安靜模式,啥信息都不顯示,只保存 LUA腳本 選項:--lua-script <script1>,[<script2>,...] 使用逗號分割lua腳本--lua-args n1=v1,[n2=v2,...] 使用逗號分割傳給lua腳本的參數通用基本選項:-i, --iface <iface> 指定網絡接口-I, --liface 顯示所有網絡接口-Y, --secondary <ifaces> 后備網卡-n, --netmask <netmask> 在網絡接口上強制使用這個 <netmask> 網絡掩碼-A, --address <address> ip地址,針對一網卡多ip的情況 -P, --plugin <plugin> 載入插件-F, --filter <file> 載入過濾器文件 (content filter)-z, --silent 不進行arp毒化和主機掃描 -6, --ip6scan 在鏈路上發送 ICMPv6 探測和發現 IPv6 節點-j, --load-hosts <file> 從文件中載入主機列表-k, --save-hosts <file> 保存主機列表到文件中-W, --wifi-key <wkey> 載入 WIFI 密碼(wep或wpa)-a, --config <config> 載入并使用一個非默認配置文件標準選項:-v, --version 打印版本信息并退出-h, --help 顯示幫助信息
Ettercap有兩種運行方式,UNIFIED 和 BRIDGED。
其中,UNIFIED的方式是以中間人方式嗅探;BRIDGED方式是在雙網卡情況下,嗅探兩塊網卡之間的數據包。
UNIFIED方式的大致原理:
UNIFIED方式是同時欺騙A和B,把原本要發給對方的數據包發送到第三者C上,然后由C再轉發給目標。
這樣C就充當了一個中間人的角色。因為數據包會通過C那里,所以C可以對數據包進行分析處理,導致了原本只屬于A和B的信息泄露給了C。
UNIFIED方式將完成以上欺騙并對數據包分析。
Ettercap劫持的是A和B之間的通信,在Ettercap眼中,A和B的關系是對等的。
?
BRIDGED方式原理:
BRIDGED方式 有點像筆記本電腦上有兩個網卡,一個有線網卡一個無線網卡。可以將有線網卡的internet連接共享給無線網卡,這樣筆記本就變成了一個無線ap。
無線網卡產生的所有數據流量都將傳送給有線網卡。BRIDGED方式ettercap嗅探的就是這兩塊網卡之間的數據包。
一般而言,我們會使用UNIFIED方式。其運行參數為 -M(M是MITM的首字母,為中間人攻擊的縮寫)。
Ettercap,它相當于ARP病毒和密碼嗅探界的瑞士軍刀。通常在非互動模式中使用它,但是默認情況下它的交互界面非常友好,使用起來很方便。
如果我們的目標是網絡上的所有主機,想要嗅探每個節點之間的所有傳輸,我們可以用下列命令: ettercap -T -q -M ARP // //
你應當謹慎的使用上面那段命令,因為如果把一個大網絡中所有的傳輸都通過一臺很慢的計算機的話,那么這很有可能使整個網絡連接癱瘓。
可以找個替罪羊,來看看 Ip 地址為 192.168.1.1 的主機,我們可以使用如下命令:ettercap -T -q -M ARP /192.168.1.1/ //
如果192.168.1.1是網關,我們應該可以看到所有的輸出傳輸。下面是這些命令行選項的功能:
-T 告訴Ettercap使用文字界面,我最喜歡這個選項,因為GUI模式太復雜了。
-q 讓Ettercap安靜些,換句話說就是少些冗長的文字報告。
-M 讓Ettercap我們想要使用的MITM(人參與其中)方式,本例中是ARP病毒。
中間人攻擊-ARP毒化:http://www.2cto.com/article/201207/144532.html
常見的參數組合:
#arp毒化eth0所在的網段,安靜模式文本顯示
ettercap -Tqi eth0 -M ARP // // #監聽10.0.0.1的ftp,ssh,telnet信息,并保存到本地
ettercap -Tzq /10.0.0.1/21,22,23 -w hack.pcap #對192.168.1.120進行dns欺騙,使用默認網卡eth0,文本模式安靜顯示
ettercap -Tq -P dns_spoof -M arp /192.168.1.120/ // #使用過濾并監聽10.0.0.2在80端口的所有通信,安靜模式文本顯示,保存數據到本地
ettercap -Tqi eth0 -L sniffed_data -F filter.ef -M arp:remote /10.0.0.2/80 // 在控制臺模式下(-T)不使用混雜模式(-p),你只會看到自己的通信。
ettercap -Tp在控制臺模式下(-T),不使用ARP初始化(-z),不顯示數據包內容(-q安靜模式),但是會顯示用戶名和密碼和其他消息。
ettercap -Tzq在控制臺模式下(-T),加載主機列表(-j),對目標執行arp毒化中間人攻擊(-M arp)
ettercap -T -j /tmp/victims -M arp /10.0.0.1-7/ /10.0.0.10-20/在控制臺模式下(-T),對整個局域網執行ARP毒化攻擊(-M arp)
ettercap -T -M arp // //在控制臺模式下(-T),執行ARP雙向欺騙(-M arp:remote)
ettercap -T -M arp:remote /192.168.1.1/ /192.168.1.2-10/在控制臺模式下(-T),不使用ARP初始化(-z),使用安靜模式(-q),監聽所有主機110端口(pop3協議端口)
ettercap -Tzq //110在控制臺模式下(-T),不進行ARP初始化(-z),使用安靜模式(-q),監聽目標10.0.0.1的21,22,23端口(FTP、SSH、TELNET)
ettercap -Tzq /10.0.0.1/21,22,23打印輸出可用插件列表。
ettercap -P list
ettercap局域網內DNS欺騙:http://www.cnblogs.com/lvchenfeng/p/5596572.html
強大的嗅探工具ettercap使用教程:http://www.yunsec.net/a/security/web/invasion/2012/0127/9982.html
?
?
bettercap?
bettercap 官網 DOC:https://www.bettercap.org/
Bettercap 使用指南:http://xiaix.me/bettercap-shi-yong-zhi-nan/
完整,模塊化,輕量級,易擴展的MITM框架 – bettercap:http://www.freebuf.com/sectool/73287.html
_ _ _
| |__ ___| |_| |_ ___ _ __ ___ __ _ _ __
| '_ \ / _ \ __| __/ _ \ '__/ __/ _` | '_ \
| |_) | __/ |_| || __/ | | (_| (_| | |_) |
|_.__/ \___|\__|\__\___|_| \___\__,_| .__/|_| v1.6.1b
http://bettercap.org/更多示例和幫助文檔 https://bettercap.org/docs/用法: bettercap [options]主要選項:-I, --interface IFACE 網卡接口名 - 默認: eth0--use-mac ADDRESS 執行攻擊前指定網卡的 MAC 地址.--random-mac 執行攻擊前使用隨機的 MAC 地址.-G, --gateway ADDRESS 手動指定網關地址。如果不指定,則使用當前的網關地址 -T, --target ADDRESS1,ADDRESS2 目標 IP 地址,如果不指定,則目標就是所有的子網地址。--ignore ADDRESS1,ADDRESS2 要忽略的 IP 地址。--no-discovery 不要主動搜索主機,只使用當前的ARP緩存,默認為false。--no-target-nbns 禁用目標NBNS主機名解析。--packet-throttle NUMBER 秒數(可以是一個十進制數)在每個數據包之間等待發送的時間。--check-updates 將檢查是否有更新可用,然后退出。-R, --rainbows 彩虹的輸出,因為這是一個非常有用的東西(requires the "lolize" gem to be installed)。-h, --help 顯示可用的選項。日志選項:-O, --log LOG_FILE 將所有消息記錄到一個文件中,如果沒有指定日志消息將只會打印到shell中。--log-timestamp 在每一行日志中啟用時間戳,默認禁用-D, --debug 啟用調試日志記錄。--silent 廢棄所有不是錯誤或警告的信息,默認為false.即只記錄錯誤和警告日志。欺騙選項:-S, --spoofer NAME 使用欺騙模塊。 可用的模塊: NONE, ICMP, ARP, NDP 。 默認: IPv4 是 ARP, IPv6 是 NDP.--no-spoofing 禁用欺騙。 等價于 --spoofer NONE.--full-duplex 啟用雙工 MITM。這將使 bettercap 在 目標 和 路由器 之間進行雙向中間人攻擊--kill 這個 開關 使 目標連接 被殺死,而不是轉發數據包.嗅探選項:-X, --sniffer 啟用 嗅探.-L, --local Parse packets coming from/to the address of this computer ( 注意: -X 必須設置 ), 默認false.--sniffer-source FILE 載入 捕獲的包 PCAP 文件( will enable sniffer ).--sniffer-output FILE 保存 捕獲的包 PCAP 到文件中 ( will enable sniffer ).--sniffer-filter EXPRESSION Configure the sniffer to use this BPF filter ( will enable sniffer ).-P, --parsers PARSERS Comma separated list of packet parsers to enable, '*' for all ( NOTE: Will set -X to true ), available: POST, PGSQL, IRC, MPD, REDIS, URL, WHATSAPP, SNMP, COOKIE, DICT, MYSQL, TEAMVIEWER, MAIL, SNPP, HTTPS, HTTPAUTH, NTLMSS, FTP, DHCP, RLOGIN, NNTP - default: *--disable-parsers PARSERS Comma separated list of packet parsers to disable ( NOTE: Will set -X to true )--custom-parser EXPRESSION Use a custom regular expression in order to capture and show sniffed data ( NOTE: Will set -X to true ).代理選項:TCP:--tcp-proxy 啟用 TCP 代理 ( requires other --tcp-proxy-* options to be specified ).--tcp-proxy-module MODULE Ruby TCP proxy module to load.--tcp-proxy-port PORT Set local TCP proxy port, default to 2222 .--tcp-proxy-upstream ADDRESS:PORTSet TCP proxy upstream server address and port.--tcp-proxy-upstream-address ADDRESSSet TCP proxy upstream server address.--tcp-proxy-upstream-port PORTSet TCP proxy upstream server port.UDP:--udp-proxy 啟用 UDP 代理 ( requires other --udp-proxy-* options to be specified ).--udp-proxy-module MODULE Ruby UDP proxy module to load.--udp-proxy-port PORT Set local UDP proxy port, default to 3333 .--udp-proxy-upstream ADDRESS:PORTSet UDP proxy upstream server address and port.--udp-proxy-upstream-address ADDRESSSet UDP proxy upstream server address.--udp-proxy-upstream-port PORTSet UDP proxy upstream server port.HTTP:--proxy Enable HTTP proxy and redirects all HTTP requests to it, default to false.--proxy-port PORT Set HTTP proxy port, default to 8080.--allow-local-connections Allow direct connections to the proxy instance, default to false.--no-sslstrip Disable SSLStrip.--log-http-response Log HTTP responses.--no-http-logs Suppress HTTP requests and responses logs.--proxy-module MODULE Ruby proxy module to load, either a custom file or one of the following: injectcss, injectjs, redirect, injecthtml.--http-ports PORT1,PORT2 Comma separated list of HTTP ports to redirect to the proxy, default to 80.--proxy-upstream-address ADDRESSIf set, only requests coming from this server address will be redirected to the HTTP/HTTPS proxies.HTTPS:--proxy-https Enable HTTPS proxy and redirects all HTTPS requests to it, default to false.--proxy-https-port PORT Set HTTPS proxy port, default to 8083.--proxy-pem FILE Use a custom PEM CA certificate file for the HTTPS proxy, default to /root/.bettercap/bettercap-ca.pem .--https-ports PORT1,PORT2 Comma separated list of HTTPS ports to redirect to the proxy, default to 443.CUSTOM:--custom-proxy ADDRESS Use a custom HTTP upstream proxy instead of the builtin one.--custom-proxy-port PORT Specify a port for the custom HTTP upstream proxy, default to 8080.--custom-https-proxy ADDRESS Use a custom HTTPS upstream proxy instead of the builtin one.--custom-https-proxy-port PORTSpecify a port for the custom HTTPS upstream proxy, default to 8083.--custom-redirection RULE Apply a custom port redirection, the format of the rule is PROTOCOL ORIGINAL_PORT NEW_PORT. For instance TCP 21 2100 will redirect all TCP traffic going to port 21, to port 2100.服務器選項:--httpd Enable HTTP server, default to false.--httpd-port PORT Set HTTP server port, default to 8081.--httpd-path PATH Set HTTP server path, default to ./ .--dns FILE Enable DNS server and use this file as a hosts resolution table.--dns-port PORT Set DNS server port, default to 5300.
事實上你使用的不僅僅是一款工具,或許還會使用到arpspoof進行Arp欺騙,mitmproxy攔截HTTP內容并注入你的payload等等。對于我來說,我很討厭進行一項簡單的攻擊卻需要使用一大堆的工具來進行操作。
?
Cain
Cain,這個Windows用戶會覺得很好用。總之,它功能強大,操作簡單。如果你喜歡漂亮的圖形界面,Cain就是你很好的選擇之一。它不像Ettercap那么多選項,但是很酷也有很多Windows附加功能。
?
Driftnet
還有為了查看特定內容的專門的嗅探器。Driftnet 能夠分析出人們上網看到的圖片。
?
?
使用 Dsniff 和 Ettercap 快速演示 ARP 欺騙
? ? ? ? 在現代的局域網當中,交換式局域網是主流,廣播式的局域網已經或者不在存在,以前要嗅探局域網絡上傳輸的信息只需將網卡設置為混合模式,通過捕獲數據包的軟件,就可以截取。現在交換式以太網或者局域網中,交換機通過查看路由表(不嚴格的說法)發送信息。要想截獲兩臺主機中傳遞的信息可以通過 arp 欺騙獲得。
在linux下使用arpspoof和dsniff欺騙的操作如下
首先打開linux自帶的路由轉發功能
編輯 /proc/sys/net/ipv4/ip-forward 文件
echo 1 > /proc/sys/net/ipv4/ip-forward打開 arpspoof
arpspoof -t 你要欺騙的主機ip地址 網關ip地址(這里你可以定向的你想要的ip地址) &(在后臺運行)打開 dsniff
使用默認的捕獲表
dsniff -c -f /usr/share/dsniff/dsniff.services (當然這里你可以自己定制需要捕獲端口的規則)
具體寫法可以 cat /usr/share/dsniff/dsniff.services 查看編寫的規則 首先你應該確定包轉發已經開啟,不然我們的機器會丟棄所有我們想要嗅探的主機之間的傳輸,導致服務無響應。
我用的一些工具會自動進行這項工作(比如Ettercap),但是保險起見,你也許會希望自己來做這件事。
根據操作系統的不同,你可以使用如下的命令:
Linux:
echo 1 > /proc/sys/net/ipv4/ip_forward
BSD:
sysctl -w net.inet.ip.forwarding=1
現在你的計算機將會轉發所有的傳輸,現在你可以開始ARP欺騙了。如果想要嗅探一個主機和網關之間的所有傳輸,并查看它發送到網絡上的雙向傳輸的所有數據。
可以使用如下2個命令行:
arpspoof -t 192.168.1.1 192.168.1.2 & >/dev/null
arpspoof -t 192.168.1.2 192.168.1.1 & >/dev/null“& >/dev/nul”部分是為了使它在終端運行起來更容易,但是為了debug,你可能想要忽略它。現在你可以使用你想要的任何套件來嗅探連接。新手的話,我推薦使用Dsniff,它支持ARPspoof來嗅探純文本密碼。
用Dsniff開始嗅探,你只需退出到命令窗口并輸入:dsniff
Dsniff找到用戶名和密碼后,它會將它們顯示在屏幕上。
如果你想要查看所有其他傳輸,我推薦你使用TCPDump或者 Wireshark。如果想要停止ARP欺騙,輸入如下命令:
killall arpspoof
這會關閉上面啟動的2個 Arpspoof。
?
?
?
總結
以上是生活随笔為你收集整理的dsniff 和 Ettercap 和 bettercap 详解 - 网络嗅探工具包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CF1458C Latin Square
- 下一篇: Codeforces Round #70