抓包工具的運用

來源:互聯網
上載者:User

抓包工具Ethereal的基本使用
這是網上熱心人寫的教程,我實踐了一下,很簡單,不過基本的工作是夠用了,我暫且整理整理。
完全可以按照步驟進行基本的抓包。

1.    使用前參數設定——capture 選項設定

interface:  指定在哪個介面(網卡)上抓包。一般情況下都是單網卡,使用預設。
limit each packet:  限制每個包的大小,預設情況不限制
capture packets in promiscuous mode:是否開啟混雜模式。如果開啟,抓取所有的資料包。一般情況下只需要監聽本機收到或者發出的包,因此應該關閉這個選項。
filter: 過濾器。只抓取滿足過濾規則的包(暫時略過,在主介面上進行,比較方便)
file: 如果需要將抓到的包寫到檔案中,在這裡輸入檔案名稱。
use ring buffer: 是否使用迴圈緩衝。預設情況下不使用,即一直抓包。注意,迴圈緩衝只有在寫檔案的時候才有效。如果使用了迴圈緩衝,還需要設定檔案的數目,檔案多大時回卷

其他的項選擇預設的就可以了

2. 使用抓包

2.1直接使用
     啟動ethreal以後,選擇菜單capature->start,開始抓包,按stop結束抓包。抓的包就會顯示在面板中,並且已經分析好了。

     注意:該方法十分簡單,但是卻沒有進行過濾,抓的包過多,對分析問題不太方便。

2.2過濾器抓包

2.2.1  基本結構是:
[not] primitive [and|or [not] primitive ...]

在抓包完成以後,顯示過濾器可以用來找到你感興趣的包,可以根據
1)協議
2)是否存在某個域        
3)域值
4)域值之間的比較
來尋找你感興趣的包。

舉個例子,如果你只想查看使用tcp協議的包,在ethereal視窗的左下角的filter中輸入tcp,然後斷行符號,ethereal就會只顯示tcp協議的包。如所示
值比較運算式

2.2.2  過濾器操作符
可以使用下面的操作符來構造顯示過濾器

自然語言 類c表示   舉例
eq  ==   ip.addr==10.1.10.20
ne  !=   ip.addr!=10.1.10.20
gt  >   frame.pkt_len>10
lt 
ge  >=   frame.pkt_len>=10
le 

運算式組合
可以使用下面的邏輯操作符將運算式組合起來
自然語言 類c表示   舉例
and  &&   邏輯與,比如ip.addr=10.1.10.20&&tcp.flag.fin
or  ||   邏輯或,比如ip.addr=10.1.10.20||ip.addr=10.1.10.21
xor  ^^   異或,如tr.dst[0:3] == 0.6.29 xor tr.src[0:3] ==
not  !   邏輯非,如 !llc

例如:

我想抓取ip地址是192.168.2.10的主機,它所接收收或發送的所有的http報文,那麼合適的顯示filter(過濾器)就是

請記住一個訣竅:只好在filter的背景是綠色,就證明你設定的filter是合乎規定的,但是當背景是紅色時,就說明你設定的filter是ethereal不允許的,是不對的。如

所有的過濾器(filter)都可以在filter旁邊的expression…中選取。

3.  升級抓包軟體——在ethereal使用協議外掛程式

ethereal能夠支援許多協議,但有些協議需要安裝外掛程式以後才能解,比如h.323

以h.323協議為例,首先下載ethereal的h.323外掛程式,
http://www.voice2sniff.org/
下載完了以後將檔案(h323.dll)解壓到ethereal安裝目錄的plugin/0.9.x目錄下面,比如我的是0.9.11
然後,需要進行一下設定
1)啟動ethereal
2)菜單edit->preference
3)單擊protocols前面的"+"號,展開protocols
4)找到q931,並單擊
5)確保"desegment....   tcp segments"是選中的(即方框被按下去)
6)單擊tcp
7)確保"allow....tcp streams"是選中的
8)確保沒有選中"check....tcp checksum"和"use....sequence numbers"
9)單擊tpkt
10)確保"desegment....tcp segments"是選中的
11)點擊save,然後點擊apply,然後點擊ok

你也完全可以不斷地重新安裝新版本winpcap和ethreal,這樣就可以不需在舊的ethreal的版本中安裝新的外掛程式來支援新的協議外掛程式。這也是懶人的一種做法j

   後續有時間再根據工作用到添加,整理手頭的另外幾份抓包資料。
本貼來自天極網群樂社區--http://q.yesky.com/group/review-17808856.html

網路抓包工具Ethereal

(2010-01-01 10:09:48)

標籤:

雜談
分類:測試實用技術
網路抓包工具Ethereal

Q:如何使用Ethereal進行抓包

1,先過濾後抓包:首先在Capture Options點擊Capture Filter設定過濾規則。若要即時查看,請勾選Display Options的Update list of packets in real time,然後包。                       樣本:輸入host 192.168.1.5 and port 80,僅抓取IP為192.168.1.5,連接埠為80的包。

2,先抓包後過濾:抓包後,在Filter中輸入運算式過濾。
樣本:輸入ip.src,ip.dst,tcp.srcport,tcp.dstport,tcp.ack,tcp.len,eth等,可與關聯運算式配合使用。如ip.src==192.168.1.5 &&tcp.srcport==80,僅顯示源IP為192.168.1.5,源連接埠為80的包。

Q:如何分析使用Ethereal抓到的包?

這裡簡單以TCP/IP為例(修改網摘),

一,資料連結層:

   1、Destination:目的MAC地址。(eth.src)

   2、Source:源MAC地址。(eth.dst)

   3、Type:乙太網路類型(IP0x0800,8表示為乙太網路)。(eth.type)

二,IP網路層:

   1、Version=4,表示IP協議的版本號碼為4.該部分佔4個BIT位。(ip.version)

  2、Header Length=20 Bytes,表示IP包頭的總長度為20個位元組。該部分佔4個BIT位,單位為4個位元組,因此,一個IP包頭的長度最長為“1111”,即15*4=60個位元組。

  3、Type of Service=00,表示服務類型為0.該部分用二個十六進位值來表示,共佔8個BIT.

  8個BIT的含義是:

      000          前三位不用

         0         表示最小時延,如Telnet服務使用該位

          0        表示輸送量,如FTP服務使用該位

           0        表示可靠性,如SNMP服務使用該位

            0        表示最小代價

             0       不用

  4、Total Length=48Bytes,表示該IP包的總長度為48個位元組。該部分佔16個BIT,單位為Byte.由此可見,一個IP資料包的最大長度為2的 16次方減1,即:65535個位元組。因此,在乙太網路中能夠傳輸的最大IP資料包為65535個位元組。(ip.len)

  5、Identification=363,表示IP包識別號為363.該部分佔16個BIT,以十進位數表示。(ip.id)

  6、Flags,表示片標誌,佔3個BIT.各位含義分別為:第一個“0”不用,第二個“0”為分區標誌位,“1”表示分區,“0”表示不分版本。第三個0為是否最後一片標誌位,0表示最後一片,1表示還有更多的片。(ip.flags)

  7、Fragment Offset=0,表示片位移為0個Bytes.該部分佔13個BIT.

  8、Time to Live=128Secongs/Hops,表示存留時間TTL值為128.該部分佔8個BIT.(ip.ttl)

  9、Proctol=6(TCP),表示協議類型為TCP,協議代碼是6.如果是UDP協議,則此處的協議代碼應為17.如果是ICMP協議,則此處的協議代碼應為1.該部分佔8個BIT.(ip.proto)

  10、Header Checksun=4035(correct),表示IP包頭校正和為4035,括弧內的Correct表示此IP資料包是正確的,沒有被非法修改過。該部分佔16個BIT,用十六進位表示。(ip.checksum)

  11、Source Address=76.88.16.104,表示IP資料包源地址為:76.88.16.104.該部分佔32個BIT.(ip.src)

  12、Destination Address=76.88.16.16,表示IP資料包目的地址為:76.88.16.16.該部分佔32個BIT.(ip.dst)

  13、No Options,表示IP資料包中未使用選項部分。當需要記錄路由時才使用該選項。

三,TCP傳輸層:

   1、Source Port=1038,表示發起串連的源連接埠為1038.該部分佔16個BIT.通過此值,可以看出發起串連的電腦源連接埠號碼。(tcp.srcport)

  2、Destination Port=21(FTP-CTRL),表示要串連的目的連接埠為21.該部分佔16個BIT.通過此值,可以看出要登入的目的連接埠號碼。21連接埠表示是FTP服務連接埠。(tcp.dstport)

  3、Initial Sequence Number=1791872318,表示初始串連的請求號,即SEQ值。該部分佔32個BIT,值從1到2的32次方減1.(tcp.seq)

  4、Acknowledgment Number=1791872319,表示對方的應答號應為1791872319,即對方返回的ACK值。該部分佔32個BIT,值從1到2的32次方減1.(tcp.ack)

  5、Data Offset=28 Bytes,表示資料位移的大小。該部分佔4個BIT.

  6、Reserved Bites:保留位,此處不用。該部分佔6個BIT.

  7、Flags=02.該值用兩個十六進位數來表示。該部分長度為6個BIT,6個標誌位的含義分別是:(tcp.flags)

      0        URG,緊急資料標誌,為1表示有緊急資料,應立即進行傳遞。

       0        ACK,確認標誌位,為1表示此資料包為應答資料包

        0       PSH,PUSH標誌位,為1表示此資料包應立即進行傳遞。

         0       RST:複位標誌位。如果收到不屬於原生資料包,則返回一個RST

          0      SYN:串連請求標誌位。為1表示為發起串連的請求資料包。

           0      FIN:結束串連請求標誌位。為1表示是結束串連的請求資料包。

  8、Window=64240,表示視窗是64240.該部分佔16個BIT.

  9、CheckSum=92D7(Correct),表示校正和是92D7.該部分佔16個BIT,用十六進位表示。(tcp.checksum)

  10、Urgent Pointer=0,表示緊急指標為0.該部分佔16個BIT.

  11、Maximum Segment Size=1460,表示最大段大小為1460個位元組。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.