史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 資訊系統安全備援防護技術文件
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2004-07-14, 02:32 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 sniff教學

sniff教學
一.有關sniffer及sniffer的含義

sniffers(嗅探器)幾乎和internet有一樣久的歷史了.Sniffer是一種常用的收集有用資料方法,這些資料可以是用戶的帳號和密碼,可以是一些商用機密資料等等。


隨著Internet及電子商務的日益普及,Internet的安全也越來越受到重視。


在Internet安全隱患中扮演重要角色之一的Sniffer以受到越來越大的關注,所以今天我要向大家介紹一下介紹Sniffer以及如何阻止sniffer。


  
大多數的黑客僅僅為了探測內部網上的主機並取得控制權,只有那些"雄心勃勃"的黑客,為了控制整個網路才會安裝特洛伊木馬和後門程序,並清除記錄。他們經常使用的手法是安裝sniffer。


  在內部網上,黑客要想迅速獲得大量的帳號(包括用戶名和密碼),最為有效的手段是使用 "sniffer" 程序。


這種方法要求執行Sniffer 程序的主機和被監聽的主機必須在同一個乙太網段上,故而在外部主機上執行sniffer是沒有效果的。


再者,必須以root的身份使用sniffer 程序,才能夠監聽到乙太網段上的資料流。談到乙太網sniffer,就必須談到乙太網sniffing。

那麼什麼是乙太網sniffer呢?  


乙太網sniffing是指對乙太網設備上傳送的資料包進行偵聽,發
現感興趣的包。


如果發現符合條件的包,就把它存到一個log文件中 去。


通常設定的這些條件是包含字"username"或"password"的包。
  它的目的是將網路層放到promiscuous模式,從而能幹些事情。
Promiscuous模式是指網路上的所有設備都對總線上傳送的資料進行
偵聽,並不僅僅是它們自己的資料。


據第二章中有關對乙太網的工
作原理的基本介紹,可以知道:
一個設備要向某一目標傳送資料時,
它是對乙太網進行廣播的。



一個連到乙太網總線上的設備在任何時間
裡都在接受資料。

不過只是將屬於自己的資料傳給該電腦上的套用
程序。
  利用這一點,可以將一台電腦的網路連接設定為接受所有以太
網總線上的資料,從而實現sniffer。


  sniffer通常執行在路由器,或有路由器功能的主機上。這樣就能對大量的資料進行監控。


sniffer屬第二層次的攻擊。通常是攻擊者已經進入了目標系統,然後使用sniffer這種攻擊手段,以便得到更多的資訊。


  sniffer除了能得到密碼或用戶名外,還能得到更多的其他資訊,比如一個其他重要的資訊,在網上傳送的金融資訊等等。



sniffer幾乎能得到任何乙太網上的傳送的資料包。黑客會使用各種方法,獲得系統的控制權並留下再次侵入的後門,以保證sniffer能夠執行。


在Solaris 2.x平台上,sniffer 程序通常被安裝在/usr/bin 或/dev目錄下。

黑客還會巧妙的修改時間,使得sniffer程序看上去是和其它系統程序同時安裝的。


大多數乙太網sniffer程序在後台執行,將結果輸出到某個記錄文件中。黑客常常會修改ps程序,使得系統管理員很難發現執行的sniffer程序。


  乙太網sniffer程序將系統的網路接頭設定為混合模式。

這樣,它就可以監聽到所有流經同一乙太網網段的資料包,不管它的接受者或傳送者是不是執行sniffer的主機。


程序將用戶名、密碼和其它黑客感興趣的資料存入log文件。黑客會等待一段時間 ----- 比如一周後,再回到這裡下載記錄文件。


講了這麼多,那麼到底我們可以用什麼通俗的話來介紹sniffer呢?
電腦網路與電話電路不同,電腦網路是共享通訊通道的。共享意味著電腦能夠接收到傳送給其它電腦的資訊。捕獲在網路中傳輸的資料資訊就稱為sniffing(竊聽)。

  乙太網是現在套用最廣泛的電腦連網方式。乙太網傳輸協定是在同一回路向所有主機傳送資料包資訊。資料包頭包含有目標主機的正確位址。


一般情況下只有具有該位址的主機會接受這個資料包。如果一台主機能夠接收所有資料包,而不理會資料包頭內容,這種方式通常稱為"混雜" 模式。


  由於在一個普通的網路環境中,帳號和密碼資訊以明文方式在乙太網中傳輸, 一旦入侵者獲得其中一台主機的root權限,並將其置於混雜模式以竊聽網路資料,從而有可能入侵網路中的所有電腦。



一句話,sniffer就是一個用來竊聽的黑客手段和工具。

二、sniffer的工作原理

  通常在同一個網段的所有網路接頭都有訪問在物理媒體上傳輸的所有資料的能力,而每個網路接頭都還應該有一個硬體位址,該硬體位址不同於網路中存在的其他網路接頭的硬體位址,同時,每個網路至少還要一個廣播位址。



(代表所有的接頭位址),在正常情況下,一個合法的網路接頭應該只回應這樣的兩種資料畫格:
  1、畫格的目標區域具有和本機網路接頭相匹配的硬體位址。

  2、畫格的目標區域具有"廣播位址"。

  在接受到上面兩種情況的資料包時,nc通過cpu產生一個硬體中斷,該中斷能引起操作系統注意,然後將畫格中所包含的資料傳送給系統進一步處理。


  而sniffer就是一種能將本機nc狀態設成(promiscuous)狀態的軟體,當nc處於這種"混雜"方式時,該nc具備"廣播位址",它對所有遭遇到的每一個畫格都產生一個硬體中斷以便提醒操作系統處理流經該物理媒體上的每一個報文包。

(絕大多數的nc具備置成 promiscuous方式的能力)
  可見,sniffer工作在網路環境中的底層,它會攔截所有的正在網路上傳送的資料,並且通過相應的軟體處理,可以既時分析這些資料的內容,進而分析所處的網路狀態和整體佈局。

值得注意的是:
sniffer是極其安靜的,它是一種消極的安全攻擊。



  通常sniffer所要關心的內容可以分成這樣幾類:

  1、密碼

  我想這是絕大多數非法使用sniffer的理由,sniffer可以記錄到明文傳送的userid和passwd.就算你在網路傳送程序中使用了加密的資料,sniffer記錄的資料一樣有可能使入侵者在家裡邊吃肉串邊想辦法算出你的算法。
  2、金融帳號


  許多用戶很放心在網上使用自己的信用卡或現金帳號,然而sniffer可以很輕鬆截獲在網上傳送的用戶姓名、密碼、信用卡號碼、截止日期、帳號和pin.
  3、偷窺機密或敏感的資訊資料
  通過攔截資料包,入侵者可以很方便記錄別人之間敏感的資訊傳送,或者乾脆攔截整個的email會話程序。

  4、窺探低級的傳輸協定資訊。

  這是很可怕的事,我認為,通過對底層的資訊傳輸協定記錄,比如記錄兩台主機之間的網路接頭位址、遠端網路接頭ip位址、ip路由資訊和tcp連接的字元順序號碼等。



這些資訊由非法入侵的人掌握後將對網路安全構成極大的危害,通常有人用sniffer收集這些資訊只有一個原因:他正在進行一次欺詐,(通常的ip位址欺詐就要求你準確插入tcp連接的字元順序號,這將在以後整理的文章中指出)如果某人很關心這個問題,那麼sniffer對他來說只是前奏,今後的問題要大得多。


(對於進階的hacker而言,我想這是使用sniffer的唯一理由吧)

二.sniffer的工作環境

snifffer就是能夠捕獲網路報文的設備。

嗅探器的正當用處在於分析網路的流量,以便找出所關心的網路中潛在的問題。

例如,假設網路的某一段執行得不是很好,報文的傳送比較慢,而我們又不知道問題出在什麼地方,此時就可以用嗅探器來作出精確的問題判斷。

嗅探器在功能和設計方面有很多不同。有些只能分析一種傳輸協定,而另一些可能能夠分析幾百種傳輸協定。


一般情況下,大多數的嗅探器至少能夠分析下面的傳輸協定:

1.標準乙太網

2.TCP/IP

3.IPX

4.DECNet

嗅探器通常是軟硬體的結合。專用的嗅探器價格非常昂貴。另一方面,免費的嗅探器雖然不需要花什麼錢,但得不到什麼支持。

嗅探器與一般的鍵盤捕獲程序不同。鍵盤捕獲程序捕獲在終端上輸入的鍵值,而嗅探器則捕獲真實的網路報文。嗅探器通過將其置身於網路接頭來達到這個目的——例如將乙太網卡設定成雜收模式。(為了理解雜收模式是怎麼回事,先解釋區域網路是怎麼工作的)。


資料在網路上是以很小的稱為畫格(Ftame)的服務機構傳輸的畫格由好幾部分組成,不同的部分執行不同的功能。

(例如,乙太網的前12個字元存放的是源和目的的位址,這些位告訴網路:資料的來源和去處。乙太網畫格的其他部分存放實際的用戶資料、TCP/IP的報文頭或IPX報文頭等等)。

畫格通過特定的稱為網路驅動程式的軟體進行成型,然後通過網路卡傳送到網線上。


通過網線到達它們的目的機器,在目的機器的一端執行相反的程序。


接收端機器的乙太網卡捕獲到這些畫格,並告訴操作系統畫格的到達,然後對其進行存儲。就是在這個傳輸和接收的程序中,嗅探器會造成安全方面的問題。
每一個在LAN上的工作站都有其硬體位址。


這些位址唯一地表示著網路上的機器(這一點於Internet位址系統比較相似)。

當用戶傳送一個報文時,這些報文就會傳送到LAN上所有可用的機器。
在一般情況下,網路上所有的機器都可以「聽」到通過的流量,但對不屬於自己的報文則不予回應(換句話說,工作站A不會捕獲屬於工作站B的資料,而是簡單的忽略這些資料)。


如果某在工作站的網路接頭處於雜收模式,那麼它就可以捕獲網路上所有的報文和畫格,如果一個工作站被配置成這樣的方式,它(包括其軟體)就是一個嗅探器。


嗅探器可能造成的危害:

1.嗅探器能夠捕獲密碼

2.能夠捕獲專用的或者機密的資訊

3.可以用來危害網路鄰居的安全,或者用來獲取更進階別的訪問權限
事實上,如果你在網路上存在非授權的嗅探器就以為著你的系統已經暴露在別人面前了。


(大家可以試試天行2的嗅探功能)
一般我們只嗅探每個報文的前200到300個字元。用戶名和密碼都包含在這一部分中,這是我們關心的真正部分。工人,也可以嗅探給定接頭上的所有報文,如果有足夠的空間進行存儲,有足夠的那裡進行處理的話,將會發現另一些非常有趣的東西……
簡單的放置一個嗅探器賓將其放到隨便什麼地方將不會起到什麼作用。將嗅探器放置於被攻擊機器或網路附近,這樣將捕獲到很多密碼,還有一個比較好的方法就是放在網路閘道上。如果這樣的話就能捕獲網路和其他網路進行身份鑒別的程序。這樣的方式將成倍地增加我們能夠攻擊的範圍。

三.誰會使用sniffers

可能誰都回知道誰會使用sniffer,但是並不是每個使用它的人都是網路高手,因為現在有很多的sniffer都成了傻瓜似的了,前段時間用的最多的不外乎oicq sniffer。我想那些喜歡查好友ip的朋友都應該記得它吧。呵呵,我都使用過它,現在當然不用了啊!

當然系統管理員使用sniffer來分析網路資訊交通並且找出網路上何處發生問題。


一個安全管理員可以同時用多種sniffer, 將它們放置在網路的各處,形成一個入侵警報系統。對於系統管理員來說sniffer是一個非常好的工具,但是它同樣是一個經常被黑客使用的工具.駭客安裝sniffer以獲得用戶名和帳號,信用卡號碼,個人資訊,和其他的資訊可以導致對你或是你的公司的極大危害如果向壞的方面發展。當它們得到這些資訊後,駭客將使用密碼來進攻其他的internet 站點甚至倒賣信用卡號碼。

四.sniffer是如何在網路上實施的

談這個問題之前還應該先說一下Ethernet的通訊。通常在同一個網段的所有網路接頭都有訪問在媒體上傳輸的所有資料的能力,而每個網路接頭都還應該有一個硬體位址,該硬體位址不同於網路中存在的其它網路接頭的硬體位址,同時,每個網路至少還要一個廣播位址。在正常情況下,一個合法的網路接頭應該只回應這樣的兩種資料畫格:   

  1P畫格的目標區域具有和本機網路接頭相匹配的硬體位址。   

  2P畫格的目標區域具有「廣播位址」。   

  在接受到上面兩種情況的資料包時,網路卡通過cpu產生一個硬體中斷。該中斷能引起操作系統注意,然後將畫格中所包含的資料傳送給系統進一步處理。而sniffer就是一種能將本機網路卡狀態設成雜亂模式(promiscuous Mode)的軟體。當網路卡處於雜亂模式時,該網路卡具備「廣播位址」,它對所有遇到的每一個畫格都產生一個硬體中斷以提醒操作系統處理每一個報文包。(絕大多數的網路卡具備設定成雜亂模式的能力。


  可見,sniffer工作在網路環境中的底層,它會攔截所有的正在網路上傳送的資料。


通過相應的軟體處理,可以既時分析這些資料的內容,進而分析所處的網路狀態和整體佈局。值得注意的是:sniffer是極其安靜的,它是一種消極的安全攻擊。

四.哪裡可以得到sniffer

我們講的sniffer,主要是在unix系統下運用的,至於那些oicq sniffer就不在我們討論的範圍。
Sniffer是黑客們最常用的入侵手段之一。


你可以在經過允許的網路中執行sniffer,瞭解它是如何有效地危及本機機器安全。

  Sniffer可以是硬體,也可以是軟體。現在品種最多,套用最廣的是軟體Sniffer,絕大多數黑客們用的也是軟體Sniffer。

  以下是一些也被廣泛用於偵錯網路故障的sniffer工具:

  (一).商用sniffer:

  1. Network General.
  Network General開發了多種產品。最重要的是Expert Sniffer,它不僅僅可以sniff,還能夠通過高效能的專門系統傳送/接收資料包,說明 診斷故障。還有一個增強產品"Distrbuted Sniffer System"可以將UNIX工作站作為sniffer控制台,而將sniffer agents(代理)分佈到遠端主機上。


  2. Microsofts Net Monitor
  對於某些商業站點,可能同時需要執行多種傳輸協定--NetBEUI、IPX/SPX、TCP/IP、802.3和SNA等。這時很難找到一種sniffer說明 解決網路問題,因為許多sniffer往往將某些正確的傳輸協定資料包當成了錯誤資料包。


Microsoft的Net Monitor(以前叫Bloodhound)可以解決這個難題。它能夠正確區分諸如Netware控制資料包、NT NetBios名字服務廣播等獨特的資料包。

(etherfind只會將這些資料包標識為類型0000的廣播資料包。)這個工具執行在MS Windows 平台上。它甚至能夠按MAC位址(或主機名)進行網路統計和會話資訊監視。只需簡單地按下某個會話即可獲得tcpdump標準的輸出。過濾器設定也是最為簡單的,只要在一個對話視窗中按下需要監視的主機即可。

  (二).免費軟體sniffer
  1. Sniffit由Lawrence Berkeley 實驗室開發,執行於Solaris、SGI和Linux等平台。可以選項源、目標位址或位址集合,還可以選項監聽的連接阜、傳輸協定和網路接頭等。這個SNIFFER預設狀態下只接受最先的400個字元的資訊包,這對於一次登入會話行程剛剛好。


  2. SNORT:這個SNIFFER有很多選項供你使用並可移植性強,可以記錄一些連接資訊,用來跟蹤一些網路活動。

  3. TCPDUMP:這個SNIFFER很有名,linux,FREEBSD還搭帶在系統上,是一個被很多UNIX高手認為是一個專業的網路系統管理工具,記得以前TsutomuShimomura(應該叫下村侵吧)就是使用他自己修改過的TCPDUMP版本來記錄了KEVINMITNICK攻擊他系統的記錄,後來就配合FBI抓住了KEVINMITNICK,後來他寫了一文:使用這些LOG記錄描述了那次的攻擊,HowMitnickhackedTsutomuShimomurawithanIPsequenceattack
( http://www.attrition.org/security/ne...r/shimomur.txt )


  4. ADMsniff:這是非常有名的ADM黑客集團寫的一個SNIFFER程序。

  5. linsniffer:這是一個專門設計雜一LINUX平台上的SNIFFER。

  6. Esniffer:這個也是一個比較有名的SNIFFER程序。

  7. Solsniffer:這是個Solarissniffer,主要是修改了SunSniff專門用來可以方便的在Solair平台上編譯。

  8. Ethereal是一關於GTK+的一個圖形化Sniffer

  9. Gobbler(for MS-DOS&Win95)、Netman、NitWit、Ethload...等等。


(三).UNIX下的sniffer

UNIX下的sniffer,我比較傾向於snoop.Snoop是按Solaris的標準製作的,雖然Snoop不像是Sniffer Pro那樣好,但是它是一個可設置性非常強的sniffer,在加上它是免費的(和Solaris附一起).誰能打敗它的地位?你可以在極短時間內抓獲一個資訊包或是更加深的分析.如果你想學習如何使用snoop,看下面的url:
http://www.enteract.com/~lspitz/snoop.html


(四).Linux下的sniffer工具

Linux下的sniffer工具,我推薦Tcpdump。


[1].tcpdump的安裝
在linux下tcpdump的安裝十分簡單,一般由兩種安裝方式。一種是以rpm包的形式來進行安裝。另外一種是以源程序的形式安裝。

  1. rpm包的形式安裝
  這種形式的安裝是最簡單的安裝方法,rpm包是將軟體編譯後打包成二進制的格式,通過rpm指令可以直接安裝,不需要修改任何東西。以超級用戶登入,使用指令如下:

    #rpm -ivh tcpdump-3_4a5.rpm
  這樣tcpdump就順利地安裝到你的linux系統中。怎麼樣,很簡單吧。


  2. 源程序的安裝

  既然rpm包的安裝很簡單,為什麼還要採用比較複雜的源程序安裝呢?其實,linux一個最大的誘人之處就是在她上面有很多軟體是提供源程序的,人們可以修改源程序來滿足自己的特殊的需要。所以我特別建議朋友們都採取這種源程序的安裝方法。


  · 第一步 取得源程序 在源程序的安裝方式中,我們首先要取得tcpdump的源程序分發包,這種分發包有兩種    形式,一種是tar壓縮包(tcpdump-3_4a5.tar.Z),另一種是rpm的分發包(tcpdump-3_4a5.src.rpm)。這兩種     形式的內容都是一樣的,不同的僅僅是壓縮的方式.tar的壓縮包可以使用如下指令解開:

     #tar xvfz tcpdump-3_4a5.tar.Z
    rpm的包可以使用如下指令安裝:
     #rpm -ivh tcpdump-3_4a5.src.rpm
    這樣就把tcpdump的來源碼解壓到/usr/src/redhat/SOURCES目錄下.

  · 第二步 做好編譯源程序前的準備活動

    在編譯源程序之前,最好已經確定庫文件libpcap已經安裝完畢,這個庫文件是tcpdump軟體所需的庫文件。同樣,你同時還要有一個標準的c語言編譯器。


在linux上標准的c 語言編譯器一般是gcc。


在tcpdump的源程序目錄中。有一個文件是Makefile.in,configure指令就是從Makefile.in文件中自動產生Makefile文件。在Makefile.in文件中,可以根據系統的配置來修改BINDEST 和 MANDEST 這兩個巨集定義,預設值是


      BINDEST = @sbindir @
      MANDEST = @mandir @

    第一個巨集值表明安裝tcpdump的二進制文件的路徑名,第二個表明tcpdump的man 說明 頁的路徑名,你可以修改它們來滿足系統的需求。

  · 第三步 編譯源程序

    使用源程序目錄中的configure指令碼,它從系統中讀出各種所需的內容。


並且根據Makefile.in文件自動產生Makefile文件,以便編譯使用.make 指令則根據Makefile文件中的規則編譯tcpdump的源程序。使用make install指令安裝編譯好的tcpdump的二進制文件。

    總結一下就是:

      # tar xvfz tcpdump-3_4a5.tar.Z
      # vi Makefile.in
      # . /configure
      # make
      # make install

[2].Tcpdump的使用
  tcpdump採用指令行方式,它的指令格式為:
  tcpdump [ -adeflnNOpqStvx ] [ -c 數量 ] [ -F 檔案名 ]
          [ -i 網路接頭 ] [ -r 檔案名] [ -s snaplen ]
          [ -T 類型 ] [ -w 檔案名 ] [陳述式 ]

  1. tcpdump的選項介紹

   -a    將網路位址和廣播位址轉變成名字;

   -d    將匹配資訊包的程式碼以人們能夠理解的彙編格式給出;

   -dd    將匹配資訊包的程式碼以c語言程序段的格式給出;

   -ddd    將匹配資訊包的程式碼以十進制的形式給出;

   -e    在輸出行列印出資料鏈路層的頭部資訊;

   -f    將外部的Internet位址以數位的形式列印出來;

   -l    使標準輸出變為緩衝行形式;

   -n    不把網路位址轉換成名字;

   -t    在輸出的每一行不列印時間戳;

   -v    輸出一個稍微詳細的資訊,例如在ip包中可以包括ttl和服務類型的資訊;

   -vv    輸出詳細的報文資訊;

   -c    在收到指定的包的數目後,tcpdump就會停止;

   -F    從指定的文件中讀取陳述式,忽略其它的陳述式;

   -i    指定監聽的網路接頭;

   -r    從指定的文件中讀取包(這些包一般通過-w選項產生);

   -w    直接將包寫入文件中,並不分析和列印出來;

   -T    將監聽到的包直接解釋為指定的類型的報文,一般的類型有rpc (遠端程序 使用)和snmp(簡單網路管理傳輸協定;)


  2. tcpdump的陳述式介紹

   陳述式是一個正則陳述式,tcpdump利用它作為過濾報文的條件,如果一個報文滿足陳述式的條件,則這個報文將會被捕獲。如果沒有給出任何條件,則網路上所有的資訊包將會被截獲。


   在陳述式中一般如下幾種類型的關鍵字,一種是關於類型的關鍵字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主機,net 202.0.0.0 指明 202.0.0.0是一個網路位址,port 23 指明連接阜號是23。


如果沒有指定類型,預設的類型是host.
   第二種是確定傳輸方向的關鍵字,主要包括src , dst ,dst or src, dst and src ,這些關鍵字指明了傳輸的方向。


舉例說明,src 210.27.48.2 ,指明ip包中源位址是210.27.48.2 , dst net 202.0.0.0 指明目的網路位址是202.0.0.0 。如果沒有指明方向關鍵字,則預設是src or dst關鍵字。


   第三種是傳輸協定的關鍵字,主要包括fddi,ip ,arp,rarp,tcp,udp等類型。


Fddi指明是在FDDI(分佈式光纖資料接頭網路)上的特定的網路傳輸協定,實際上它是"ether"的別名,fddi和ether具有類似的源位址和目的位址,所以可以將fddi傳輸協定包當作ether的包進行處理和分析。



其他的幾個關鍵字就是指明了監聽的包的傳輸協定內容。


如果沒有指定任何傳輸協定,則tcpdump將會監聽所有傳輸協定的資訊包。


   除了這三種類型的關鍵字之外,其他重要的關鍵字如下:

gateway, broadcast,less,greater,還有三種邏輯運算,取非運算是 not ! , 與運算是and,&&;或運算 是or ,;

   這些關鍵字可以組合起來構成強大的組合條件來滿足人們的需要,下面舉幾個例子來說明。


   (1)想要截獲所有210.27.48.1 的主機收到的和發出的所有的資料包:
    #tcpdump host 210.27.48.1
   (2) 想要截獲主機210.27.48.1 和主機210.27.48.2 或210.27.48.3的通信,使用指令:
(在指令行中適用括號時,一定要
    #tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)


   (3) 如果想要獲取主機210.27.48.1除了和主機210.27.48.2之外所有主機通信的ip包,使用指令:

    #tcpdump ip host 210.27.48.1 and ! 210.27.48.2


   (4)如果想要獲取主機210.27.48.1接收或發出的telnet包,使用如下指令:
    #tcpdump tcp port 23 host 210.27.48.1

  3. tcpdump 的輸出結果介紹
   下面我們介紹幾種典型的tcpdump指令的輸出資訊



   (1) 資料鏈路層頭資訊


   使用指令#tcpdump --e host ice
   ice 是一台裝有linux的主機,她的MAC位址是0:90:27:58:AF:1A
   H219是一台裝有SOLARIC的SUN工作站,它的MAC位址是8:0:20:79:5B:46;上一條指令的輸出結果如下所顯示:
21:50:12.847509 eth0 ice.telne
t 0:0(0) ack 22535 win 8760 (DF)

  分析:21:50:12是顯示的時間, 847509是ID號,eth0 表示從網路接頭設備傳送資料包, 8:0:20:79:5b:46是主機H219的MAC位址,它表明是從源位址H219發來的資料包. 0:90:27:58:af:1a是主機ICE的MAC位址,表示該資料包的目的位址是ICE . ip 是表明該資料包是IP資料包,60 是資料包的長度, h219.33357 > ice.telnet 表明該資料包是從主機H219的33357連接阜發往主機ICE的TELNET(23)連接阜. ack 22535 表明對序列號是222535的包進行回應. win 8760表明傳送視窗的大小是8760.

  (2) ARP包的TCPDUMP輸出資訊

   使用指令#tcpdump arp

   得到的輸出結果是:

  22:32:42.802509 eth0 > arp who-has route tell ice (0:90:27:58:af:1a)
  22:32:42.802902 eth0 表明從主機發出該資料包, arp表明是ARP請求包, who-has route tell ice表明是主機ICE請求主機ROUTE的MAC位址。


0:90:27:58:af:1a是主機ICE的MAC位址。

  (3) TCP包的輸出資訊

   用TCPDUMP捕獲的TCP包的一般輸出資訊是:

  src > dst: flags data-seqno ack window urgent options

  src > dst:表明從源位址到目的位址, flags是TCP包中的標誌資訊,S 是SYN標誌, F (FIN), P (PUSH) , R (RST) "." (沒有標記); data-seqno是資料包中的資料的順序號, ack是下次期望的順序號, window是接收快取的視窗大小, urgent表明資料包中是否有緊急游標. Options是選項.

  (4) UDP包的輸出資訊


   用TCPDUMP捕獲的UDP包的一般輸出資訊是:

  route.port1 > ice.port2: udp lenth
  UDP十分簡單,上面的輸出行表明從主機ROUTE的port1連接阜發出的一個UDP資料包到主機ICE的port2連接阜,類型是UDP, 包的長度是lenth上面,我就詳細介紹了TCPDUMP的安裝和使用,希望會對大家有所說明 。


如果想要熟練運用TCPDUMP這個LINUX環境下的SNIFFER利器,還需要大家在實踐中總結經驗,充分發揮它的威力。


(五).windows平台上的sniffer

我推薦netxray和sniffer pro軟體,想必大家都用過他們,不過我在這兒還要再簡單介紹一下他們。


netxray的使用說明
1.1.1.1----2.2.2.2----3.3.3.3----4.4.4.4 這是一個ShareHub連接下的區域網路


5.5.5.5 這是一個8080連接阜上的http/ftp proxy


Internet

啟動Capture,進入Capture Setting,選項Profiles-->New,
以Default為範本,起名叫proxy,選項ok-->Done,
設定過濾所有目標IP是5.5.5.5的報文,即Any---->5.5.5.5
開始抓包,同時從本地機使用http proxy,然後就可以停止抓包。



選一個目標IP是5.5.5.5的報文,按滑鼠右鍵,選項"編輯顯示過濾",
選項"資料模式",選項Add Pattern,到TCP層選8080目標連接阜,
用滑鼠選項"設定資料",起名"目標連接阜8080"。回去選項"套用顯示
過濾"。


以後用proxy規則過濾將只過濾目標IP是5.5.5.5、目標連接阜
是8080的報文。要是對傳輸協定分析熟悉,根本不用寫這麼多,以後
要問NetXray的使用說明,請直奔主旨,否則回答起來實在囉嗦。
關鍵是有些人太懶惰,不樂意自己實踐。
如何指定源連接阜、目標連接阜?

1. 注意Data Pattern和Address是邏輯與的關係

2. 進入Data Pattern設定頁


比如你想設定這樣一個過濾規則,源連接阜是2323或者目標連接阜是2323
的IP包,先選第一行,用Toggle AND/OR調整成OR,因為你的邏輯陳述式
的最外層是 OR

3. 選項Add Pattern,在彈出的對話視窗裡設定

Packet 34 2 Hex

從頂頭開始填寫 09 13,因為十進制的2323對應十六進制的0x0913,而IP包
使用網路字元順序,高字元在低位址。


起名任意,比如源連接阜2323,確定

再次選項Add Pattern
Packet 36 2 Hex 從頂頭開始填寫 09 13
起名任意,比如目標連接阜2323,確定

於是最外層的OR下有兩個葉子,分別對應兩個Pattern。



4. 還有很多變化,但都和這個基本例子差不多,你的過濾規則可以非常複雜。



最外層的OR表示它下面的所有葉子之間都是OR的關係,所以我建議當你企圖
建立一個非常複雜的規則的時候先寫出邏輯陳述式再來操作,以免不必要的
重複勞動。


如何抓ftp/pop3密碼明文?


NetXray所謂的進階傳輸協定過濾事實上就是連接阜過濾,用(2)中介紹的方法指定源連接阜 目標連接阜均過濾0x00 0x17,就可以達到和指定telnet過濾一樣的效果。NetXray
認為telnet就是23連接阜,所以如果想捕捉一個非標準telnetd的通信,必須自己 指定連接阜過濾。此外Pwin98下services文件的修改不影響NetXray認為telnet就是 連接阜23。

每次指定捕捉telnet傳輸協定,但顯示的時候可能會發現有些包沒有標記成telnet,而 是tcp,為什麼?因為這些標記成tcp的包沒有telnet資料區,雖然在完整的物理畫格 中有資料,但根據IP報頭中的 ntohs( ip->tot_len ) ,對於IP報文來說沒有telnet

資料區。物理畫格中為什麼有?可能是考慮"填充",我不知道是資料鏈路層從內核返 回的時候帶上來的"填充",還是對端傳送的時候就已經"填充",在linux下用
sock_packet抓包也存在同樣的問題,一般情況下recvfrom返回的字元數減去各個 報頭長度得到資料區長度,但出現"填充"時就不是這樣了,所以處理IP傳輸協定族時, 一定要用 ntohs( ip->tot_len ),我寫linuxkiller時才認真注意到這個問題。



那麼用NetXray時,不要看第三欄,那裡是完整的物理畫格,有很多干擾資訊,應該看 第二欄的資料區。

如果是分析telnet傳輸協定並還原螢幕顯示,只需要抓從server到client的回顯資料即 可,因為密碼不回顯,這種過濾規則下抓不到密碼明文。


在linux下編程實現時需要
考慮95個可列印字串、漢字以及32個控制字串的顯示過濾問題。


如果想抓telnet的 密碼明文,需要抓client到server的資料。


Pred寫的Sniff監聽別人的BBS登入就像 看動畫,但看不到密碼,應該是只抓從server到client的回顯資料。

nethackii可以抓pop3/ftp/telnet的密碼,對於前兩者很容易實現,因為有PASS關 鍵字可以鑒別,後者稍微麻煩些,需要重組。值得一提的是foxmail的郵件監視器, 簡直就是定時傳送密碼明文,用NetXray抓從client到server包,指定過濾PASS關鍵 字,非常清楚。


下面簡單說一下這個設定:

先指定IP過濾規則,應該只指定 any any,或者乾脆不指定IP位址,以最大
可能地捕捉密碼。


然後增加一個過濾模式,Packet 54 4 Hex 0x50 41 53 53

再增加一個過濾模式,Packet 54 4 Hex 0x70 61 73 73

兩者是or模式,後者是因為這種關鍵字在網路傳輸中大小寫不敏感,比如
cuteftp傳送的是pass。剩下的就是等密碼來了。注意,不必指定過濾特定進階協
議,直接指定過濾IP傳輸協定族就可以了,用這種辦法ftp/pop3密碼是很容易看清楚的。

因為許多ftp/pop3的密碼可以telnet 23,所以......
這裡的使用說明可以用於sniffer pro 2.6,因為這兩個東西實際是一個公司的。




雖然很多人告訴我sniffer pro比netxray強大,但是我個人覺得在傳輸協定分析方面
netxray比sniffer pro要方便,雖然支持的傳輸協定少了點,但是在設定過濾規則和
套用過濾規則等小操作上,顯然sniffer pro沒有吸取netxray的精華,這些小操
作平時很難遇到,但真正做傳輸協定分析指定一些複雜的過濾規則的時候就會碰上。

今天我們介紹的是如何抓取RPC報文,下面給出的辦法僅僅是種嘗試而已。

因為RPC Server使用動態連接阜,所以你無法進行一般的連接阜過濾設定,如果一定
要設定可能需要嘗試,具體例子請參看>

這裡給一種不是很科學的辦法:

1. 指定進行IP過濾,設定Any RPC Server IP


2. 指定對TCP以及UDP傳輸協定進行過濾,因為RPC Server可能的底層支持傳輸協定包括二者。

3. 進入Data Pattern設定頁,用Toggle AND/OR調整成OR,因為你的邏輯陳述式
的最外層是 OR


4. 選項Add Pattern,在彈出的對話視窗裡設定

Protocol 60 8 Hex 00 00 00 00 00 00 00 02
起名TCP RPC CALL

5. 同4的步驟,依次選項Add Pattern,在彈出的對話視窗裡設定

Protocol 60 4 Hex 00 00 00 01
起名TCP RPC REPLY

Protocol 32 8 Hex 00 00 00 00 00 00 00 02
起名UDP RPC CALL

Protocol 32 4 Hex 00 00 00 01
起名UDP RPC REPLY

這裡給的辦法僅僅代表一種思路,如果你發現並沒有抓住某個特定RPC SERVER
的報文,可以自行調整過濾規則。要理解這個過濾規則,需要RPC本身的知識,
可以參看>。

我曾經想設定遠端程序號的過濾規則,但發現RPC REPLY報文中沒有類BIOS字段對
應遠端程序號,只好放棄。如果你只想抓RPC CALL報文,可以考慮這個思路。
NetXray發包前可以在decode狀態下編輯,sniffer pro 2.6卻不像NetXray那樣
善解人意,只能進行二進制編輯。sniffer pro的Add Pattern裡的TAB鍵極其混
帳,並且這裡也不提供decode支持。始終不能理解這些地方。不過破解版的
NetXray在decode時有些地方對不准,功能表window也不時失靈。

暫略(回頭補吧,沒時間了)


3.6據說比3.5加強了一些,包括退出後殭屍行程的問題,啟動中亂報錯問題,現在似
乎支持撥號橋接器上的抓包了(以前如何我還真沒測試過),但在過濾規則上毫無改觀。
以前過濾規則全部在昇級程序中丟掉了,只好重新設定。下面是IP過濾規則的設定:

1.從功能表上選項Capture-->Filter,選項左上角的[ New Profile ]按鈕,輸入你覺得
切合要求的名字,比如IP。這裡有個小竅門,如果你已經有一個合理可用的Default
規則,就先選Default規則,然後點擊左上角的[ New Profile ]按鈕,那麼新規
則以Default規則為範本產生。

2.不要動TCP/UDP Port頁、Address頁

3.選Layer 3+頁,假設所有的複選框都選了,因為我們設定的是IP過濾規則,要求
抓取所有IP報文。

注意LanExplorer把ARP歸入Layer 3+頁,如果你的確只想抓IP報文,清除該頁第一個
ARP複選框。反之,如果你只想抓ARP報文,應該清空Layer 3+頁後只選項該頁第一個
ARP複選框。

4.選Layer 2/3頁,假設所有的複選框都清空了,從左邊開始,在Ethernet II欄裡只
選項IP/ARP複選框,注意和Layer 3+頁之間的關係。

3.5版這裡會自動替你選LLC欄裡的IP複選框以及SNAP欄裡的IP/ARP複選框,3.6版
沒有這個毛病了。

5.選Layer 2頁,假設所有的複選框都清空了,在VLAN欄裡選Others複選框,MAC欄
根據需要指定,比如只想抓取單播IP報文,就只選Unicast複選框。VLAN欄裡
Others複選框必須選,至於為什麼,不清楚。

回頭看第三條,如果想抓ARP報文,因為Arp Request是廣播報文,為了同時抓取請求
和回應報文,必須在MAC欄裡選Broadcast複選框。當然,只選Unicast複選框,
將抓取所有Arp Reply報文。

點擊中文的[ 確定 ]按鈕(太奇怪了,LanExplorer為什麼這裡出現了中文按鈕,而其
他地方沒有)

6.從功能表上選項Capture-->Filter,選你要使用的過濾過則,如果剛剛新增過新規則,
預設的當前過濾規則就是新規則。從功能表上選項Capture-->Start。

今天偵錯一個程序的時候,由於需要利用SIGALRM進行ARP欺騙,需要抓幾個ARP回應
報文驗證定時機制起作用了,但又不想都抓,ARP報文太多了。

1. 以default為範本複製一條規則arp

2. 在"進階過濾"裡選ARP傳輸協定

3. 在"資料範本"裡選項"增加範本",此時預設是AND規則

4. 依次輸入或選項

Packet 28 4 Hex

5. 從頂頭開始輸入

C0 A8 0A 19

就是說源IP為192.168.10.25

描述性文字任意,比如srcIp == 192.168.10.25

6. 一路確定下去即可

事實上平時設定過濾規則不需要這樣麻煩,可以先用母體規則(比如default)抓取一
些報文,然後用滑鼠選你需要的報文,保持不動的情況下進入過濾規則設定界面,
新增一個過濾規則arp,此時"資料範本"裡的"設定資料"按鈕可用,在左面選項你感
興趣的資料域,點擊"設定資料",會自動替你產生一個"資料範本",然後根據需要稍
微修改一下即可。即使你對TCP/IP傳輸協定非常熟悉,也沒有必要自己計算偏移量。
-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。

  你希望檢查sniffer是否能執行sniffit:~/#sniffit-d-p7-t66.66.66.7 並且開另一個視窗:


  sniffit:~/$telnettarget.com7


  你可以看到sniffer將你telnet到對方7號連接阜echo服務的包捕獲了。

  你希望截獲target.com上的用戶密碼

  sniffit:~/#sniffit-p23-t66.66.66.7

  target.com主機的根用戶聲稱有奇怪的FTP連接並且希望找出他們的擊鍵
  sniffit:~/#sniffit-p21-l0-t66.66.66.7

  你希望能閱讀所有進出target.com的郵件

  sniffit:~/#sniffit-p25-l0-b-t66.66.66.7&或者sniffit:~/#sniffit-p25-l0-b-s66.66.66.7&
  你希望使用用戶交互界面


  sniffit:~/#sniffit-i
  有錯誤發生而且你希望截獲控制資訊
  sniffit:~/#sniffit-Picmp-b-s66.66.66.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

  你可以用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] 在NT下的sniffit


  Sniffit 0.3.7推出了NT版本,也支持WINDOWS2000,這個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/windumphttp://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口連接。


五.如何監測主機正在竊聽
如何才知道有沒有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就可以檢查電腦是否正在竊聽。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
有 2 位會員向 psac 送花:
tmpc (2007-03-14),古里特 (2009-04-07)
感謝您發表一篇好文章
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 03:27 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1