WireShark

WireShark經常使用表達式

ip.addr == 源ip/目標ip    #會返回兩個包,一個是請求包一個是相應包,若是要看相應包要用這個
ip.dst == 192.168.1.1   #顯示目標地址是192.168.1.1的數據包
ip.src == 192.168.1.1   #顯示源地址是192.168.1.1的數據包
ip.addr == 222.222.221.138 and tcp.port==80 && http      #ip(s)而且端口(s)而且協議爲http

ip.src==222.222.221.138/150   #網絡過濾,過濾一個網段
### 只須要http的包,過濾掉jpg,過濾掉png,過濾掉zip
http.request and !((http.request.full_uri matches "http://.*\.jpg.*") or(http.request.full_uri matches "http://.*\.png.*") or(http.request.full_uri matches "http://.*\.zip.*"))    

定位有用的數據包

根據表達式獲得指定ip端口的數據包,可是同一個目的ip的通訊也有很龐大的數據包服務器

輸入表達式後按ctrl+N打開查找對話框,網絡

  • Display filter 經過表達式進行篩選,其功能強大,如ip.addr==192.168.1.23
  • Hex value 經過十六進制對數據包進行篩選,如00:ff
  • String 經過字符串進行查找,如login

標記數據包

在Packet List中選中一個數據包,右鍵選擇Mark Packet(快捷鍵Ctrl+M)就能夠將該數據包標記,標記後該數據包會高亮顯示。tcp

在多個被標記的數據包之間切換可用Ctrl+Shift+NCtrl+Shift+Bui

重組TCP/HTTP數據流

burpsuite的功能類似,Wireshark也有TCP流量重組功能。右鍵單擊一個數據包選擇Follw TCP/UDP Stream便可重組出數據流交互過程。其中紅色表示從源地址發往目標地址,藍色反之。url

查看端點與會話

Endpoints窗口裏(Statistics -> Endpoints)已經統計出了每個端點的地址、傳輸發送數據包的數量u以及字節數。這裏一個頗有用的地方是:單擊一個數據包右鍵,在相關選項裏有該數據包的過濾語法規則,能夠直接過濾出指定ip抓的包spa

Package Detail詳解

Frame:物理層的數據幀概況。(哪塊網卡)
Ethernet II:數據鏈路層以太網幀頭部信息。(MAC地址)
Internet Protocol Version 4:互聯網層IP包頭部信息。(b/s端ip地址)
Transmission Control Protocol:傳輸層的數據段頭部信息,此處是TCP協議。(port端口)
Hypertext Transfer Protocol:應用層的信息,此處是HTTP協議。(url,數據)

物理層的數據幀

2563號幀,線路622字節,實際捕獲622字節.net

Interface id: 0        #接口id
 Encapsulation type: Ethernet (1)         #封裝類型
Arrival Time: Jun 11, 2015 05:12:18.469086000     #捕獲日期和時間
[Protocols in frame: eth:ip:tcp:http]   #幀內封裝的協議層次結構

數據鏈路層以太網幀頭部信息

以太網MAC地址,源mac地址爲0c:9d:92:12:56:87,目標mac地址爲8c:21:0a:1c:40:e83d

Ethernet II, Src: 0c:9d:92:12:56:87 (0c:9d:92:12:56:87), Dst: Tp-LinkT_1c:40:e8 (8c:21:0a:1c:40:e8)
    Destination: Tp-LinkT_1c:40:e8 (8c:21:0a:1c:40:e8)    #目標MAC地址
        Address: Tp-LinkT_1c:40:e8 (8c:21:0a:1c:40:e8)
    Source: 0c:9d:92:12:56:87 (0c:9d:92:12:56:87)    #源MAC地址
        Address: 0c:9d:92:12:56:87 (0c:9d:92:12:56:87)
    Type: IPv4 (0x0800)

互聯網層IP包頭部信息

ip地址,源ip地址爲222.222.221.138,目的ip爲58.220.56.45code

Internet Protocol Version 4, Src: 222.222.221.138, Dst: 58.220.56.45
    Version: 4     #互聯網協議IPv4
    Header Length: 20 bytes (5)     #IP包頭部長度
    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)    #差分服務字段
    Total Length: 608        #IP包的總長度
    Time to live: 128   #生存期TTL
    Protocol: TCP (6)      #此包內封裝的上層協議爲TCP
    Header checksum: 0xe3fe [validation disabled]    #頭部數據的校驗和
    Source: 222.222.221.138    #源IP地址
    Destination: 58.220.56.45    #目標IP地址

傳輸層TCP數據段頭部信息

tcp端口源端口爲50094,目標端口爲80blog

Transmission Control Protocol, Src Port: 50094, Dst Port: 80, Seq: 3035, Ack: 32379, Len: 685
    Source Port: 50094     #源端口號
    Destination Port: 8088    #目標端口號
    Sequence number: 3035    #序列號(相對序列號)
    [Next sequence number: 3720     #下一個序列號
    Acknowledgment number: 32379    #確認序列號
    Header Length: 20 bytes (5)     #頭部長度
    Flags: 0x018 (PSH, ACK)             #TCP標記字段
    Window size value: 514        #流量控制的窗口大小
    Checksum: 0xb69e #TCP數據段的校驗和

TCP三次握手

TCP(Transmission Control Protocol)傳輸控制協議
TCP是主機對主機層的傳輸控制協議,提供可靠的鏈接服務,採用三次握手確認創建一個鏈接:
位碼即tcp標誌位,有6種標示:SYN(synchronous創建聯機) ACK(acknowledgement 確認) PSH(push傳送) FIN(finish結束) RST(reset重置) URG(urgent緊急)Sequence number(順序號碼) Acknowledge number(確認號碼)
第一次握手:主機A發送位碼爲syn=1,隨機產生seq number=1234567的數據包到服務器,主機B由SYN=1知道,A要求創建聯機;
第二次握手:主機B收到請求後要確認聯機信息,向A發送ack number=(主機A的seq+1),syn=1,ack=1,隨機產生seq=7654321的包;
第三次握手:主機A收到後檢查ack number是否正確,即第一次發送的seq number+1,以及位碼ack是否爲1,若正確,主機A會再發送ack number=(主機B的seq+1),ack=1,主機B收到後確認seq值與ack=1則鏈接創建成功。
完成三次握手,主機A與主機B開始傳送數據。

在TCP/IP協議中,TCP協議提供可靠的鏈接服務,採用三次握手創建一個鏈接。

第一次握手:創建鏈接時,客戶端發送syn包(syn=j)到服務器,並進入SYN_SEND狀態,等待服務器確認;
第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時本身也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;
第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。完成三次握手,客戶端與服務器開始傳送數據.

OICQ

過濾器中輸入oicq便可過濾應用層協議爲oicp的包

oicq數據包格式

包解析

標識:固定爲0x02 
版本號:協議版本 

命令:使用oicq.command == 23可過濾命令爲23的包

參考:https://blog.csdn.net/qq_35615083/article/details/80276777

相關文章
相關標籤/搜索