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