sniffer(嗅探器)是一種常用的收集有用資料方法,這些資料可以是使用者的帳號和密碼,可以是一些商用機密資料等等。snifffer可以作為能夠捕獲網路報文的裝置,iss為sniffer這樣定義:sniffer是利用計算機的網路介面截獲目的地為其他計算機的資料報文的一種工具。
嗅探器與一般的鍵盤捕獲程式不同。鍵盤捕獲程式捕獲在終端上輸入的鍵值,而嗅探器則捕獲真實的網路報文。
為了對sniffer的工作原理有乙個深入的了解,我們先簡單介紹一下hub與網絡卡的原理。
預備知識 hub(集線器)與交換機工作原理
由於乙太網等很多網路(常見hub連線的內部網)是基於匯流排方式,物理上是廣播的,就是當乙個機器發給另乙個機器的資料,hub先收到然後把它接收到的資料再發給其他的(來的那個口不發了)每乙個口,所以在hub下面同一網段的所有機器的網絡卡都能接收到資料。
交換機的內部單片程式能記住每個口的mac位址,以後就該哪個機器接收就發往哪個口,而不是像共享hub那樣發給所有的口,所以交換機下只有該接收資料的機器的網絡卡能接收到資料,當然廣播包還是發往所有口。顯然交換機的工作模式使得兩個機器傳輸資料的時候其他機器別的口也占用了,所以交換機決定了同一網段同一時間只能有兩個機器進行資料通訊,而交換機上連線的兩個機器傳輸資料的時候別的口沒有占用,所以別的口之間也可以同時傳輸。這就是交換機與hub不同的兩個地方,hub是同一時間只能乙個機器發資料並且所有機器都可以接收,只要不是廣播資料交換機同一時間可以有對機器進行資料傳輸並且資料是私有的。
網絡卡工作原理
再講講網絡卡的工作原理。網絡卡收到傳輸來的資料,網絡卡內的單片程式先接收資料頭的目的mac位址,根據計算機上的網絡卡驅動程式設定的接收模式判斷該不該接收,認為該接收就在接收後產生中斷訊號通知cpu,認為不該接收就丟棄不管,所以不該接收的資料網絡卡就截斷了,計算機根本就不知道。cpu得到中斷訊號產生中斷,作業系統就根據網絡卡驅動程式中設定的網絡卡中斷程式位址呼叫驅動程式接收資料,驅動程式接收資料後放入訊號堆疊讓作業系統處理。
區域網如何工作
資料在網路上是以很小的稱為幀(frame)的單位傳輸的幀由好幾部分組成,不同的部分執行不同的功能。(例如,乙太網的前12個位元組存放的是源和目的的位址,這些會告訴網路:資料的**和去處。乙太網幀的其他部分存放實際的使用者資料、tcp/ip的報文頭或ipx報文頭等)。
幀通過特定的網路驅動程式進行成型,然後通過網絡卡傳送到網線上。通過網線到達它們的目的機器,在目的機器的一端執行相反的過程。接收端機器的乙太網卡捕獲到這些幀,並告訴作業系統幀的到達,然後對其進行儲存。就是在這個傳輸和接收的過程中,嗅探器會造成安全方面的問題。
通常在區域網(lan)中同乙個網段的所有網路介面都有訪問在物理**上傳輸的所有資料的能力,而每個網路介面都還應該有乙個硬體位址,該硬體位址不同於網路中存在的其他網路介面的硬體位址,同時,每個網路至少還要乙個廣播位址。(代表所有的介面位址),在正常情況下,乙個合法的網路介面應該只響應這樣的兩種資料幀:
1、幀的目標區域具有和本地網路介面相匹配的硬體位址。
2、幀的目標區域具有「廣播位址」。
在接受到上面兩種情況的資料報時,網**過cpu產生乙個硬體中斷,該中斷能引起作業系統注意,然後將幀中所包含的資料傳送給系統進一步處理。
當採用hub,使用者傳送乙個報文時,這些報文就會傳送到lan上所有可用的機器。在一般情況下,網路上所有的機器都可以「聽」到通過的流量,但對不屬於自己的報文則不予響應(換句話說,機器a不會捕獲屬於機器b的資料,而是簡單的忽略這些資料)。
如果區域網中某台機器的網路介面處於雜收(promiscuous)模式(即網絡卡可以接收其收到的所有資料報),那麼它就可以捕獲網路上所有的報文和幀,如果一台機器被配置成這樣的方式,它(包括其軟體)就是乙個嗅探器。
sniffer sniffer原理
在介紹完前面的內容後就可以來說明sniffer的原理了。首先,要知道sniffer要捕獲的東西必須是要物理訊號能收到的報文資訊。顯然只要通知網絡卡接收其收到的所有包(一般叫做雜收promiscuous模式:指網路上的所有裝置都對匯流排上傳送的資料進行偵聽,並不僅僅是它們自己的資料。),在hub下就能接收到這個網段的所有包,但是交換機下就只能是自己的包加上廣播包。
要想在交換機下接收別人的包,那就要讓其發往你的機器所在口。交換機記住乙個口的mac是通過接收來自這個口的資料後並記住其源mac,就像乙個機器的ip與mac對應的arp列表,交換機維護乙個物理口與mac的表,所以可以欺騙交換機的。可以發乙個包設定源mac是你想接收的機器的mac,那麼交換機就把你機器的網線插的物理口與那個mac對應起來了,以後發給那個mac的包就發往你的網線插口了,也就是你的網絡卡可以sniffer到了。注意這物理口與mac的表與機器的arp表一樣是動態重新整理的,那機器發包後交換hub就又記住他的口了,所以實際上是兩個在爭,這只能應用在只要收聽少量包就可以的場合。
內部網基於ip的通訊可以用arp欺騙別人機器讓其傳送給你的機器,如果要想不影響原來兩方的通訊,可以欺騙兩方,讓其都發給你的機器再由你的機器**,相當於做中間人,這用arp加上程式設計很容易實現。並且現在很多裝置支援遠端管理,有很多交換機可以設定乙個口監聽別的口,不過這就要管理許可權了。
利用這一點,可以將一台計算機的網路連線設定為接受所有乙太網匯流排上的資料,從而實現sniffer。sniffer就是一種能將本地網絡卡狀態設成『雜收』狀態的軟體,當網絡卡處於這種「雜收」方式時,該網絡卡具備「廣播位址」,它對遇到的每乙個幀都產生乙個硬體中斷以便提醒作業系統處理流經該物理**上的每乙個報文包。(絕大多數的網絡卡具備置成雜收方式的能力)
可見,sniffer工作在網路環境中的底層,它會攔截所有的正在網路上傳送的資料,並且通過相應的軟體處理,可以實時分析這些資料的內容,進而分析所處的網路狀態和整體布局。值得注意的是:sniffer是極其安靜的,它是一種消極的安全攻擊。
嗅探器在功能和設計方面有很多不同。有些只能分析一種協議,而另一些可能能夠分析幾百種協議。一般情況下,大多數的嗅探器至少能夠分析下面的協議:標準乙太網、tcp/ip、ipx。
嗅探器造成的危害
sniffing是作用在網路基礎結構的底層。通常情況下, 使用者並不直接和該層打交道,有些甚至不知道有這一層存在。所以,應該說sniffer的危害是相當之大的,通常,使用sniffer是在網路中進行欺騙的開始。它可能造成的危害:
嗅探器能夠捕獲口令。這大概是絕大多數非法使用sniffer的理由,sniffer可以記錄到明文傳送的使用者名稱和口令。能夠捕獲專用的或者機密的資訊。比如金融帳號,許多使用者很放心在網上使用自己的信用卡或現金帳號,然而sniffer可以很輕鬆截獲在網上傳送的使用者姓名、口令、信用卡號碼、截止日期、帳號和pin。比如**機密或敏感的資訊資料,通過攔截資料報,入侵者可以很方便記錄別人之間敏感的資訊傳送,或者乾脆攔截整個的email會話過程。可以用來危害網路鄰居的安全,或者用來獲取更高階別的訪問許可權窺探低階的協議資訊。
這是很可怕的事,通過對底層的資訊協議記錄,比如記錄兩台主機之間的網路介面位址、遠端網路介面ip位址、ip路由資訊和tcp連線的位元組順序號碼等。這些資訊由非法入侵的人掌握後將對網路安全構成極大的危害,通常有人用sniffer收集這些資訊只有乙個原因:他正要進行一次欺騙(通常的ip位址欺騙就要求你準確插入tcp連線的位元組順序號),如果某人很關心這個問題,那麼sniffer對他來說只是前奏,今後的問題要大得多。(對於高階的黑客而言,這是使用sniffer的唯一理由吧)
事實上,如果在網路上存在非授權的嗅探器就意味著你的系統已經暴露在別人面前了。
一般sniffer只嗅探每個報文的前200到300個位元組。使用者名稱和口令都包含在這一部分中,這是我們關心的真正部分。
簡單的放置乙個嗅探器並將其放到隨便什麼地方將不會起到什麼作用。將嗅探器放置於被攻擊機器或網路附近,這樣將捕獲到很多口令,還有乙個比較好的方法就是放在閘道器上。sniffer通常執行在路由器,或有路由器功能的主機上。這樣就能對大量的資料進行監控。sniffer屬第二層次的攻擊。通常是攻擊者已經進入了目標系統,然後使用sniffer這種攻擊手段,以便得到更多的資訊。如果這樣的話就能捕獲網路和其他網路進行身份鑑別的過程。
Sniffer含義及工作原理
一.有關sniffer及sniffer的含義 sniffers 嗅探器 幾乎和internet有一樣久的歷史了.sniffer是一種常用的收集有用資料方法,這些資料可以是使用者的帳號和密碼,可以是一些商用機密資料等等。隨著internet及電子商務的日益普及,internet的安全也越來越受到重視。...
簡述hdfs工作原理 HDFS的工作原理
hdfs 的工作原理 hadoop 分布式檔案系統 hdfs 是一種被設計成適合執行在通用硬體上的分布式檔案系統。hdfs 是乙個高度容錯性的系統,適合部署在廉價的 機器上。它能提供高吞吐量的資料訪問,非常適合大規模資料集上的應用。要理解 hdfs 的內部工作原理,首先要理解什麼是分布式 檔案系統。...
ogg mysql的原理 OGG工作原理
一.goldengate介紹 ogg 是一種基於日誌的結構化資料複製軟體 ogg 能夠實現大量交易資料的實時捕捉,變換和投遞,實現源資料庫與目標資料庫的資料同步,保持最少10ms的資料延遲 二.工作原理 三.相關元件 1.manager 負責ogg 整體的監控和管理 1 trail檔案的生成和刪除 ...