歡迎您光臨本站 註冊首頁

Sentinel一個小巧的anti-sniffer工具

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  原創: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

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

水平太有限,希望大家多多扶持偶這個幼苗。
XUNDI1@21CH.COM 2000-06-27
http://focus.silversand.net


[火星人 ] Sentinel一個小巧的anti-sniffer工具已經有395次圍觀

http://coctec.com/docs/security/show-post-72752.html