Sniffit是由Lawrence Berkeley Laboratory開發的可以在Linux、Solaris、SGI、NT等各種平臺運行的網絡監聽軟件,它主要針對TCP/IP協議的不安全性,對運行該協議的機器進行監聽。
和所有的Sniffer一樣,數據包必須經過運行Sniffit的機器才能被監聽,因此,Sniffit只能夠監聽同一個網段上的機器。
由于Sniffit安裝簡便、功能強大,目前已成為黑客在UNIX中的首選Sniffer。在對網上一些被人侵的主機進行安全檢測時,經常發現相當多的被人侵主機已經被黑客安裝了Sniffit。
Sniffit的另一特點是能夠自由地為其增加某些插件以實現額外功能,這在后面會專門介紹。
1.安裝
(1)用 tar zvfx sniffit.*.*.*.tgz將下載的sniffit.*.*.*.tgz解壓縮到你想要的目的文件夾,如果版本是0.3.7的話,你會看到該目錄下出現一個Sniffit.0.3.7的目錄。
(2)打開Sniffit.0.3.7目錄。
(3)執行/configure && make命令,只要在這個過程中終端上沒有意外的錯誤信息出現,就算編譯成功了一可以得到一個二進制的Sniffit文件,直接運行它即可。
(4)最后用make clean命令清除掉臨時文件。
2.使用方法
Sniffit有如下一些命令選項:
-V: 顯示版本信息
-t<ip nr/name>:讓程序去監聽指定流向某IP的數據包
-s<ip nr/name>:讓程序去監聽從某IP流出的IP數據包,可以使用@通配符,如-t 199.145.
@
-i:顯示出窗口界面,能查看當前在所屬網絡上進行連接的機器
-I:擴展的交互模式,忽略所有其他選項,比一i強大得多
-C<file>:利用腳本來運行程序
-F<device>:強制使程序使用網絡硬盤
-n:顯示出假的數據包。如果使用ARP、RARP或者其他不是P的數據包也會顯示出來
-N:只運行plugin時的選項,使其他選項失效
下面是在-I模式下無法工作的參數:
-b:同時做-t和-s的工作
-d:將監聽所得內容顯示在當前終端——以十六進制表示
-a:將監聽所得內容顯示在當前終端——以ASCll字符表示
-X:打印 TCP包的擴展信息
(SEQ、ACK、Flags),可以與-a、-d、-s、-t、-b一起運作。注意:它是通過標準來輸出到屏幕的,如果只用-t、-s、-b 而沒有其他參數配合的話,不會被寫人文件
-R<file>:將所有通信記錄在文件中
-r<file>:這一選項將記錄文件送往Sniffit,它需要-F的參數配合指明設備假設用'eth0'(第一塊網卡)來記錄文件,必須在命令行里加上'-F eth0'或'-F eth',遇到不認識的字符時用指定的字符代替
-P<protocol>:定義監聽的協議,默認為TCP也可以選 IP、ICMP、UDP
-p<port>定義監聽端口,默認為全部
-l<length>:設定數據包大小,默認是300字節
-M<Plugin>:激活插件
還有一些在一I、一i模式下使用的參數:
-D<device>:所有的記錄會被送到這個磁盤上在一C模式下使用的參數:
-L<logparam>:其中logparam可以是如下的內容:
raw:輕度
norm:常規
telnet:記錄口令(端口23)
ftp:記錄口令(端口21)
mail:記錄信件內容(端口25)
這些參數可以組合使用,如 telnet ftP mail norm等。
(1)圖形仿真界面:
用上面提到的一i選項,可以進人圖形界面的Sniffit,即直接輸人 sniffit -i,就會出現一個窗口環境,從中可以看到自己所在的網絡中有哪些機器正在連接,使用什么端口號。其中可用的命令如下:
G:產生數據包,正常情況下只有UDP協議才會產生,執行此命令要回答一些關于數據包的問題
N:產生一個小窗口,包括TCP、IP、ICMP、UDP等協議的流量
R:刷新屏幕,重新顯示正在連接的機器
Q:退出窗口環境,結束程序
F1:改變來源網域的IP地址,默認為全部
F2:改變目的網域的IP地址,默認為全部
F3:改變來源機器的端口號,默認為全部
F4:改變目的機器的端口號,默認為全部
(2)使用示例:
假設在一個子網中有兩臺主機,一臺運行了Sniffit,為 sniffit.com,另一臺的IP地址是 66.66.66.7我們稱之為target.com,按下列步驟操作:
1、檢查Sniffer是否能運行:
sniffit:~/#sniffit-d-p 7 -t 66.66.66.7
并且打開另一個窗口:
sniffit:~/$telnet target.com 7
應該可以看到Sniffit將遠程登錄到對方7號端口 echo服務的包捕獲了。
2、截獲target.com上的用戶密碼:
sniffit:~/# sniffit-p 23 -t 66.66.66.7
意思是只監聽TELNET(23)端口的包。
3、如果target.com主機的根用戶聲稱有陌生的FTP連接并且希望記錄其動作:
Siffit:~/# sniffit -p 21 -1 0 -t 66.66.66.7
4、閱讀所有進出 target.com 的信件:
sniffit:~/# sniffit -p 25 -1 0 -b -t 66.66.66.7 &
或者
sniffit:~/# sniffit -p 25 -1 0 -b -s 66.66.66.7 &
5、有錯誤發生時截獲控制信息:
sniffit:~/# sniffit -P icmp -b -s 66.66.66.7
6、監聽所有從66.66.66.7進出的包,對其進行完全監視:
sniffit:~/# sniffit -P ipicmptcp -p 0 -b -a -d -x -s 66.66.66.7
7 、用more 66* 命令讀取用下列方式記錄的密碼:
sniffit:~/# sniffit -p 23 -A . -t 66.66.66.7
或者
sniffit:~/# sniffit -p 23 -A^-t dummy.net
(3)高級應用
1、用腳本執行
這是配合選項-c的,其執行方法也很簡單,比如以下列方式編輯一個叫Sh的文件:
select from host 180.180.180.1
select to host 180.180.180.10
seleCt both Port 21
然后執行:sniffit -c sh
說明:監聽從180.18O.180.1送往180.180.180.10的數據包,端口為 FTP口。
2、插件
要獲取一個插件是很簡單的,只需將它放入sniffit的目錄下,并且用如下方式編輯sn_plugin.h 文件:
#define PLUGIN1_NAME "My plugin"
#define PLUGIN1(X) main_plugin_function(x)
#include "my_plugin.plug"
其中:
l)可以讓Plugin 從0~9,所以從PLUGINO_NAME……不必是連續的。
2)#include。"my_plugin.plug",這是自己的插件源代碼放置的地方。
3.插件TOD
TOD是Sniffit最有名的一個插件,TOD是Touch Of Death的縮寫,因為它可以輕易地切斷一個TCP連接。其原理是向一個TCP連接中的一臺主機發送一個斷開連接的IP包,將這個IP包的RST位置設為1,便可以了。
安裝TOD需要將下載的tod.tar.gz 拷貝到sniffit所在目錄下,解壓安裝后,用 In -s tod sniffit_key5命令將這個程序與F5鍵連接起來,想切斷哪臺機器的話,只要在窗口中將光標指到需要斷線的機器上并按下F5鍵。當然,你也可以自由地定義成其他的F功能鍵,但是 F1~F4不行,因為它們已經被定義過了。
4 Sniffit的 NT版本
Sniffit 0.3.7推出了NT版本,同時也支持Windows 2000。安裝 NT版的 Sniffit需要WinPcap包,這是一個與lib圳ap類似的包,支持Win 32平臺,可以進行信息包捕獲和網絡分析,是基于Unix的libpcap 和BPF(Berkeley分幀過濾器)模型的包。它包括內核級的包過濾驅動程序、低級動態連接庫Packet.dll)和高級系統無關性庫(libpcap,基于0.4a6版本)。
這個WinPcap信息包捕獲啟動程序,可把設備sg動增力在Windows 95、Windows 98、Windows NT和Windows 2000上,可以捕獲和發送通過原始套接口的信息包(raw packets),Packet.dll是一個能用來直接訪問BPF驅動程序的API,可以從網上找到。
下面是sniffit在NT中的安裝步驟:
(1)下載 Packet.exe程序后開始安裝。
(2)打開控制面板,雙擊“網絡和撥號連接”圖標,再打開“本地連接”圖標,并選擇“屬性”選項。
(3)在顯示的對話框中選擇“安裝”,安裝網絡組件。
(4)在出現的對話框中選擇“協議”,單擊“增加”。
(5)在出現的對話框中選擇“從磁盤安裝”,選擇正確路徑,就是剛才解壓的網絡設備驅動程序(這個文件夾中必須包含Packet.inf和packet.sys)的地方,再選擇“確定”。
(6)選擇“Packet capture Driver v X.XX”,并按照指示完成安裝,這一步驟需要將NT系統盤放人光驅。
(7)查看網絡組件中有沒有 Packet capture Driver v X.XX這一行,有的話說明這個驅動程序已經建立并綁定了網絡接回。
(8)重新啟動計算機。
(9)解壓sniffit_nt0.3.7beta,就可以直接使用了,具體使用方法和前面講過的Unix版的Sniffit一樣。