• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Sentinel一個小巧的anti-sniffer工具

    發布: 2007-7-01 23:30 | 作者: admin | 來源: | 查看: 23次 | 進入軟件測試論壇討論

    領測軟件測試網


    原創:xundi(xundi)
    Sentinel一個小巧的anti-sniffer工具
    by xundi

    今天早上一個朋友問我,說啥工具發現網絡中被嗅探的比較好,我說 ISS的anti-Sniffer不行嗎,他說太慢!后來記起來以前逛網路的時候看到過 這樣的一個程序,也是antisniffer類型的,所以又把其找了出來. Sentinel主要是設計思想是portable,arrcurate implementation,就是說 小巧點,精確實現幾個熟知的雜亂方式探測技術。其中Sentinel支持三種方法的 遠程雜亂探測模式:DNS測試,Etherping測試,和ARP測試,其中還有一種ICMP ping Latency(ICMP PING反應時間)正在開發中。

    此程序需要Libnet和libpcap庫來支持,大家可以到下面的地址去下載:
    LIbnet 1.0: http://www.packetfactory.net/Projects/libnet
    libpcap 0.4: ftp://ftp.ee.lbl.gov/libpcap-0.4.tar.Z

    首先說下它其中使用的三種模式:

    --ARP測試模式:

    這種方法是采用發送一個ARP請求,其中包含所有正確 信息除了偽造的目標主機MAC硬件地址給我們的目標主機,這樣如果目 標主機沒有處于雜亂模式,它將不會理睬這些信息包,因為這些信息包 其認為不是指定給它們的,所以不會進行響應和回復,但如果此目標機器
    處于雜亂模式,ARP請求就會發生并進行內核處理,通過機器的回應信息 我們就可以知道其處于雜亂模式。這種方法結合內核的特性來查看機器 的運作狀態,請看下面的Etherping 測試模式。

    -- DNS測試模式:
    DNS測試主要是針對網絡數據收集工具能執行IP到名字 反轉解析來提供DNS名字來代替IP地址(The DNS tests operate on
    the premise that many attacker network data gathering tools perform IP to name inverse resolution to provide DNS names in place of IP addresses)。

    在執行反轉查詢中,工具會從被動網絡工具 模式轉變為主動網絡工具,而那些沒有監視網絡書記的工具就不會去解析 信息包中的IP地址。利用這種信息,ANTI SNIFFER工具可以自身在本地主機 中變為雜亂模式并在我們網絡中發送無數個偽造的主機,這樣,ANTI SNIFFER
    工具就可以嗅探DNS請求來查看目標是否在請求解析那些不存在主機。

    --Etherping 測試模式:

    Etherping 測試模式依賴于目標主機的內核,也就所謂的內核測試。 在通常情況下,硬件網絡接口卡過濾和丟棄那些MAC地址不同于自己機器 上的MAC地址的信息包或者不是廣播Ethernet 地址的地址。就是說信息包 是正確和實際的Ethernet地址或者是廣播Ethernet地址,接口就會把這些 地址COPY和傳遞給內核進行進一步處理。

    但某些系統假定包含在以太幀中的數據包含某個目標主機中正確的IP地址 或者廣播地址,但具有不同于本地主機的MAC地址,當NIC設置為雜亂模式, 發送給目標主機的每個數據包它還是傻傻的傳遞給操作系統進行分析。這 樣通過發送包含正確IP地址和不正確MAC地址的ICMP ECHO包給要檢測的 主機,如果目標主機回應了我們的請求,我們就知道其處于雜亂模式了。

    多種LINUX內核存在這種問題,其中NETBSD也可以利用這個問題來檢測 雜亂模式,但需要使用廣播地址的信息包,這種信息包使用帶偽造ether 幀的IP地址,如66:66:66:66:66:66.

    關于WINDOWS95,98,NT的操作系統在雜亂模式中確實是檢查信息包 ETHER地址的,如果信息包的NIC ETHER地址符合本地主機就讓堆棧來處理。 但WINDOWS對廣播的ether信息包存在問題,在普通環境下,如機器不在 雜亂模式下,NIC只把含有起本身MAC地址的信息包或者ether地址是 ff:ff:ff:ff:ff:ff傳遞給內核。但當在雜亂模式中驅動程序是檢查 ETHER地址,但它只檢查ETHER地址的第一個八未組是否為Oxff就來判斷 信息包是否為廣播或者其他,因此如果我們建立一個包含EHTER地址為 ff:00:00:00:00:00的IP正確的信息包并發送給目標機器,如果其進行 了響應的回應,就表示起處于雜亂模式。

    但對WINDOWS的這種方法是依賴于所用的驅動程序的,默認的微軟驅動 程序有此特性并且大多數供應商的驅動程序也有此特性,但某些NIC 過濾廣播只是依靠第一個八為組,所以這些卡不適合此方法。

    --網絡和機器的反應時間測試(也可以說ICMP PING反應時間):

    這種模式是比較有效的測試方法,依據是靠對操作系統的影響來測試。 但其中的壞處就是這些測試會在短期內產生一些 多數量的網絡通信。

    這些測試假定當網絡卡不處于雜亂模式時提供硬件過濾,這樣的話,信息 包不是指定給本身機器的將被網絡卡丟棄。當在這中情況下,在網絡通信 信息量將動態增長對操作系統的影響很小,相反的處于雜亂狀態的機器由于不 對這層進行過濾,就把這些信息傳遞給系統或者用戶模式進行過濾,會對 操作系統產生比較大的影響。簡單的說,我們先正常情況下PING一機器, 再我們構建很多偽造的TCP連接來ping程序來ping目標,并且注意RTT(round trip time),這樣處于雜亂模式的機器由于會處理這些垃圾信息包,并 影響系統并導致網絡反映時間增加,然后來比較各個RTT,經過多次測試和 人工判斷就能決定目標機器上是否存在SNIFFER。


    Sentinel是根據這些方法來進行測試的程序,是有源代碼形式發放的。使用于 OPENBSD 2.6 ;FREEBSD 3.X;NETBSD 1.4.1;LINUX2.2.X平臺。

    編譯后使用方法為:
    #./sentinel -t 192.168.0.1 -a 是ARP測試。

    #./sentinel -t 192.168.0.1 -e 是etherping test;

    #./sentinel -t 192.168.0.1 -f 1.1.1.1 -d 是DNS測試;

    #./sentinel -t 192.168.0.1 -f 1.1.1.1 -d -a -e 是允許所有模式進行測試;

    ----------------------------------------------------------------------

    參考:1,http://www.sentinel.net/projects/sentinel/ 的README;
    2,http://www.l0pht.com/antisniff/tech-paper.html

    -----------------------------------------------------------------------
    水平太有限,希望大家多多扶持偶這個幼苗。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>