相關資料鏈接
抓包+各種協(xié)議(http、arp、icmp)的過濾或分析
wireShark 抓包分析基礎
wireShark抓包分析
分析數據詳情
wireshark抓包獲取訪問指定服務端數據包
Step1:啟動wireshark抓包,打開瀏覽器輸入www.huawei.com。
Step2:使用ping www.huawei.com獲取IP。(win+r cmd)
Step3:輸入過濾條件獲取待分析數據包列表 ip.addr == 211.162.2.183。
wireShark抓包
捕獲過濾器
在設置了過濾項之后只抓取需要的包
類型Type:host、net、port;
方向Dir:src、dst;
協(xié)議Proto:ether、ip、tcp、udp、http、icmp、ftp;
邏輯運算符:and、or、not、&&、||、!
顯示過濾器
抓取所有包,之后再根據過濾規(guī)則顯示需要的包,顯示過濾器的基本結構包括字段名、運算符和值。 eg:ip.src == 192.168.1.1
字段名通常對應于協(xié)議的某個特定部分;
運算符用于比較字段值;
值則是字段匹配的具體內容。
語法格式:一條基本的表達式由過濾項、過濾關系、過濾值組成
過濾項:協(xié)議+. +協(xié)議字段
過濾IP地址:ip.src、ip.dst、ip.addr、eth.addr、eth.type
eg:IP源地址 ip.src == 192.168.1.101
IP目的地址 ip.dst == 192.168.1.101
IP地址(包括源和目的) ip.addr == 192.168.1.101
過濾端口:tcp.port、tcp.srcport、tcp.dstport、tcp.flag.syn
eg:TCP端口 tcp.port == 80
TCP目的端口 tcp.dstport == 80
TCP源端口 tcp.srcport == 80
TCP 1 - 80 之間的端口 tcp.port >= 1 and tcp.port <= 80
tcp.flags.syn:SYN標志位,用于過濾TCP連接請求
tcp.flags.ask:ACK標志位,用于過濾確認段
過濾MAC地址:eth
eg:源(以太網)MAC地址 eth.src == 00 - BB - 60 - 7C - A4 - BB
目的(以太網)MAC地址 eth.dst == 00 - BB - 60 - 7C - A4 - BB
MAC地址(包括源和目的) eth.addr == 00 - BB - 60 - 7C - A4 - BB
過濾包長度:len、length
eg:整個UDP數據包 udp.length == 20
TCP數據包中的IP數據包 tcp.len >= 20
整個IP數據包 ip.len == 20
整個數據包 frame.len == 20
HTTP模式過濾:get、post、uri
eg:請求方法為GET http.request.method == “GET”
請求方法為POST http.request.method == “POST”
指定URI http.request.uri.path contains “x”
泛指 http contains “x”
http.host:HTTP請求的主機名
協(xié)議過濾:arp、tcp、udp、http、dns(直接在過濾框中輸入協(xié)議名,協(xié)議名需要小寫)
eg:udp.srcport:UDP源端口
udp.dstport:UDP目的端口
udp.port:UDP源或目的端口
dns.qry.name:DNS查詢的域名
邏輯運算符:and、or、not、&&、||、!、in、contains、()
與:and 或 &&( ip.src == 192.168.1.1 and ip.src == 192.168.1.1)
或:or 或 ||( ip.src == 192.168.1.1 or ip.src == 192.168.1.1)
包含:contains(http.request.uri contains “google”)
匹配正則表達式:matches(http.user_agent matches “Chrome”)
非:not 或 ?。?not icmp)
組合和分組 :() eg: ip.src == 192.168.1.101 and ( ip.src == 192.168.1.101 or ip.src == 192.168.1.101)
比較操作符:==、!=、>=、> 、<=、<
wireShark抓包數據分析
數據包的大致結構
第一行:數據包整體概述;
第二行:鏈路層詳細信息,主要的是雙方的mac地址;
第三行:網絡層詳細信息,主要的是雙方的ip地址;
第四行:傳輸層詳細信息,主要的是雙方的端口號;
第五行:和協(xié)議相關,不同的協(xié)議展示不同的內容。例如:dns協(xié)議,展示域名系統(tǒng)相關信息
1、物理層
frame
2、數據鏈路層
ethernet II
3、互聯(lián)網層IP包頭部信息
internet protocol version
報文
TCP
TCP:面向連接的通信協(xié)議,通過三次握手建立連接
當主動方發(fā)出SYN連接請求后,等待對方回答SYN,ACK
這種建立連接的方法可以防止產生錯誤的連接,TCP使用的流量控制協(xié)議是可變大小的滑動窗口協(xié)議
- SYN指請求同步
- ACK指確認同步
- FIN指結束
三次握手
第一次握手:客戶端發(fā)送一個數據包,SYN=1 ,ACK=0,序列號從0開始(seq=0),表示客戶端請求建立連接;
第二次握手:服務器端發(fā)回數據包,SYN=1,ACK=1 ,seq=0,ack=seq+1表示已接收的數據包數量;
第三次握手:客戶端重新傳回確認包,SYN=0,服務器端檢查 ACK=1 ,ack=seq+1表示當前段成功接收數據位數。
四次揮手
第一次揮手:發(fā)送帶有 [FIN,ACK] 標志的數據包,Seq = 348,Ack = 748,發(fā)送后112.53.48.186進入FIN-WAIT-1(終止等待)狀態(tài);
第二次揮手:192.168.1.48收到 FIN 數據包,響應ACK數據包,Seq = 748(與FIN數據包ACK值相同),Ack = 349(等于FIN數據包的Seq + 1),后112.53.48.186進入了CLOSE-WAIT(關閉等待)狀態(tài);
第三次揮手:數據發(fā)送完后,192.168.1.48向112.53.48.186發(fā)送 [FIN,ACK] 報文,Seq = 748,Ack = 349;
第四次揮手:112.168.53.186向192.168.1.48發(fā)送標志為 [RST] 的報文,Seq = 349
TCP層FLAGS字段重要標識
ACK:為TCP報文段首部中的“ACK字段”,置1時該報文段為確認報文段。
ack:為TCP報文段首部中“確認號字段”的具體數值。
ack=x+1說明服務器希望客戶端下次發(fā)來的報文段的第一個數據字節(jié)為序號=x+1的字節(jié);
ack=y+1說明客戶端希望服務器下次發(fā)來的報文段的第一個數據字節(jié)為序號=y+1的字節(jié)。
源IP地址:發(fā)送包的IP地址; 源端口:源系統(tǒng)上的連接的端口;
目的IP地震:接收包的IP地址; 目的端口:目的系統(tǒng)上的連接的端口。
1> 封包詳細信息
2> Frame信息分析
3> EthernetII信息分析
4> IPv4協(xié)議信息分析
5> Trasmission Control Protocol信息分析
6> Data信息分析
HTTP
鏈路層的信息上是以幀的形式進行傳輸的,幀封裝了應用層、傳輸層、網絡層的數據。而Wireshark抓到的就是鏈路層的一幀。
1> 封包詳細信息
2> Http請求報文分析
3> Http響應報文分析
ARP
Address Resolution Protocol(地址解析協(xié)議),通過目標設備的IP地址,查詢目標設備的MAC地址。
第一個數據包信息
第一個數據包發(fā)送(或廣播)一條請求信息,詢問目標端:誰有192.168.1.4的MAC地址,告訴192.168.1.1
第二個數據包信息
第二個數據包表示:192.168.1.4的MAC地址是60:14:b3:7d:54:1d并單播數據幀回復給詢問端
DNS
分布式的域名服務系統(tǒng),每個DNS服務器上都存放著大量的機器名和IP地址的映射,并且是動態(tài)更新的
DNS協(xié)議基于TCP和UDP
1> 封包詳細信息
2> DNS查詢報文
3> DNS響應報文
4> Ping
UDP
User Datagram Protocol,OSI七層模型中一種無連接的傳輸協(xié)議
UDP信息包的標題很短,只有8個字節(jié)的大小,相比于TCP的20字節(jié)信息包,額外開銷非常小
ICMP
ICMP協(xié)議是一種面向無連接的協(xié)議,用于傳輸出錯報告控制信息。
當遇到IP數據無法訪問目標、IP路由器無法按當前的傳輸速率轉發(fā)數據包等情況時,會自動發(fā)送ICMP消息。
icmp數據包解讀
(1) Frame:物理層
(2)Ethernet II:數據鏈路層
(3)Internet Protocol Version 4:網絡層
(4)Internet Control Message Protocol:icmp信息
TLS
TLS 是一種密碼學協(xié)議,保證了兩個端點之間的會話安全
TLS 的四個核心子協(xié)議:握手協(xié)議 (handshake protocol)、密鑰規(guī)格變更協(xié)議 (change cipher spec protocol)、應用數據協(xié)議 (application data protocol) 和警報協(xié)議 (alert protocol)
最主要、最復雜是“握手協(xié)議”,協(xié)商對稱密碼就是在該協(xié)議中完成的
握手過程
HTTPS 鏈接建立、TLS 握手協(xié)議里參數傳遞、證書驗證、協(xié)商對稱密鑰的過程↓
-
Client Hello
-
Server Hello
-
Certificate(發(fā)送服務器證書信息到客戶端)
-
Server Key Exchange(密鑰交換)
-
Server Hello Done(將握手消息需要的數據發(fā)送完畢)
-
Client Key Exchange(客戶端發(fā)送給服務器的密鑰交換信息)
客戶端驗證證書和計算密鑰
驗證服務器發(fā)來的證書合法性
計算預主密鑰
計算主密鑰
構建會話密鑰 -
客戶端發(fā)出Change Cipher Spec,Encrypted Handshake Message
Change Cipher Spec 客戶端已生成加密密鑰,并切換到加密模式
Encrypted Handshake Message 將之前所有的握手數據做一個摘要,再用最后協(xié)商好的對稱加密算法對數據做加密
服務器計算密鑰 -
服務器發(fā)出Change Cipher Spec,Encrypted Handshake Message
Change Cipher Spec 告訴客戶端,服務端已生成密鑰,請求客戶端切換加密模式
Encrypted Handshake Message 服務器對握手的所有數據用協(xié)商好的對稱加密算法加密,供客戶端校驗文章來源:http://www.zghlxwxcb.cn/news/detail-855126.html -
應用數據協(xié)議文章來源地址http://www.zghlxwxcb.cn/news/detail-855126.html
到了這里,關于結合wireshark理解tcp、http、dns、icmp、arp等協(xié)議的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!