linux sniffit

linux sniffit

Sniffit是由 Lawrence Berkeley Laboratory 開發的,可以在Linux、Solaris、SGI 等各種平台運行的網路監聽軟體,它主要是針對TCP/IP協定的不安全性對運行該協定的機器進行監聽。當然,數據包必須經過運行 sniffit 的機器才能進行監聽,因此它只能夠監聽在同一個網段上的機器。而且還能夠自由地為其增加某些外掛程式以實現額外功能。

linux sniffitsniffit 截圖

安裝

1、用 tar zvfx sniffit.*.*.*.tgz 將下載下來的 sniffit.*.*.*.tgz 解壓縮到目的資料夾

2、cd sniffit.0.3.7

3、./configure && make ,只要在這個過程中終端上沒有意外的error信息出現,就編譯成功了

4、make clean把不用的垃圾掃掉……

運行參數

-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或者其他不是IP的數據包也會顯示出來
-N 只運行plugin時的選項,使其它選項失效

在-i 模式下無法工作的參數:

-b 同時做-t和-s的工作……
-d 將監聽所得內容顯示在當前終端——以十六進制表示
-a 將監聽所得內容顯示在當前終端——以ASCII字元表示
-x 列印TCP包的擴展信息(seq, ACK, Flags),可以與'-a', '-d', '-s', '-t', '-b'一起運作,注意它是輸出在標準輸出的,如果只用-t,-s,-b 而沒有其它參數配合的話不會被寫入檔案。
-R <file>將所有通信記錄在檔案中
-r <file> 這一選項將記錄檔案送往sniffit,它需要-F的參數配合指明設備,假設你用 'eth0'(第一塊網卡)來記錄檔案,必須在命令行裡面加上'-F eth0'或者 '或者'或者'或者'或者'-F eth' -A 遇到不認識的字符時用指定的字元代替
-P <protocol> 定義監聽的協定,DEFAULT為TCP——也可以選IP、ICMP、UDP……
-p <prot > 定義監聽連線埠,默認為全部
-l <length> 設定數據包大小,default是300位元組。
-M <plugin> 激活外掛程式

-I,-i 模式下的參數

-D <device> 所有的記錄會被送到這個磁碟上。
-c 模式下的參數
-L<logparam>
其中logparam可以是如下的內容:
raw : 輕度
norm : 常規
telnet: 記錄口令(連線埠23)
ftp : 記錄口令(連線埠21)
mail : 記錄信件內容(連線埠25)
比如說"ftpmailnorm"就是一個合法的logparam

圖形仿真界面

就是上面所說的 -i 選項啦,我們輸入sniffit -i 會出現一個視窗環境,從中可以看到自己所在的網路中有哪些機器正在連線,使用什麼連線埠號,其中可用的命令如下:
q 退出視窗環境,結束程式
r 刷新螢幕,重新顯示正在在連線的機器
n 產生一個小視窗,包括TCP、IP、ICMP、UDP等協定的流量
g產生數據包,正常情況下只有UDP協定才會產生,執行此命令要回答一些關於數據包的問題
F1 改變來源網域的IP位址,默認為全部
F2 改變目的網域的IP位址,默認為全部
F3 改變來源機器的連線埠號,默認為全部
F4 改變目的機器的連線埠號,默認為全部

示例

假設有以下的設定:在一個子網中有兩台主機,一台運行了sniffer,稱之為sniffit.com,另一台是66.66.66.7,稱之為 target.com。

1、希望檢查sniffer是否能運行
sniffit:~/# sniffit -d -p 7 -t 66.66.66.7
並且開另一個視窗:
sniffit:~/$ telnet target.com 7
可以看到sniffer將telnet到對方7號連線埠echo服務的包捕獲了。

2、希望截獲target.com上的用戶密碼
sniffit:~/# sniffit -p 23 -t 66.66.66.7

3、target.com主機的根用戶聲稱有奇怪的FTP連線並且希望找出他們的擊鍵
sniffit:~/# sniffit -p 21 -l 0 -t 66.66.66.7

4. 你希望能閱讀所有進出target.com的信件
sniffit:~/# sniffit -p 25 -l 0 -b -t 66.66.66.7 &
或者
sniffit:~/# sniffit -p 25 -l 0 -b -s 66.66.66.7 &

5. 你希望使用用戶互動界面
sniffit:~/# sniffit -i

6. 有錯誤發生而且你希望截獲控制信息
sniffit:~/# sniffit -P icmp -b -s 66.66.66.7

7. Go wild on scrolling the screen.
sniffit:~/# sniffit -P ip -P icmp -P tcp -p 0 -b -a -d -x -s 66.66.66.7
與之效果相當的是
sniffit:~/# sniffit -P ipicmptcp -p 0 -b -a -d -x -s 66.66.66.7

8. 你可以用'more 66*'讀取下列方式記錄下的密碼
sniffit:~/# sniffit -p 23 -A . -t 66.66.66.7
或者
sniffit:~/# sniffit -p 23 -A ^ -t dummy.net

高級套用

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.180.180.1送往180.180.180.10的數據包,連線埠為FTP口。這裡不做更多說明,可以自己去看裡面的README。

2、外掛程式

要獲取一個外掛程式是很簡單的,將它放入sniffit的目錄下,並且象如下方式編輯sn_plugin.h 檔案:
#define PLUGIN1_NAME "My plugin"
#define PLUGIN1(x) main_plugin_function(x)
#include "my_plugin.plug"

注意:

a) 你可以讓plugin從0-9,所以從PLUGIN0_NAME到PLUGIN1_NAME……不必是連續的
d) #include "my_plugin.plug" 這是我的外掛程式原始碼放置的地方。 如果想詳細了解的話,還是看看裡面

的plugin.howto吧。

3、介紹 tod

這東東便是sniffit最有名的一個外掛程式了,為什麼叫TOD呢——touch of death,它可以輕易地切斷一個

TCP連線,原理是向一個TCP連線中的一台主機傳送一個下線的IP包,這個IP包的RST位置1,便可以了。
將下載下來的tod.tar.gz拷貝到sniffit所在目錄下,解壓安裝後
ln -s tod sniffit_key5
就可以將這相程序與F5鍵連線起來,想切斷哪台機器的話,只要在視窗中將游標指到需要斷線的機器上

按下F5鍵就可以了。你可以自由地定義成其它的F功能鍵——F1~F4不行,它們已經被定義過了……

相關詞條

相關搜尋

熱門詞條

聯絡我們