萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> 認識安全入侵的利器 嗅探軟件逐個了解

認識安全入侵的利器 嗅探軟件逐個了解

class="152900">   嗅探器(也稱網絡分析器)是種能夠察看網絡傳輸、將其解碼並為網管提供可用的數據的一種軟件。網管可以使用它提供的數據來診斷網絡存在的問題。而惡意用戶還會利用嗅探器來從網絡上獲取存儲在文本中的密碼。下面列舉一些常用的專用嗅探器:NAI嗅探器(商用)、Wireshark(以前叫Ethereal,是一種Linux,Windows以及其他平台上使用的開發源碼的圖形用戶界面的嗅探器)、TCPDump(開放源碼命令行嗅探器,在Unix類的操作系統上使用,如Linux或者FreeBSD),還有它的Windows版――WinDump。

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

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

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

  由於WiFi網絡使用的安全協議各有不同,因此嗅探WiFi網絡變得更加復雜。如果你的網卡支持混雜模式並且你能使用WEP(也就是說你知道WEP密鑰)連接到無線網絡,你就可以嗅探幾乎所有你想要獲得的信息。如果網絡使用的是WPA,就沒那麼容易了,因為即使你知道密碼,你也不一定能解碼那些你沒有參與的網絡對話中的所有數據。但是,你卻有可能進行ARP病毒攻擊或者使用其它的MitM(有人參與其中)攻擊,從而獲得數據路由。

  網管們應當注意嗅探器的很多合法用途。網管可以用它們找出網絡上出問題的計算機,比如占用太多帶寬,網絡設置錯誤或者正在運行惡意軟件等等。我覺得它們在找出安全攻擊方面非常有用,我可以用它們嗅探自己的服務器找出那些不正常的傳輸。學會用嗅探器來找出網絡的問題的話,每個系統管理員都能很好地完成自己的工作,我推薦你們使用Wireshark,因為它是免費的、跨平台的並且能夠找到大量的相關資料(可以從本文結尾的鏈接中找到更多信息)。

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

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

  即使是使用交換機的網絡,攻擊者也可以很容易地從恢復啟動CD中使用Dsniff或者Ettercap,來進行ARP欺騙並將傳輸轉為通過它們來進行。這些工具甚至能夠自動解析出用戶名和密碼,這給使用者提供極大的便利。如果攻擊者在網關和FTP服務器之間進行ARP欺騙,那麼它就能嗅探傳輸並在用戶試圖從站點外獲取數據的時候提取用戶名和密碼,使用SMTP和POP3也是一樣。即使是用SFTP、SSL以及SSH,仍然可以用Ettercap嗅探密碼,因為該工具可以代理那些類型的連接。用戶可能會收到警告說,他們試圖獲得的服務器的公共密鑰已經被修改,或者可能不合法,但是我們中有多少人只是將那些信息關閉而根本不讀呢?

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

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

  讓我們從Dug;Song的、支持Dsniff的ARPspoof程序開始吧。我使用的Unix版本,但是你可以找到Win32版本的。運行Dsniff最簡單的方法就是從恢復啟動CD啟動。首先你應該確定包轉發已經開啟,不然我們的機器會丟棄所有我們想要嗅探的主機之間的傳輸,導致服務無響應。我用的一些工具會自動進行這項工作(比如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。

  另一個很棒的工具是Ettercap,它相當於ARP病毒和密碼嗅探界的瑞士軍刀。我通常在非互動模式中使用它,但是默認情況下它的交互界面非常友好,使用起來很方便。如果你想要使用Ettercap來進行ARP病毒,你可以使用下面示范的命令例句。如果我們的目標是網絡上的所有主機,想要嗅探每個節點之間的所有傳輸,我們可以用下列命令:

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

  你應當謹慎的使用上面那段命令,因為如果把一個大網絡中所有的傳輸都通過一台很慢的計算機的
copyright © 萬盛學電腦網 all rights reserved