wireshark应用--wireshark原来那么简单
wireshark應用
github地址:
github wireshark使用
wireshark視圖以及各個字段說明
分析包的詳細信息
后期會通過到處文本的方式進行注釋,前期先使用圖片,這樣容易用顏色區分
在包的詳細信息界面一般如下:
Frame
物理層的數據幀概況,如果圖片太小可以去github上下載對應的圖片查看
Ethernet II
數據鏈路層以太網幀頭部信息
Internet Protocol Version 4
互聯網層IP頭部信息
Transmission Control Protocol
傳輸層的數據段頭部信息,此處為TCP協議
File Transfer Protocol
應用層頭部信息,此處為FTP協議
應用層協議,每個都不一樣,需要參考對應的協議RFC文檔。
數據包事件延遲
時間延遲通常有三種類型,線路延遲、客戶端延遲和服務器延遲。
線路延遲
線路延遲通常被稱為往返時間RTT延遲。當服務器收到一個SYN數據包時,由于不涉及任何傳輸層以上的處理,發送一個相應延遲至需要非常小的處理量,即使服務器承受巨大的負載,通常也會迅速的向SYN數據包響應一個SYN/ACK,這樣就可以排除服務器導致的高延遲的可能性。同時也可以排除客戶端的高延遲的可能性,因為它基本上除了接收SYN/ACK以外什么也沒有做,這樣就可以確認是線路延遲。
wireshark中可以通過看TCP的三次握手來確認是線路延遲。
客戶端延遲
客戶端延遲通常是由于用戶、應用程序缺乏足夠的資源造成的。
服務端的延遲
服務器延遲發送在,服務器緩慢相應發送過來的請求時,這可能是因為服務器無法處理一個錯誤應用程序或受其他干擾
圖中,002表示的是線路延遲,數字004是客戶端延遲,數字006是服務器延遲
延時分析實戰:
使用wireshark開始抓包,并訪問國外的網站,如github等,抓包之后我們進行分析,將時間選擇為自上一個捕獲分組經過的秒數
配置完成之后雙擊time列,將間隔時間按照倒敘進行排序,然后找到SYN/ACK時間延時比較長的列,對其進行追溯,可以看到圖中SYN/ACK至接收SYN花費了較久的時間,因為網絡環境限制,沒有主導比較完美的SYN -> SYN,ACK->ACK的過程,但是從SYN/ACK的延時上已經可以確認網絡路徑上的延時是比較大的。
捕獲特定的ICMP數據
互聯網控制消息協議ICMP是一種協議,當一個網絡中出現性能或者安全問題時,將會看到該協議。
ICMP常用的捕獲過濾器的結構
- icmp:捕獲所有的ICMP數據包
- icmp[0]=8:捕獲所有的ICMP字段類型為8(Echo Request)的數據包。
- icmp[0]=17:捕獲所有ICMP字段類型為17(Adress Mask Request)的數據包
- icmp[0]=8 or icmp[0]=0:捕獲所有ICMP字段類型為8或者ICMP字段為0(Echo Replay)的數據包
- icmp[0]=3 and not icmp[1]=4:捕獲所有ICMP字段類型為3(Destination Unreachable)的包,除了ICMP字段類型為3代碼為4(Fragmentation Needed and Don't Fragment was set)的數據包
使用wireshark最令人苦惱的就屬那令人頭疼的設置過濾條件了,老是記不住怎么辦,其實設計wireshark的大佬已經留了后門,或者說是留了獲取對應過濾設置的方法獲取的方式
你想要過濾哪些內容,只需要將箭頭點擊相同協議的展開行,在左下角就會顯示出對應字段的過濾器寫法,只需要按照對應寫法設置就可以過濾你想要的對應數據了
過濾單一的對話
想單獨跟蹤一個單一的TCP或者其他的會話,可以使用對話過濾器
圖表化顯示寬帶使用情況
初識IO Graph
統計–> IO 圖表
統計出來默認的是全部的數據,要是想看那個具體的協議的數據情況,可以關掉圖表之后再
在過濾器中輸入要過濾的內容,回車之后再打開IO圖表
再次打開IO圖表之后,就會自動添加相應的過濾內容,好了現在可以查看你想要的內容和所有數據或者其他數據的IO圖形對比情況了
文件重組–文件還原
wireshark能將抓包中的數據進行還原,比如在HTTP上下載一個圖片,可以采用以下步驟將其從數據中還原出來
首先在編輯->協議->TCP確認開啟了Allow subdisserctor to reassemble TCP streams
,過濾HTTP
然后隨該數據進行追蹤HTTP流。
選擇對應的圖片,然后點擊保存;
添加注釋
如果你的文件是.pcap結尾的,那么注釋添加之后一定要用.pcapng結尾保存,因為.pcap結尾的文件將會丟棄一起的注釋信息。
- 包注釋
- 分組注釋
通過統計信息查看注釋
通過專家信息查看注釋
到處有注釋的分組信息
首先使用pkt_comment對包進行過濾,過濾出來的都是有分組注釋信息的包,然后再按照純文本導出對應的注釋文件信息
文件分割與合并
wireshark的包文件可以使用capinfos查看具體信息,查看之后包比較大的可以使用editcap命令進行分割
使用capinfos命令查看包信息
andrew@andrew-G3-3590:~/文檔$ capinfos test.pcapng File name: test.pcapng File type: Wireshark/... - pcapng File encapsulation: Ethernet File timestamp precision: nanoseconds (9) Packet size limit: file hdr: (not set) Number of packets: 679 File size: 502 kB Data size: 479 kB Capture duration: 26.943556678 seconds First packet time: 2020-10-02 18:51:08.113739462 Last packet time: 2020-10-02 18:51:35.057296140 Data byte rate: 17 kBps Data bit rate: 142 kbps Average packet size: 705.63 bytes Average packet rate: 25 packets/s SHA256: e502d66dfda84fffb3bc103ba0e7f2a0d8eddbedbce60e0d203d0e0fe6770586 RIPEMD160: 87aa7b636d4b649ce0653eccc2da44750df23c09 SHA1: 4a1c206d0590b72e2fe24fd0fde4ce5ab19c4879 Strict time order: True Capture hardware: Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz (with SSE4.2) Capture oper-sys: Linux 5.4.0-48-generic Capture application: Dumpcap (Wireshark) 3.2.3 (Git v3.2.3 packaged as 3.2.3-1) Number of interfaces in file: 1 Interface #0 info:Name = wlp4s0Encapsulation = Ethernet (1 - ether)Capture length = 262144Time precision = nanoseconds (9)Time ticks per second = 1000000000Time resolution = 0x09Operating system = Linux 5.4.0-48-genericNumber of stat entries = 1Number of packets = 679使用editcap進行包分割
-c 100的意思就是每個包的大小最大為100
按照時間間隔進行分割,每360s分割成一個包
editcap -i 360 test.pcapng timeset.pcapng
合并多個分割的數據包使用mergecap命令,合并過后的包,會打上合并包的標記
andrew@andrew-G3-3590:~/文檔/test$ ls alias_test_00000_20201002185108 alias_test_00003_20201002185124 alias_test_00006_20201002185131 alias_test_00001_20201002185121 alias_test_00004_20201002185126 test.pcapng alias_test_00002_20201002185122 alias_test_00005_20201002185130 andrew@andrew-G3-3590:~/文檔/test$ rm test.pcapng andrew@andrew-G3-3590:~/文檔/test$ ls alias_test_00000_20201002185108 alias_test_00003_20201002185124 alias_test_00006_20201002185131 alias_test_00001_20201002185121 alias_test_00004_20201002185126 alias_test_00002_20201002185122 alias_test_00005_20201002185130 andrew@andrew-G3-3590:~/文檔/test$ mergecap -w test.pcapng alias_test_0000* andrew@andrew-G3-3590:~/文檔/test$ capinfos test.pcapng File name: test.pcapng File type: Wireshark/... - pcapng File encapsulation: Ethernet File timestamp precision: nanoseconds (9) Packet size limit: file hdr: (not set) Number of packets: 679 File size: 502 kB Data size: 479 kB Capture duration: 26.943556678 seconds First packet time: 2020-10-02 18:51:08.113739462 Last packet time: 2020-10-02 18:51:35.057296140 Data byte rate: 17 kBps Data bit rate: 142 kbps Average packet size: 705.63 bytes Average packet rate: 25 packets/s SHA256: 724d9a493a687365975ba128a87683e3f57ca1d27d30698f3e3f18bfe81c98d9 RIPEMD160: 0337eef64949160c16a7804c26c64177014f6ff6 SHA1: e373b626928c1b27413442b956fe3a5c4174cc4c Strict time order: True Capture oper-sys: Linux 5.4.0-48-generic Capture application: Mergecap (Wireshark) 3.2.3 (Git v3.2.3 packaged as 3.2.3-1) Number of interfaces in file: 1 Interface #0 info:Name = wlp4s0Encapsulation = Ethernet (1 - ether)Capture length = 262144Time precision = nanoseconds (9)Time ticks per second = 1000000000Time resolution = 0x09Operating system = Linux 5.4.0-48-genericNumber of stat entries = 0Number of packets = 679總結
以上是生活随笔為你收集整理的wireshark应用--wireshark原来那么简单的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【面向对象】聚合的四种语义
- 下一篇: 【程序设计】函数参数