明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

認(rèn)識(shí)黑客入侵的利器 嗅探軟件逐個(gè)知道

[摘要]嗅探器(也稱網(wǎng)絡(luò)分析器)是種能夠察看網(wǎng)絡(luò)傳輸、將其解碼并為網(wǎng)管提供可用的數(shù)據(jù)的一種軟件。 網(wǎng)管可以使用它提供的數(shù)據(jù)來診斷網(wǎng)絡(luò)存在的問題。 而惡意用戶還會(huì)利用嗅探器來從網(wǎng)絡(luò)上獲取存儲(chǔ)在文本中的密碼...

嗅探器(也稱網(wǎng)絡(luò)分析器)是種能夠察看網(wǎng)絡(luò)傳輸、將其解碼并為網(wǎng)管提供可用的數(shù)據(jù)的一種軟件。 網(wǎng)管可以使用它提供的數(shù)據(jù)來診斷網(wǎng)絡(luò)存在的問題。 而惡意用戶還會(huì)利用嗅探器來從網(wǎng)絡(luò)上獲取存儲(chǔ)在文本中的密碼。 下面列舉一些常用的專用嗅探器:NAI嗅探器(商用)、Wireshark(以前叫Ethereal, 是一種Linux, Windows以及其他平臺(tái)上使用的開發(fā)源碼的圖形用戶界面的嗅探器)、TCPDump(開放源碼命令行嗅探器, 在Unix類的操作系統(tǒng)上使用, 如Linux或者FreeBSD), 還有它的Windows版——WinDump。

  首先我們來說明一下一些網(wǎng)絡(luò)基本知識(shí)。 大多數(shù)的以太網(wǎng)都是一根總線的拓?fù)浣Y(jié)構(gòu), 使用同軸電纜或者雙絞線和hub連通。 網(wǎng)絡(luò)上的所有節(jié)點(diǎn)(計(jì)算機(jī)和其他設(shè)備)都可以通過同樣的線路通信, 并且使用稱為載波監(jiān)聽多路訪問/沖突檢測(CSMA/CD)的方案依次發(fā)送數(shù)據(jù)。 你可以把CSMA/CD看作是在一個(gè)很吵鬧的宴會(huì)中的兩人對話, 你需要等一會(huì)兒, 等別人說話的間歇才有機(jī)會(huì)發(fā)言。 網(wǎng)絡(luò)上的所有節(jié)點(diǎn)都有自己唯一的MAC(媒體訪問控制)地址, 他們使用該地址互相發(fā)送信息包。 通常, 節(jié)點(diǎn)只會(huì)關(guān)注目的地是自己的MAC地址的那些信息包。 但是如果網(wǎng)卡被設(shè)置成混雜模式的話, 那它就會(huì)察看它連接的線路上的所有數(shù)據(jù)包。

  為了減少?zèng)_突數(shù)量、降低嗅探不屬于某節(jié)點(diǎn)的數(shù)據(jù)的可能性, 大多數(shù)網(wǎng)絡(luò)都使用了交換機(jī)。 在網(wǎng)絡(luò)中, hub是種無源設(shè)備, 它會(huì)將接收到的所有傳輸發(fā)送到它的所有端口。 而交換機(jī)則察看它所連接的所有節(jié)點(diǎn)的MAC地址以及所在端口, 然后把那些數(shù)據(jù)包只發(fā)給它的目標(biāo)節(jié)點(diǎn)。 交換機(jī)大大降低了網(wǎng)路中的沖突數(shù)量, 增大了網(wǎng)絡(luò)的吞吐量。 理論上, 使用交換機(jī)的網(wǎng)絡(luò)中, 每個(gè)節(jié)點(diǎn)只能收到廣播消息(發(fā)給局域網(wǎng)上所有計(jì)算機(jī)的消息)以及專門發(fā)送給它的MAC地址的數(shù)據(jù)包, 還有偶爾出現(xiàn)的不知道目標(biāo)地址的數(shù)據(jù)包。 但是即使在局域網(wǎng)中使用交換機(jī), 它還是有可能被人使用某些交換機(jī)上的鏡像端口而嗅探(這些鏡像端口本來是網(wǎng)管分析網(wǎng)絡(luò)問題時(shí)使用的), 嗅探者可以誤導(dǎo)交換機(jī)使其將數(shù)據(jù)映射給所有端口或者使用一種稱為ARP病毒的技術(shù)(后面會(huì)詳細(xì)講到)。

  以上講述的是以太網(wǎng)絡(luò)的一些基本知識(shí), 而WiFi(801.11a/801.11b/801.11g/801.11n)則與之完全不同。 無線局域網(wǎng)很像使用hub的以太局域網(wǎng)。 局域網(wǎng)中所有計(jì)算機(jī)都能看到發(fā)送給別的計(jì)算機(jī)的數(shù)據(jù), 但通常他們可以設(shè)置成忽略這些信息。 (事實(shí)上, 比這復(fù)雜, 但是我篇幅有限, 就不詳細(xì)講那錯(cuò)綜復(fù)雜的80.211網(wǎng)絡(luò)了)。 但如果網(wǎng)卡是設(shè)置成混雜模式的話, 那么它就不會(huì)忽略發(fā)送給其他計(jì)算機(jī)的數(shù)據(jù), 而是會(huì)察看這些數(shù)據(jù), 允許使用嗅探器的用戶看到附在同一訪問點(diǎn)的發(fā)送給其他用戶的數(shù)據(jù)。 混雜模式在Windows和Linux(或者其他類似Unix的操作系統(tǒng))的有線網(wǎng)卡上運(yùn)行得很有效, 但是并不是所有的無線網(wǎng)卡都能很好地支持該模式(比如Intel的叫做IPW2200的Centrino 802.11g芯片)。 如果嗅探器的網(wǎng)卡不支持混雜模式, 那么嗅探者就得把它附到無線網(wǎng)絡(luò)的WAP(無線接入點(diǎn))上才能看到其他數(shù)據(jù)。 如果攻擊者使用的是Linux(或者類似Unix的操作系統(tǒng)), 如果網(wǎng)卡支持的話, 它可能可以使用監(jiān)聽模式。 在監(jiān)聽模式下, 無線網(wǎng)卡直接監(jiān)聽無線電波中的原始信息包而無需WAP的輔助。 從攻擊者角度看, 監(jiān)聽模式的好處是:由于不需要WAP, 他們的活動(dòng)不會(huì)留下任何痕跡, 也不用在網(wǎng)絡(luò)上發(fā)送數(shù)據(jù)包。

  由于WiFi網(wǎng)絡(luò)使用的安全協(xié)議各有不同, 因此嗅探WiFi網(wǎng)絡(luò)變得更加復(fù)雜。 如果你的網(wǎng)卡支持混雜模式并且你能使用WEP(也就是說你知道WEP密鑰)連接到無線網(wǎng)絡(luò), 你就可以嗅探幾乎所有你想要獲得的信息。 如果網(wǎng)絡(luò)使用的是WPA, 就沒那么容易了, 因?yàn)榧词鼓阒烂艽a, 你也不一定能解碼那些你沒有參與的網(wǎng)絡(luò)對話中的所有數(shù)據(jù)。 但是, 你卻有可能進(jìn)行ARP病毒攻擊或者使用其它的MitM(有人參與其中)攻擊, 從而獲得數(shù)據(jù)路由。

  網(wǎng)管們應(yīng)當(dāng)注意嗅探器的很多合法用途。 網(wǎng)管可以用它們找出網(wǎng)絡(luò)上出問題的計(jì)算機(jī), 比如占用太多帶寬, 網(wǎng)絡(luò)設(shè)置錯(cuò)誤或者正在運(yùn)行惡意軟件等等。 我覺得它們在找出黑客攻擊方面非常有用, 我可以用它們嗅探自己的服務(wù)器找出那些不正常的傳輸。 學(xué)會(huì)用嗅探器來找出網(wǎng)絡(luò)的問題的話, 每個(gè)系統(tǒng)管理員都能很好地完成自己的工作, 我推薦你們使用Wireshark, 因?yàn)樗敲赓M(fèi)的、跨平臺(tái)的并且能夠找到大量的相關(guān)資料(可以從本文結(jié)尾的鏈接中找到更多信息)。

  那些想要繞過安全措施的人也可以用嗅探器。 很多流行的應(yīng)用協(xié)議把登陸憑證(用戶名和密碼)以純文本的形式傳遞或者使用加密性差的形式傳送。 這些不安全的協(xié)議包括FTP、Telnet、POP3、SMTP還有HTTP基本驗(yàn)證。 這種情況下應(yīng)盡量使用替代它們的SFTP, SSH(安全保護(hù)套件), 以及HTTPS(SSL)。 也許你很難從FTP協(xié)議切換到別的協(xié)議, 因?yàn)槭褂孟馭FTP這樣更安全的協(xié)議的客戶端并不一定總是有。 較新版本的Windows(命令行的ftp.exe以及圖形用戶界面形式的瀏覽器)都支持FTP客戶端, 但是你也可以下載支持SFTP的Filezilla和PSFTP的免費(fèi)客戶端。 有些嗅探器擁有很強(qiáng)的提取密碼的能力, 比如Cain, Dsniff以及Ettercap。 這三個(gè)都是免費(fèi)或者開放源碼的。 Cain只支持Windows而Dsniff和Ettercap通常在Unix環(huán)境中運(yùn)行, 但也有相應(yīng)的Windows版本。

  ARP欺騙/ARP病毒

  ARP是指地址解析協(xié)議, 它允許網(wǎng)絡(luò)將IP地址解析成MAC地址。 基本上, ARP是這樣工作的:當(dāng)某個(gè)使用局域網(wǎng)IP的主機(jī)想要與另一臺(tái)主機(jī)聯(lián)絡(luò)的時(shí)候, 它需要那臺(tái)主機(jī)的MAC地址。 首先, 它會(huì)查詢自己的ARP緩存(想要查看你的ARP緩存, 在命令行中輸入ARP), 看看是否已經(jīng)知道那臺(tái)主機(jī)的MAC地址, 如果沒有, 它會(huì)發(fā)出廣播ARP請求, 詢問誰擁有我正在找的主機(jī)的IP地址? 如果擁有該地址的主機(jī)收到該ARP請求, 它就會(huì)用自己的MAC地址響應(yīng), 于是兩臺(tái)主機(jī)就可以使用IP進(jìn)行對話了。 通常, 在像以太網(wǎng)這樣使用Hub或者801.11b標(biāo)準(zhǔn)的總線網(wǎng)絡(luò)中, 所有NICs(網(wǎng)絡(luò)接口卡)為混雜模式的主機(jī)都能收到所有的傳輸, 但是在使用交換機(jī)的網(wǎng)絡(luò)中卻有所不同。 交換機(jī)會(huì)查看發(fā)送給它的數(shù)據(jù), 并只把數(shù)據(jù)包傳給它的目標(biāo)MAC地址所屬主機(jī)。 使用交換機(jī)的網(wǎng)絡(luò)更安全一些并且能夠提高網(wǎng)速, 因?yàn)樗话褦?shù)據(jù)包發(fā)給需要去的地方。 但是仍然有突破這種網(wǎng)絡(luò)的方法。 使用Arpspoof(Dsniff的部分功能), Ettercap或者Cain我們就可以欺騙局域網(wǎng)中的其他主機(jī), 告訴它們, 我們就是它們要找的那個(gè)主機(jī), 把它們傳輸通過我們來轉(zhuǎn)發(fā)。

  即使是使用交換機(jī)的網(wǎng)絡(luò), 攻擊者也可以很容易地從恢復(fù)啟動(dòng)CD中使用Dsniff或者Ettercap, 來進(jìn)行ARP欺騙并將傳輸轉(zhuǎn)為通過它們來進(jìn)行。 這些工具甚至能夠自動(dòng)解析出用戶名和密碼, 這給使用者提供極大的便利。 如果攻擊者在網(wǎng)關(guān)和FTP服務(wù)器之間進(jìn)行ARP欺騙, 那么它就能嗅探傳輸并在用戶試圖從站點(diǎn)外獲取數(shù)據(jù)的時(shí)候提取用戶名和密碼, 使用SMTP和POP3也是一樣。 即使是用SFTP、SSL以及SSH, 仍然可以用Ettercap嗅探密碼, 因?yàn)樵摴ぞ呖梢源砟切╊愋偷倪B接。 用戶可能會(huì)收到警告說, 他們試圖獲得的服務(wù)器的公共密鑰已經(jīng)被修改, 或者可能不合法, 但是我們中有多少人只是將那些信息關(guān)閉而根本不讀呢?

  圖1中的圖片說明了ARP欺騙/ARP病毒如何工作的。 基本上, 攻擊者跟Alan的電腦說, 他就是Brain的電腦, 反之亦然。 這樣, 攻擊者把Alan和Brain之間的網(wǎng)絡(luò)傳輸全部接收過來了。 一旦攻擊者在兩個(gè)節(jié)點(diǎn)之間進(jìn)行了ARP欺騙, 他就可以用任何他喜歡的工具進(jìn)行嗅探(TCPDump、Wireshark、Ngrep等等)。 在網(wǎng)關(guān)和電腦之間進(jìn)行ARP欺騙的話, 攻擊者可以看到電腦正在發(fā)送和從網(wǎng)上接收的所有數(shù)據(jù)。 本文中我只會(huì)講到如何使用這些工具。

  使用Dsniff和Ettercap快速演示ARP欺騙

  讓我們從Dug Song的、支持Dsniff的ARPspoof程序開始吧。 我使用的Unix版本, 但是你可以找到Win32版本的。 運(yùn)行Dsniff最簡單的方法就是從恢復(fù)啟動(dòng)CD啟動(dòng)。 首先你應(yīng)該確定包轉(zhuǎn)發(fā)已經(jīng)開啟, 不然我們的機(jī)器會(huì)丟棄所有我們想要嗅探的主機(jī)之間的傳輸, 導(dǎo)致服務(wù)無響應(yīng)。 我用的一些工具會(huì)自動(dòng)進(jìn)行這項(xiàng)工作(比如Ettercap), 但是保險(xiǎn)起見, 你也許會(huì)希望自己來做這件事。 根據(jù)操作系統(tǒng)的不同, 你可以使用如下的命令:

  Linux:

  echo 1 > /proc/sys/net/ipv4/ip_forward

  BSD:

  sysctl -w net.inet.ip.forwarding=1

  現(xiàn)在你的計(jì)算機(jī)將把轉(zhuǎn)發(fā)所有的傳輸, 現(xiàn)在你可以開始ARP欺騙了。 我們假設(shè)你想要嗅探一個(gè)主機(jī)和網(wǎng)關(guān)之間的所有傳輸, 這樣你就可以看到它發(fā)送到網(wǎng)絡(luò)上的所有數(shù)據(jù)。 如果想要獲得雙向的所有傳輸, 你應(yīng)當(dāng)使用如下2個(gè)命令行:

  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”部分是為了使它在終端運(yùn)行起來更容易, 但是為了debug, 你可能想要忽略它。 現(xiàn)在你可以使用你想要的任何套件來嗅探連接。 新手的話, 我推薦使用Dsniff, 它支持ARPspoof來嗅探純文本密碼。 用Dsniff開始嗅探, 你只需退出到命令窗口并輸入:

  dsniff

  Dsniff找到用戶名和密碼后, 它會(huì)將它們顯示在屏幕上。 如果你想要查看所有其他傳輸, 我推薦你使用TCPDump或者 Wireshark。 如果想要停止ARP欺騙, 輸入如下命令:

  killall arpspoof

  這會(huì)關(guān)閉上面啟動(dòng)的2個(gè)Arpspoof。

  另一個(gè)很棒的工具是Ettercap, 它相當(dāng)于ARP病毒和密碼嗅探界的瑞士軍刀。 我通常在非互動(dòng)模式中使用它, 但是默認(rèn)情況下它的交互界面非常友好, 使用起來很方便。 如果你想要使用Ettercap來進(jìn)行ARP病毒, 你可以使用下面示范的命令例句。 如果我們的目標(biāo)是網(wǎng)絡(luò)上的所有主機(jī), 想要嗅探每個(gè)節(jié)點(diǎn)之間的所有傳輸, 我們可以用下列命令:

  ettercap -T -q -M ARP // //

  你應(yīng)當(dāng)謹(jǐn)慎的使用上面那段命令, 因?yàn)槿绻岩粋(gè)大網(wǎng)絡(luò)中所有的傳輸都通過一臺(tái)很慢的計(jì)算機(jī)的話, 那么這很有可能使整個(gè)網(wǎng)絡(luò)連接癱瘓。

我們可以找個(gè)替罪羊, 來看看Ip地址為192.168.1.1的主機(jī), 我們可以使用如下命令:

  ettercap -T -q -M ARP /192.168.1.1/ //

  如果192.168.1.1是網(wǎng)關(guān), 我們應(yīng)該可以看到所有的輸出傳輸。 下面是這些命令行選項(xiàng)的功能:

  -T 告訴Ettercap使用文字界面, 我最喜歡這個(gè)選項(xiàng), 因?yàn)镚UI模式太復(fù)雜了。

  -q 讓Ettercap安靜些, 換句話說就是少些冗長的文字報(bào)告。

  -M 讓Ettercap我們想要使用的MITM(人參與其中)方式, 本例中是ARP病毒。

  其他工具

  我還想說很多其他的工具。 首先就是Cain, 這個(gè)Windows用戶會(huì)覺得很好用。 總之, 它功能強(qiáng)大, 操作簡單。

  如果你喜歡漂亮的圖形界面, Cain就是你很好的選擇之一。 它不像Ettercap那么多選項(xiàng), 但是很酷也有很多Windows附加功能。

  還有為了查看特定內(nèi)容的專門的嗅探器。 Driftnet能夠分析出人們上網(wǎng)看到的圖片。

  這些也是嗅探器比如P0f, 它讓你被動(dòng)得知網(wǎng)絡(luò)傳輸?shù)牟僮飨到y(tǒng)。

  以上說的只是眾多專門的嗅探器中的一小部分, 僅僅是冰山的一角。

  減輕嗅探攻擊的危害

  人們可以使用不少方法來緩解嗅探攻擊的危害:

  1.不使用像HTTp驗(yàn)證以及Telnet這些不安全的協(xié)議。 事實(shí)上, 你應(yīng)當(dāng)嗅探自己的網(wǎng)絡(luò), 看看這些工具都列出了哪些能提取的密碼。

  2.如果你不得不使用不安全的協(xié)議, 那你最好能把敏感信息加密后再傳送出去。

  3.察看臨界工作站和服務(wù)器之間的靜態(tài)ARP表。 這種方法不易維持, 但是可以限制arp欺騙。

  4.運(yùn)行ARPWatch等軟件來檢測你的網(wǎng)絡(luò)物理地址, 看看它是不是變成指向嗅探器的了。

  5.運(yùn)行Sniffdet和Sentinel來檢測網(wǎng)卡是否出于混雜模式, 是否運(yùn)行了嗅探軟件。

  6.讓從外部進(jìn)入你的設(shè)備的、使用Wi-Fi的筆記本使用VPN來連接到網(wǎng)絡(luò)。

  7.鎖住工作站, 這樣用戶就無法安裝嗅探軟件或者像Knoppix那樣從CD運(yùn)行嗅探軟件。

  8.把員工工作站和服務(wù)器與公共終端隔離到不同的局域網(wǎng)中。

  希望這篇文章能給你提供些許幫助。


上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識(shí),學(xué)習(xí)了安全知識(shí),幾乎可以讓你免費(fèi)電腦中毒的煩擾。