北京北大青鳥:Sniffer-黑客們最常用的入侵手段三

北京北大青鳥通州校區(qū)學(xué)術(shù)部提供:

擴(kuò)展閱讀:
Sniffer-黑客們最常用的入侵手段一

Sniffer-黑客們最常用的入侵手段二

四、sniffer的安裝使用。

  我主要以sniffit為例分別介紹在windows和linux下的應(yīng)用。北京北大青鳥通州校區(qū),軟件工程師培訓(xùn)。
  [1] 在linux下的sniffit
   安裝軟件的安裝很簡(jiǎn)單:
  1、用tar zvfx sniffit.*.*.*.tgz將下載下來的sniffit.*.*.*.tgz解壓縮到你想要的目的文件夾,如果版本是0.3.7的話,你會(huì)看到該目錄下出現(xiàn)一個(gè)sniffit.0.3.7的目錄。   
  2、cd sniffit.0.3.7
  3、./configure && make,只要在這個(gè)過程中終端上沒有意外的error信息
出現(xiàn),你就算編譯成功了--可以得到一個(gè)二進(jìn)制的sniffit文件。
  4、make clean把不用的垃圾掃掉……

  、使用方法
  1、參數(shù)
  這個(gè)東東具有如下的命令選項(xiàng):
  -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ò)展的交互模式,忽略所有其它選項(xiàng),比-i強(qiáng)大得多……
  -c利用腳本來運(yùn)行程序
  -F強(qiáng)制使程序使用網(wǎng)絡(luò)硬盤
  -n顯示出假的數(shù)據(jù)包。象使用ARP、RARP或者其他不是IP的數(shù)據(jù)包也會(huì)顯示出來
  -N只運(yùn)行plugin時(shí)的選項(xiàng),使其它選項(xiàng)失效
  在-i模式下無法工作的參數(shù):
  -b同時(shí)做-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ù)配合的話不會(huì)被寫入文件。
  -R將所有通信記錄在文件中
  -r這一選項(xiàng)將記錄文件送往sniffit,它需要-F的參數(shù)配合指明設(shè)備,假設(shè)你用'eth0'(第一塊網(wǎng)卡)來記錄文件,你必須在命令行里面加上'-Feth0'或者'或者'或者'或者'或者'-Feth'-A遇到不認(rèn)識(shí)的字符時(shí)用指定的字符代替-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所有的記錄會(huì)被送到這個(gè)磁盤上。
  -c模式下的參數(shù)
  -L
  其中l(wèi)ogparam可以是如下的內(nèi)容:
  raw:輕度
  norm:常規(guī)
  telnet:記錄口令(端口23)
  ftp:記錄口令(端口21)
  mail:記錄信件內(nèi)容(端口25)
  比如說"ftpmailnorm"就是一個(gè)合法的logparam

  2、圖形仿真界面 北京北大青鳥通州校區(qū),軟件工程師培訓(xùn)。
  就是上面所說的-i選項(xiàng)啦,我們輸入sniffit-i會(huì)出現(xiàn)一個(gè)窗口環(huán)境,從中可以看到自己所在的網(wǎng)絡(luò)中有哪些機(jī)器正在連接,使用什么端口號(hào),其中可用的命令如下:
  q退出窗口環(huán)境,結(jié)束程序
  r刷新屏幕,重新顯示正在在連線的機(jī)器
  n產(chǎn)生一個(gè)小窗口,包括TCP、IP、ICMP、UDP等協(xié)議的流量
  g產(chǎn)生數(shù)據(jù)包,正常情況下只有UDP協(xié)議才會(huì)產(chǎn)生,執(zhí)行此命令要回答一些
  關(guān)于數(shù)據(jù)包的問題
  F1改變來源網(wǎng)域的IP地址,默認(rèn)為全部
  F2改變目的網(wǎng)域的IP地址,默認(rèn)為全部
  F3改變來源機(jī)器的端口號(hào),默認(rèn)為全部
  F4改變目的機(jī)器的端口號(hào),默認(rèn)為全部
北京北大青鳥通州校區(qū),軟件工程師培訓(xùn)。
  、一些示例

  假設(shè)有以下的設(shè)置:在一個(gè)子網(wǎng)中有兩臺(tái)主機(jī),一臺(tái)運(yùn)行了sniffer,我們稱之為sniffit.com,另一臺(tái)是66.66.66.7,我們稱之為target.com。
  <1>你希望檢查sniffer是否能運(yùn)行sniffit:~/#sniffit-d-p7-t66.66.66.7 并且開另一個(gè)窗口:
  sniffit:~/$telnettarget.com7
  你可以看到sniffer將你telnet到對(duì)方7號(hào)端口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>有錯(cuò)誤發(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)。
  、高級(jí)應(yīng)用

  1、用腳本執(zhí)行
  這是配合選項(xiàng)-c的,其執(zhí)行方法也很簡(jiǎn)單,比如以如下方式編輯一個(gè)叫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、插件
  要獲取一個(gè)插件是很簡(jiǎn)單的,你將它放入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最有名的一個(gè)插件了,為什么叫TOD呢--touchofdeath,它可以輕易地切斷一個(gè)TCP連接,原理是向一個(gè)TCP連接中的一臺(tái)主機(jī)發(fā)送一個(gè)斷開連接的IP包,這個(gè)IP包的RST位置1,便可以了。
  將下載下來的tod.tar.gz拷貝到sniffit所在目錄下,解壓安裝后ln-stodsniffit_key5就可以將這相程序與F5鍵連接起來,想切斷哪臺(tái)機(jī)器的話,只要在窗口中將光標(biāo)指到需要斷線的機(jī)器上按下F5鍵就可以了。你可以自由地定義成其它的F功能鍵--F1~F4不行,它們已經(jīng)被定義過了……
北京北大青鳥通州校區(qū),軟件工程師培訓(xùn)。

  [2] 在windows下的sniffit
  Sniffit 0.3.7推出了windows版本,這個(gè)sniffit需要WinPcap包,就是類似與libpcap的包,支持WIN32平臺(tái)上可以信息包捕獲和網(wǎng)絡(luò)分析,是基于UNIX的libpcap和BPF(Berkeley 分幀過濾器)模型的包。它包括內(nèi)核級(jí)的包過濾驅(qū)動(dòng)程序,低級(jí)動(dòng)態(tài)連接庫(packet.dll),和高級(jí)系統(tǒng)無關(guān)性庫(libpcap,基于0.4a6版本)。
  這個(gè)WinPcap信息包捕獲啟動(dòng)程序可把設(shè)備驅(qū)動(dòng)增加在Windows 95, Windows 98, Windows NT 和 Windows 2000 上,可以有能力捕獲和發(fā)送通過原始套接口的信息包(raw packets),Packet.dll是一個(gè)能用來直接訪問BPF驅(qū)動(dòng)程序的API。
  WinPcap在http://netgroup-serv.polito.it/windump和http://netgroup-serv.polito.it/analyzer這兩個(gè)工具中成功應(yīng)用。最新的WinPcap是版本2.02,修補(bǔ)了2.01版本中的一些缺陷,并且支持WIN2000。具體信息和源代碼可以在下面這個(gè)站點(diǎn)找到:
  http://netgroup-serv.polito.it/winpcap/
  下面是在WIN2K中安裝的步驟:
  1)先下載packet.exe這個(gè)程序后展開安裝。
  2)打開WINDOWS2000的控制面板
  3)從控制面板中雙擊"網(wǎng)絡(luò)和撥號(hào)連接"圖標(biāo),在打開"本地連接"圖標(biāo),并選擇屬性選項(xiàng)。
  4)在顯示的對(duì)話框中選擇"安裝",安裝網(wǎng)絡(luò)組件。
  5)再在出現(xiàn)的對(duì)話框中選擇"協(xié)議",點(diǎn)擊"增加"。
  6)在出現(xiàn)的對(duì)話框中選擇"從磁盤安裝",選擇正確路徑,就是剛才你解壓的網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序(這個(gè)文件夾中必須包含packet.inf和packet.sys)的地方,在選擇確定。
  7)在選擇"Packet capture Driver v X.XX ",并按照指示來完成安裝,往往要你WINDOWS2000的安裝光盤。
  8)查看網(wǎng)絡(luò)組件中有沒有 Packet capture Driver v X.XX 這一行,有的話說明這個(gè)驅(qū)動(dòng)程序已經(jīng)建立并綁定了網(wǎng)絡(luò)接口。
  再重新啟動(dòng)機(jī)器。然后解壓sniffit_nt.0.3.7.beta,再使用命令行模式,我簡(jiǎn)單的使用了一個(gè)命令行,剛開始是使用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命令,這時(shí)出現(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的目錄下看到一個(gè)關(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)該是一個(gè)客戶/服務(wù)器模式,客戶端的連接是隨意開一個(gè)1281端口地址和192.168.0.1的21口連接。
北京北大青鳥通州校區(qū),網(wǎng)絡(luò)工程師、軟件工程師培訓(xùn)。
五、如何監(jiān)測(cè)主機(jī)正在竊聽(sniffed)

  如何才知道有沒有sniffer在我的網(wǎng)上跑呢?這也是一個(gè)很難說明的問題,比較有說服力的理由證明你的網(wǎng)絡(luò)有sniffer目前有這么幾條:
  1、你的網(wǎng)絡(luò)通訊掉包率反常的高。
  通過一些網(wǎng)絡(luò)軟件,你可以看到你的信息包傳送情況(不是sniffer),向ping這樣的命令會(huì)告訴你掉了百分幾的包。如果網(wǎng)絡(luò)中有人在聽,那么你的信息包傳送將無法每次都順暢的流到你的目的地。(這是由于sniffer攔
截每個(gè)包導(dǎo)致的)
  2、你的網(wǎng)絡(luò)帶寬將出現(xiàn)反常。
  通過某些帶寬控制器(通常是火墻所帶),你可以實(shí)時(shí)看到目前網(wǎng)絡(luò)帶寬的分布情況,如果某臺(tái)機(jī)器長時(shí)間的占用了較大的帶寬,這臺(tái)機(jī)器就有可能在聽。在非高速信道上,如56Kddn等,如果網(wǎng)絡(luò)中存在sniffer,你應(yīng)該也可以察覺出網(wǎng)絡(luò)通訊速度的變化。
  3、通常一個(gè)sniffer的記錄文件會(huì)很快增大并填滿文件空間。在一個(gè)大型網(wǎng)絡(luò)中,sniffer明顯加重機(jī)器負(fù)荷。這些警告信息往往能夠幫助管理員發(fā)現(xiàn)sniffer。
  4、一個(gè)主機(jī)上的sniffer會(huì)將網(wǎng)絡(luò)接口置為混雜模式以接收所有數(shù)據(jù)包。對(duì)于某些UNIX系統(tǒng), 通過監(jiān)測(cè)到混雜模式的網(wǎng)絡(luò)接口。雖然可以在非混雜模式下運(yùn)行sniffer,但這樣將只能捕獲本 機(jī)會(huì)話。只有混雜模式下的 sniffing才能捕獲以太網(wǎng)中的所有會(huì)話,其它模式只能捕獲本機(jī)會(huì)話。
  對(duì)于SunOS、linux和其它BSD Unix系統(tǒng),如下命令:
  "ifconfig -a"
  會(huì)顯示所有網(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
  然后通過如下命令檢查每個(gè)網(wǎng)絡(luò)接口:  
  #ifconfig le0
  le0: flags=8863
  inet 127.0.0.1 netmask 0xffffff00 broadcast 255.0.0.1
  入侵者經(jīng)常會(huì)替換ifconfig等命令來避開檢查,因此一定要檢查命令程序的校驗(yàn)值。
  在ftp.cert.org:/pub/tools/的cpm程序(SunOS平臺(tái))可以檢查接口是否有混雜模式標(biāo)記。
  這些命令只在sniffer與內(nèi)核存在鏈接時(shí)有效。而在缺省情況,sniffer是沒有與內(nèi)核鏈接的。大多數(shù)的Unix系統(tǒng),例如Irix、Solaris、SCO等,都沒有任何標(biāo)記來指示是否處于混雜模式,因此入侵者能夠竊聽整個(gè)網(wǎng)絡(luò)而卻無法監(jiān)測(cè)到它。
  如果機(jī)器上使用兩塊網(wǎng)卡,把一塊設(shè)置為雜亂模式,并把IP地址設(shè)置為0.0.0.0,另一塊卡處于正常的模式并是正確的地址,這樣將很難發(fā)現(xiàn)SNIFFER的存在。
  注意:要監(jiān)測(cè)只采集數(shù)據(jù)而不對(duì)任何信息進(jìn)行響應(yīng)的竊聽設(shè)備,需要逐個(gè)仔細(xì)檢查以太網(wǎng)上所有物理連接,不可能僅通過遠(yuǎn)程發(fā)送數(shù)據(jù)包或ping就可以檢查計(jì)算機(jī)是否正在竊聽.
北京北大青鳥校區(qū),網(wǎng)絡(luò)工程師、軟件工程師培訓(xùn)。(未完待續(xù))

北大青鳥網(wǎng)上報(bào)名
北大青鳥招生簡(jiǎn)章