国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
混雜模式(promiscuous mode)的檢測

http://blog.chinaunix.net/uid-27105712-id-3792255.html

2013

  混雜模式在一些網(wǎng)絡(luò)嗅探工具很常見,本文以“如何探測某臺機器是否開啟混雜模式?”這個問題出發(fā),逐漸展開對混雜模式的介紹。
   首先,linux下如何開啟混雜模式? 我所知道的有兩種方式:
   1、ifconfig . 使用man ifconfig  幫助可以看到        

  1. [-]promisc

  2.     Enable or disable the promiscuous mode of the interface. If selected, all packets on the network will be received by the interface.

   ifconfig eth1 promisc   ----------------開啟混雜模式
   ifconfig eth1 -promisc  ----------------關(guān)閉混雜模式

    2、ip 命令
  1. ip link set DEVICE { up | down | arp { on | off } |

  2.                promisc { on | off } |

  3.                allmulticast { on | off } |

  4.                dynamic { on | off } |

  5.                multicast { on | off } |

  6.                txqueuelen PACKETS |

  7.                name NEWNAME |

  8.                address LLADDR | broadcast LLADDR |

  9.                mtu MTU |

  10.                netns PID |

  11.                alias NAME |

  12.                vf NUM [ mac LLADDR ] [ vlan VLANID [ qos VLAN-QOS ] ] [ rate TXRATE ] }

     ip link set eth1 promisc on  ----------------開啟混雜模式
     ip link set eth1 promisc off  ----------------關(guān)閉混雜模式

   其次,如何檢測某臺機器網(wǎng)卡是否開啟混雜模式,我所知道的有三種方式,前兩種是要登陸到該機器上查詢。后一種則直接發(fā)網(wǎng)絡(luò)包查詢。
 
1、登陸到該機器上使用 ip link show eth1 命令
  1. eth1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

  2.        link/ether 00:0c:29:78:9c:1d brd ff:ff:ff:ff:ff:ff

      如果有promisc字眼,就是開啟了混雜模式。

  2、登陸到該機器上使用netstat -i 命令
  1. Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg

  2. eth1 1500 0 246689 0 0 0 87535 0 0 0 BMPRU

  3. lo 16436 0 40 0 0 0 40 0 0 0 LRU

        Flg 中有個P標志表示promisc 
   3、使用ARP包進行探測,也是本文的重點。方法是向局域網(wǎng)內(nèi)被檢測的目標機器發(fā)送一個特殊的arp包,根據(jù)是否有arp應(yīng)答包特性來判斷目標機器是否開啟混雜模式。之所以能這樣做,是由下面幾個特點決定的。
        1、以太網(wǎng)是載波偵聽(CSMA/CD)。什么意思。通俗一點講就是“一個人在點到,大家都在聽,點到自己才回答,沒有點自己別吭聲”。它是一種廣播鏈路,共享信道方式。
        

        
          2、網(wǎng)絡(luò)包的過濾特性,過濾分兩層,首先是硬件過濾(HW Filter),隨后是軟件過濾(SW Filter)。上圖中主機B,C,D拒絕是指硬件過濾。它過濾判斷條件是MAC地址是否匹配,針對的是MAC地址,屬于OSI第二層--鏈路層的處理。 軟件過濾判斷條件是ip地址是否匹配。屬于OSI協(xié)議分層里面的第三層過濾。正是因為一些原來不會產(chǎn)生應(yīng)答而在混雜模式下卻會產(chǎn)生應(yīng)答的差異。提供了檢測混雜模式的手段。 
         

        上表是一個很經(jīng)典的linux下過濾特性統(tǒng)計表格,其中g(shù)r bit 是指group bit,組播位。第一個字節(jié)的最低位為1的所有地址,例如01-12-0f-00-00-02。當然廣播地址 FF:FF:FF:FF:FF:FF 也屬于組播的一種。其中最后兩行在普通模式下沒有應(yīng)答,而在混雜模式下有應(yīng)答。所以可以利用最后兩行來檢測混雜模式。具體檢測時候填充的MAC地址如下表。使用紅圈兩行即可。
        

        最后兩行屬于多播地址范圍(00:00:5e:00:00:00 - 00:00:5e:7f:ff:ff),參照上表,目的地址使用FF:FF:FF:FF:FF:FE或FF:FF:00:00:00:00即可不分windows還是linux,探測出是否開啟了混雜模式。

        3、最后一步就是構(gòu)造測試包,目前l(fā)inux系統(tǒng)好像沒有現(xiàn)成的可以構(gòu)造目的地址的工具,需要自己寫程序或使用第三方工具。可以構(gòu)造一個arp包或者ip包,設(shè)置目的mac地址為上表紅圈中地址即可。
        
  1. struct pack

  2. {

  3.     unsigned char    h_dest[ETH_ALEN];//目標mac地址,填寫FF:FF:FF:FF:FF:FE

  4.     unsigned char    h_source[ETH_ALEN];//源mac地址,及發(fā)送者本機mac

  5.     unsigned short    h_proto;//以太網(wǎng)包的類型,0x0806 arp或者 0x0800 ip包

  6.     ..... //arp 或 ip 包內(nèi)容

  7. }

        參考代碼比較多,就要就是發(fā)包,我這里就不花大篇幅去書寫了,也可以參考http://ptool.googlecode.com/svn/trunk/



本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
MAC地址格式詳解
群暉上用Docker安裝OpenWrt
keepalived 主從兩臺機器上都綁定了虛擬IP
Ethereal用法--
最全的ARP欺騙攻擊原理深入分析
雙網(wǎng)卡在同一網(wǎng)段的解決辦法- iproute2有效
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服