網卡混雜模式Promiscuous與linux上混雜模式的設置混雜模式


網卡混雜模式Promiscuous與linux上混雜模式的設置混雜模式 

混雜模式就是接收所有經過網卡的數據包,包括不是發給本機的包,即不驗證MAC地址。普通模式下網卡只接收發給本機的包(包括廣播包)傳遞給上層程序,其它的包一律丟棄。
一般來說,混雜模式不會影響網卡的正常工作,多在網絡監聽工具上使用。

以太網(Ethernet)具有共享介質的特征,信息是以明文的形式在網絡上傳輸,當網絡適配器設置為監聽模式(混雜模式,Promiscuous)時,由於采用以太網廣播信道爭用的方式,使得監聽系統與正常通信的網絡能夠並聯連接,並可以捕獲任何一個在同一沖突域上傳輸的數據包。IEEE802.3 標准的以太網采用的是持續 CSMA 的方式,正是由於以太網采用這種廣播信道爭用的方式,使得各個站點可以獲得其他站點發送的數據。運用這一原理使信息捕獲系統能夠攔截的我們所要的信息,這是捕獲數據包的物理基礎。
以太網是一種總線型的網絡,從邏輯上來看是由一條總線和多個連接在總線上的站點所組成各個站點采用上面提到的 CSMA/CD 協議進行信道的爭用和共享。每個站點(這里特指計算機通過的接口卡)網卡來實現這種功能。網卡主要的工作是完成對於總線當前狀態的探測,確定是否進行數據的傳送,判斷每個物理數據幀目的地是否為本站地址,如果不匹配,則說明不是發送到本站的而將它丟棄。如果是的話,接收該數據幀,進行物理數據幀的 CRC 校驗,然后將數據幀提交給LLC 子層。
網卡具有如下的幾種工作模式:
1) 廣播模式(Broad Cast Model):它的物理地址(MAC)地址是 0Xffffff 的幀為廣播幀,工作在廣播模式的網卡接收廣播幀。
2)多播傳送(MultiCast Model):多播傳送地址作為目的物理地址的幀可以被組內的其它主機同時接收,而組外主機卻接收不到。但是,如果將網卡設置為多播傳送模式,它可以接收所有的多播傳送幀,而不論它是不是組內成員。
3)直接模式(Direct Model):工作在直接模式下的網卡只接收目地址是自己 Mac地址的幀。
4)混雜模式(Promiscuous Model):工作在混雜模式下的網卡接收所有的流過網卡的幀,信包捕獲程序就是在這種模式下運行的。

網卡的缺省工作模式包含廣播模式和直接模式,即它只接收廣播幀和發給自己的幀。如果采用混雜模式,一個站點的網卡將接受同一網絡內所有站點所發送的數據包這樣就可以到達對於網絡信息監視捕獲的目的。

集線器與交換機環境下混雜模式

 

在集線器模式下,源主機“主機2”要向目標主機“主機3”發送數據,當數據到達集線器后,集線器會向除了源主機“主機2”本身之外的所有主機發送數據,即除了源主機“主機2”之外的所有主機都可以收到“主機2”所發的數據。目標主機“主機3”判斷到該數據是給自己的,就進行處理;其余主機判斷到所發的數據是給“主機3”的,而不是給自己的,就不進行處理。該模式下,硬件設計簡單、速度快,並且對主機的開機(新主機加入)和關機(當前在線主機的離開)都具有很好的適應性,只要發送的時候,目標主機在線,就可以馬上進入工作狀態。但缺點是該模式對沖突的解決是非常麻煩的,例如,當“主機2”向某一台主機發送數據的期間,“主機4”也再向另一台主機發送數據,則二者的數據會出現沖突,這種沖突會導致二主機所發的數據全部出錯。解決辦法就是二者各“等”一會兒再重發,但再重發並不能避免產生新的沖突。這種現象在頻繁數據交換的時候,沖突的現象非常明顯,會大大減低網絡帶寬,現在這種模式已被交換機模式所代替。

在交換機模式下,源主機“主機2”要向目標主機“主機3”發送數據,當數據到達交換機后,交換機會分析目標主機“主機3”所在的端口,然后只向該端口發送數據,這樣,其余主機就接不到由源主機“主機2”所發出來的。這樣,使得別的主機就不需要處理不屬於自己的數據,從而減少了負荷,而且如果此前“主機5”要向“主機1”發送數據時,就不會出現沖突。在該模式下,由於有效地減少了“沖突”的可能,所以整個帶寬的利用率大大提高,並且各個主機也減少了處理不屬於自己數據包的工作。但這樣做也有一些缺點,比如新主機的加入和當前在線主機的離開,通常都需要交換機花費一定時間來判斷新的變化。當前絕大多數以太網所使用的都是交換機模式。

通過上面的分析,不難看出,當前以交換機作為交換設備的網絡中,即使是將某一個網卡設置成“混雜模式”,除非使用一些特殊技術,網卡本身一般是接不到不是發送給自身的數據,所接到的只是給本身IP的數據和廣播數據,但這時RAW Socket可以監聽所有的數據了。這點與“常規模式”不同.

linux下混雜模式設置 

命令方式設置

ifconfig eth1 promisc  設置混雜模式
ifconfig eth1 -promisc 取消混雜模式
 

一般計算機網卡都工作在非混雜模式下,此時網卡只接受來自網絡端口的目的地址指向自己的數據。當網卡工作在混雜模式下時,網卡將來自接口的所有數據都捕獲並交給相應的驅動程序。

網卡打開混雜模式命令如下:

通過shell命令來實現:
ifconfig wlan0 promisc  設置混雜模式
ifconfig wlan0 -promisc 取消混雜模式

監聽模式(monitor)

iwconfig  wlan0 mode monitor

/home # iwconfig
lo        no wireless extensions.
 
wlan0     IEEE 802.11b  ESSID:""  Nickname:"<WIFI@REALTEK>"
          Mode:Monitor  Frequency:2.412 GHz  Access Point: Not-Associated   
          Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
 
eth0      no wireless extensions.

如果沒有生效,可以嘗試先

ifconfig wlan0 down

iwconfig wlan0 mode monitor

ifconfig wlan0 up

無線網卡監聽模式和混雜模式有什么不同:

  • 監聽模式允許網卡不用連接wifi就可以抓取特性頻道的數據,就是在空氣中抓取某個波段的數據。可以用在破解wifi密碼上
  • 混雜模式(連接wifi)就是接收所有經過網卡的數據包,包括不是發給本機的包,即不驗證MAC地址
  • 普通模式下網卡只接收發給本機的包

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM