實驗環(huán)境
實驗環(huán)境 操作機:Windows XP
實驗工具:
Tools
Path
Wireshark
桌面
實驗文件:Lab1-1.pcapng
本課程我們將認識Wireshark的界面份氧。
實驗步驟
下載實驗文件
快速查找實驗工具
打開桌面 Everything
搜索工具半火,輸入實驗工具名稱季俩,右擊選擇“打開路徑”梅掠,跳轉(zhuǎn)實驗工具所在位置。
以查找BURP
為例為大家演示酪我。
請訪問http://file.ichunqiu.com/45668f52
下載實驗文件且叁。
小i提示:
在本次實驗中,請注意實驗工具、實驗文件存放路徑,不同的文件路徑可能會出現(xiàn)不一樣的實驗結果欺矫。
在實驗環(huán)境中無法連接互聯(lián)網(wǎng),請使用您本地的網(wǎng)絡環(huán)境穆趴。
Wireshark的主窗口界面
我們在正式利用Wireshark
進行數(shù)據(jù)包分析之前,應當首先了解一下這款軟件主 窗口界面中每個部分的功能簿废。Wireshark主窗口界面如下圖所示(實驗文件Lab1- 1.pcapng):
上圖中每部分的含義如下:
標題欄:用于顯示所分析的抓包文件的名稱族檬、捕獲的設備名稱以及Wireshark的 版本號。
菜單欄:Wireshark的標準菜單欄导梆。
工具欄:常用功能的快捷圖標按鈕迂烁。
篩選區(qū)域:我們在實際的數(shù)據(jù)包分析中,可能在很短的時間內(nèi)就能夠捕獲到成 千上萬的數(shù)據(jù)包信息藏斩。這個時候就需要使用這里的篩選器
却盘,加上一定的條件,篩 選掉我們并不關心的數(shù)據(jù)包黄橘,從而更好地進行分析。我們在接下來的實際分析課程 中抬探,會多次使用篩選功能帆赢。
Packet List面板:顯示每個數(shù)據(jù)幀的摘要。需要強調(diào)的是椰于,其實這里所捕獲 的其實就是數(shù)據(jù)幀
,但是出于表達的習慣蜻牢,本系列的課程中的大部分時候,我會 以“數(shù)據(jù)包”的叫法來代替“數(shù)據(jù)幀”以及“分段”抢呆。這里采用表格的形式列出了 當前捕獲文件中的所有數(shù)據(jù)包,其中包括了數(shù)據(jù)包序號
镀娶、數(shù)據(jù)包捕獲的相對時 間
、數(shù)據(jù)包的源地址
和目標地址
宝泵、數(shù)據(jù)包的協(xié)議
以及在數(shù)據(jù)包中找到的概 況信息
等轩娶。
Packet Details面板:分析數(shù)據(jù)包的詳細信息。這個面板分層次地顯示了一個 數(shù)據(jù)包中的內(nèi)容鳄抒,并且可以通過展開或是收縮來顯示這個數(shù)據(jù)包中所捕獲的全部內(nèi) 容。在我們的課程中瓤鼻,Packet List
面板以及Packet Details
面板是我們重點 關注的對象贤重。
Packet Bytes面板:以十六進制和ASCII碼的形式顯示數(shù)據(jù)包的內(nèi)容。這里顯 示了一個數(shù)據(jù)包未經(jīng)處理的原始
樣子并蝗,也就是在鏈路上傳播時的樣子。
狀態(tài)欄:包含有專家信息沃粗、注釋键畴、包的數(shù)量和Profile。
認識數(shù)據(jù)包
一旦我們開始利用Wireshark進行數(shù)據(jù)包的捕獲
镰吵,那么所獲得的二進制數(shù)據(jù)就會 依照不同的協(xié)議的結構進行規(guī)范挂签,并且顯示在Packet Details
面板中。這里我 給大家簡單介紹一下識別數(shù)據(jù)包的方法勺馆。
在Wireshark中,關于數(shù)據(jù)包的叫法主要有3個術語草穆,也就是幀、包悲柱、段。數(shù)據(jù)幀 的起始點和目的點都是數(shù)據(jù)鏈路層
嘿般;數(shù)據(jù)包的起始和目的地是網(wǎng)絡層涯冠;段通常是 指起始點和目的地都是傳輸層的信息單元。這里我們通過以下捕獲的數(shù)據(jù)包來分析 一下這三種術語(以下展示的是通過篩選器顯示HTTP協(xié)議
蛇更,并查看3934號數(shù)據(jù) 包的情況):
這里面主要展示了以下五種協(xié)議的信息:
Frame:物理層數(shù)據(jù)幀的情況派任。
Ethernet II:數(shù)據(jù)鏈路層以太網(wǎng)幀頭部的信息。
Internet Protocol Version 4:網(wǎng)絡層IP包的頭部信息掌逛。
Transmission Control Protocol:傳輸層的數(shù)據(jù)段頭部信息,這里顯示的是
TCP協(xié)議颤诀。
Hypertext Transfer Protocol:應用層信息,這里顯示的是HTTP協(xié)議
遗淳。 下面依據(jù)上述所捕獲到的數(shù)據(jù)包的具體情況心傀,對上述前四層的內(nèi)容進行分析(HTTP 協(xié)議在以后的課程中會專門用一次課來講解):
物理層數(shù)據(jù)幀的情況
Frame 3934: 310 bytes on wire (2480 bits), 310 bytes captured (2480 bits) on interface 0# 3934號幀,線路上有310個字節(jié)脂男,實際捕獲310個字節(jié)Interface id: 0 (\Device\NPF_{EF10E4D3-713B-4239-8786-300C825A9D3F})# 接口idEncapsulation type: Ethernet (1)# 封裝類型Arrival Time: Nov 26, 2015 11:54:10.987177000 中國標準時間# 捕獲日期和時間[Time shift for this packet: 0.000000000 seconds]Epoch Time: 1448510050.987177000 seconds[Time delta from previous captured frame: 0.014178000 seconds]# 當前數(shù)據(jù)包與前一個數(shù)據(jù)包的時間間隔[Time delta from previous displayed frame: 0.311034000 seconds][Time since reference or first frame: 10.449670000 seconds]# 當前數(shù)據(jù)包與第一個數(shù)據(jù)包的時間間隔Frame Number: 3934# 幀序號Frame Length: 310 bytes (2480 bits)# 幀長度Capture Length: 310 bytes (2480 bits)# 捕獲長度[Frame is marked: False]# 此幀是否做了標記:否[Frame is ignored: False]# 此幀是否被忽略:否[Protocols in frame: eth:ethertype:ip:tcp:http:image-gif]# 幀內(nèi)封裝的協(xié)議層次結構[Number of per-protocol-data: 1][Hypertext Transfer Protocol, key 0][Coloring Rule Name: HTTP]# 著色標記的協(xié)議名稱[Coloring Rule String: http || tcp.port == 80 || http2]著色規(guī)則顯示的字符串
數(shù)據(jù)鏈路層以太網(wǎng)幀頭部的信息
Ethernet II, Src: Qihoo360_61:0b:0c (d0:fa:1d:61:0b:0c), Dst: Giga-Byt_d4:be:c9 (94:de:80:d4:be:c9)Destination: Giga-Byt_d4:be:c9 (94:de:80:d4:be:c9)# 目標MAC地址Source: Qihoo360_61:0b:0c (d0:fa:1d:61:0b:0c)# 源MAC地址Type: IP (0x0800)# 需要說明的是宰翅,為什么上述的源MAC地址以及目標MAC地址的開頭明明是“d0:fa:1d”以及“94:de:80”,# 但是Wireshark上顯示出來的卻是“Qihoo360”以及“Giga-Byt”# 呢汁讼?這是因為MAC地址的前3 # 個字節(jié)表示廠商阔墩。而“d0:fa:1d”以及“94:de:80”被分# 配給了奇虎以及技嘉公司瓶珊。這是全球統(tǒng)一標# 準,所以Wireshark干脆顯示出廠商名稱了
網(wǎng)絡層IP包的頭部信息
Internet Protocol Version 4, Src: 220.181.7.190 (220.181.7.190), Dst: 192.168.0.14 (192.168.0.14)Version: 4# 互聯(lián)網(wǎng)協(xié)議IPv4Header Length: 20 bytes# IP包頭部的長度Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))# 差分服務字段Total Length: 296# IP包的總長度Identification: 0x2863 (10339)# 標志字段Flags: 0x02 (Don't Fragment)# 標記字段Fragment offset: 0# 分片偏移Time to live: 49# 生存期Protocol: TCP (6)# 當前數(shù)據(jù)包所封裝的上層協(xié)議為TCP協(xié)議Header checksum: 0x7b43 [validation disabled]# 頭部數(shù)據(jù)的校驗和Source: 220.181.7.190 (220.181.7.190)# 源IP地址Destination: 192.168.0.14 (192.168.0.14)# 目標IP地址
傳輸層TCP數(shù)據(jù)段的頭部信息
Transmission Control Protocol, Src Port: 80 (80), Dst Port: 2488 (2488), Seq: 422, Ack: 3024, Len: 256Source Port: 80 (80)# 源端口號Destination Port: 2488 (2488)# 目標端口號[Stream index: 16][TCP Segment Len: 256]Sequence number: 422 (relative sequence number)# 序列號(相對序列號)[Next sequence number: 678 (relative sequence number)]# 下一個序列號(相對序列號)Acknowledgment number: 3024 (relative ack number)# 確認序列號Header Length: 20 bytes# 頭部長度.... 0000 0001 1000 = Flags: 0x018 (PSH, ACK)# TCP標記字段Window size value: 162# 流量控制的窗口大小Checksum: 0x6fc4 [validation disabled]# TCP數(shù)據(jù)段的校驗和
篩選器的簡單用法
Wireshark的篩選器可以讓我們找出我們所希望進行分析的數(shù)據(jù)包
忘苛。簡單來說唱较, 一個篩選器就是定義了一定的條件,用來包含或者排除數(shù)據(jù)包的表達式稽屏。如果在實 際的分析中,不希望看到某一些數(shù)據(jù)包狐榔,那么就可以通過篩選器來屏蔽
掉它們, 從而只顯示我們感興趣的內(nèi)容薄腻。但是這里需要注意的是届案,有些時候,我們在進行網(wǎng) 絡分析時楣颠,可能會因為設置了不恰當?shù)暮Y選器而漏掉了一些關于這個網(wǎng)絡情況的關 鍵數(shù)據(jù),所以篩選器有時候也是一把雙刃劍
童漩。
篩選器主要是在處理大量的數(shù)據(jù)
時使用,比如我們剛才就使用了篩選器來專門顯 示HTTP協(xié)議的數(shù)據(jù)包差凹。這是關于篩選器的最簡單的一種用法侧馅。篩選器也支持與 (and)、或(or)馁痴、非(not)等邏輯運算符,可以加強
篩選的效率邮绿。比如我 們可以通過如下語句來顯示出所有IP地址為180.97.34.134,端口號為80的數(shù)據(jù)包 :
ip.addr==180.97.34.134 and tcp.port==80
或者也可以查看所有非TCP協(xié)議
的協(xié)議:
!tcp
除了邏輯操作符船逮,在篩選器中還可以使用比較操作符
,比如等于(==)挖胃、不等于 (!=)梆惯、大于(>)、小于(<)凹髓、大于等于(>=)以及小于等于(<=)等。比如我 們現(xiàn)在只想查看長度小于等于150字節(jié)的數(shù)據(jù)包怯屉,則可以使用如下命令:
frame.len<=150
最后再講一下Wireshark的協(xié)議域
篩選器。這個功能可以幫助我們通過檢查協(xié)議 頭中的某一個字節(jié)來創(chuàng)建篩選條件赌躺,或者也可以匹配一個數(shù)據(jù)包中從某一特定位置 開始一定數(shù)量的字節(jié)羡儿。舉例來說,比如我們想捕獲帶有(PSH,ACK)標志的TCP數(shù)據(jù) 包
缅叠。那么就可以檢測TCP協(xié)議中偏移為13的標志位的情況虏冻。盡管這個標志位只有1 個字節(jié),但是這個字節(jié)中的每一個比特位都是一個標志兄旬。
我們可以用如下命令進行查看:
tcp[13]==0x18
如果我們在實際的分析過程中發(fā)現(xiàn)某一個篩選條件使用的比較頻繁
,那么可以考 慮將這個篩選條件保存下來悯森,避免每次分析中的重復輸入。我們可以在菜單欄中選 擇“Analyze”->“Display Filter”瓢姻,打開Display Filter對話框音诈。
單擊左邊的New
按鈕绎狭,創(chuàng)建一個新的篩選器褥傍。并且在“Filter Name”中給 篩選器起一個名字,在“Filter String”中輸入篩選表達式恍风,之后單 擊“OK”進行保存即可:
靈活使用篩選器會起到事半功倍的效果,我們在之后的分析中也會多次用到凯楔。