wireshark tcp 協議分析

2022-08-18 17:39:14 字數 1367 閱讀 2882

雖然知道wireshark是抓包神器,只會大概大概用一下,還用一下下tcpdump,略懂一點bpf過濾器,也知道一點怎麼用wirkshark過濾相關的報文,但是對於詳細的字段的含義,如何檢視tcp的互動情況還不是非常的了解。現在,簡單分析一下。ps:這次抓包的物件是傳說中通過公安局多少多少級認證的本公司開發的交易系統,本來看到他的驗證碼傾斜的很有規律,叫的斑斑點點也不是很密集。就想寫個小程式練習一下驗證碼識別,可是我失望了,在wireshark裡面居然沒有抓到任何報文,這個東西的驗證碼居然是客戶端生成的,無語。於是,抓下登入過程的報文,看看能否破解,相關的tcp報文:crack.pcapng。關於報文分析,有乙個很好的e文**:packetlife。

廢話少說,簡單在看看tcp的協議頭:

tcp協議頭

這張有點過期,保留位是6位,實際的情況是,保留位的後2位已經被使用了。保留位的第5位是congestion window reduced(cwr),第6位是ecn-echo(ecn)。tcp協議的其他部分不說,先看看tcp協議的幾個不是很了解標誌是什麼意思。

tcp報文syn ack的計算如下:

a -> b syn j ack k len l  

b -> a syn k ack j+l len m

a -> b syn j+l ack k+m

具體看下wireshark抓到的報文:

tcp3次握手的部分是幀1到幀3。

建立連線

當這3次互動完成後,連線真正建立,只要服務端accept後,就可以接收和傳送資料了。

tcp資料傳輸

普通資料傳輸

截圖的是報文的第7幀,這個幀報文在這次抓的報文中相對有代表性點的。這個幀的報文設定了psh標誌,而且是tcp分片傳輸的報文,因為此幀的報文是第6幀報文分片傳輸的,從ack = 125可以看出。傳輸資料的報文沒有什麼特別可以說的:~

tcp終止連線的4次交換的部分是幀19到幀21(可以發現,這裡的互動是有問題的)。

終止連線

這裡的客戶端與服務端的交換是有問題的,在第20幀,收到fin時,不應該再傳送資料,這樣傳送的資料很有可能收到的就是rst。但是這並不一定是傳送資料一方的問題,很有可能是客戶端還沒有接受完資料就關閉連線了。但可以肯定的是,在客戶端或服務端某個地方肯定存在bug。

這個就是某交易系統登入的報文,報文涉及5次資料互動(請求-應答)。這有5次交換,第1,2次交換,很可能是交換rsa公鑰(猜的,因為報文資料有openssl標誌:~)。然而後面的還有3次資料互動,並不是我期待的一次互動。難道還要同步其他金鑰之類的?有空問下相關開發人員。如果是單純破解報文的話,存在比較大的難度,但是如果是dos攻擊的話,這應該是非常簡單的……

Wireshark Tcp三次握手

tcp三次握手three way handshake 乙個虛擬連線的建立是通過三次握手來實現的 1.b syn a 假如伺服器a和客戶機b通訊.當a要和b通訊時,b首先向a發乙個syn synchronize 標記的包,告訴a請求建立連線.注意 乙個 syn包就是僅syn標記設為1的tcp包 參見t...

TCP IP分族協議

tcp ip協議族分層 4層 應用層,傳輸層,網路層,資料鏈路層 1.應用層 決定了向使用者提 用服務時的通訊服務 2.傳輸層 提供處於網路連線中的兩台計算機之間的資料傳輸 3.網路層 處理網路上流動的資料報 資料報是資料傳輸的最小資料單位 該層規定了傳輸路線,在總多的路線中選擇一條路徑 客戶端在應...

五 分類和協議

分類和協議 有時候在處理類定義的時候,可能想要為其新增一些新方法,但是由不想通過新建很多子類來繼承並且增加新方法,這個時候分類就有了用處。相當於在使用的時候只要註明是哪個分類。下面用例子來說明 import fraction.h inte ce fraction tests void printft...