QQ傳輸協議分析

1、 實驗目的:html

  在虛擬機下NAT模式下經過Wireshark抓包,分析QQ的傳輸模式。瞭解QQ在傳輸信息過程當中用到的協議。分析在Nat模式下,信息傳輸的穿透性。安全

2、 實驗環境:服務器

  Win7 專業版32位(在虛擬機裏面)。網絡

  Win7 旗艦版64位(物理機)字體

  QQ版本:TM2013加密

  Wiresharkspa

3、 實驗內容:3d

一、 QQ登陸指針

  1)、UDP登陸htm

  在虛擬機的win7打開QQ面板,設置登陸服務器的類型爲UDP

  啓動wireshark,而後開始登陸QQ,登陸成功等待一下子中止wireshark的抓包。

  抓包如圖:

  咱們能夠看到本地向遠程登陸服務器183.60.48.174發送了一個UDP的數據包,這個就是IP就是在剛纔設置UDP登陸時的系統默認IP,還能夠看到這個IP返回了一個UDP的數據包。看來這兩個包就應該是登陸驗證的包,接下來的幾個包的服務器IP變成了183.60.48.165,因爲這個IP和登陸服務器的IP位於統一網段,所以咱們能夠猜想這個IP是騰訊用來存儲咱們發送的信息的服務器。須要注意的是,在屢次實驗下,能夠發現服務器不止183.60.48.165這一個,這是由於想QQ這樣的大吞吐量的信息交互,必須用多臺服務器分流,因此這個IP並不必定是某一個。下面的一些包應該就是心跳包。那個OIQC協議就是QQ用的協議,其實實際上也是一個UDP包。下面的DNS協議就是由於個人QQ是在虛擬機裏面登陸的,在向外網交互信息的時候會經過網關192.168.214.2解析。

  咱們來分析一下登陸時候的UDP包

  從這個圖咱們能夠得知源和目的的IP,mac地址,還有雙方的端口號等等一些信息。

   數據鏈路層:

  目的MAC地址:00 50 56 e3 56 95

  本機MAC地址: 00 0c 29 ba 59 3c

  網絡層:

  經過查詢資料和分析咱們知道:

  45:版本IPv4,首部長度20字節

  00:區分服務

  00-73:總長度175字節

  36-1e:標識

  00-00:標誌和偏移

  80:生存時間128

  11:傳輸協議UDP(17)

  傳輸層:

  0f-a0:源端口4000

  1f-40:目的端口8000

  009b:長度155字節

  7f-c4:檢驗和

  QQ的數據

  經過查詢資料和分析咱們知道:

  02:QQ報文的開頭 

  34-20:QQ客戶端的版本號,實驗所用版本爲QQTM2013

  08-25:用戶請求登錄的命令的序號 

  67-dc:發送數據的序號  

  56-a6-d2-5c:用戶QQ號碼,實驗中爲1453773404

  以後的內容爲加密的數據內容 

  最後一個字節03:QQ報文的結尾

  2)、TCP登陸

  設置如圖:

  啓動wireshark,而後開始登陸QQ,登陸成功等待一下子中止wireshark的抓包。

  抓包如圖:

  能夠看到幾個TCP的包還有一個SSL的包

  對TCP包分析如圖:

  經過對UDP協議的分析,咱們能夠看到數據層和網絡層的十六進制代碼和以前的如出一轍,這裏咱們就值分析傳輸層的TCP協議了,如圖:

  經過查詢資料和分析咱們知道:

  C4-5e:源端口號50270

  01- bb:目的端口443

  45-34-fc-63:序號 

  00-00-00-00:確認號 

  80-02:數據偏移,標誌 

  20-00:窗口大小8192字節 

  7f-3b:檢驗和 

  00-00:緊急指針  

  其他部分爲可選字段和填充字節

  在TCP協議裏面咱們沒有看到QQ的登陸驗證消息。爲何呢?一看這裏還有一個SSL協議,QQ會不會是經過SSL驗證的呢?

  SSL((Secure Sockets Layer 安全套接層),及其繼任者傳輸層安全Transport Layer SecurityTLS)是爲網絡通訊提供安全及數據完整性的一種安全協議。TLSSSL傳輸層對網絡鏈接進行加密。)

  那麼咱們來看看這個包:

  02:QQ報文的開頭 

  34-20:QQ客戶端的版本號,實驗所用版本爲QQTM2013

  08-25:用戶請求登錄的命令的序號 

  67-dc:發送數據的序號  

  56-a6-d2-5c:用戶QQ號碼,實驗中爲1453773404

  以後的內容爲加密的數據內容 

  最後一個字節03:QQ報文的結尾

  可見,這個包的信息和UDP登陸時候的同樣,那麼TCP登陸是確實使用了SSL。

二、 心跳消息數據包

  如圖,經過IP地址查詢,能夠知道119.147.45.40是廣東深圳的IP,而深圳是騰訊的老巢。在屢次的抓包中也能夠看到這個IP段,因此咱們有理由相信,這個IP段是騰訊的。

  那麼咱們打開來看看。

  看到這裏,確實有很熟悉哦。經過查閱資料和分析咱們知道:

  經過查詢資料和分析咱們知道:

  02:QQ報文的開頭 

  34-20:QQ客戶端的版本號,實驗所用版本爲QQTM2013

  00-58:用戶在線的命令序號 

  3b-09:發送數據的序號  

  56-a6-d2-5c:用戶QQ號碼,實驗中爲1453773404

  以後的內容爲加密的數據內容 

  最後一個字節03:QQ報文的結尾

三、 收發信息數據包

  對方在線的時候

咱們看看第一個包:

  能夠看到藍色字體那裏的02是QQ報文的開頭,這裏須要注意的就是00-cd是客戶端向服務器發送消息的命令序號,1b-db是發送數據序號,其餘的都同樣。經過幾回實驗發現,00-cd客戶端向服務器發送消息的命令序號是固定的,而1b-db發送數據序號是會改變的。

並且沒每送一個包,服務器是會回覆一個包給客戶端的。

4、實驗總結:

  經過實驗我還發現QQ貌似是會和每個在線好友創建一個鏈接,由於當我登陸只有一個好友的QQ時,wireshark抓到的包就幾個,而登陸有上百好友的QQ時,發現鏈接數也有數百個。

 

 

 

PS:這是去年10月份咱們老師給咱們講網絡協議時,本身作的一次對QQ協議的分析,當時本身對於協議也不是很明白,可是經過查閱資料,仍是獨立完成了這麼一次分析,因爲時間過得過久,當時查閱的資料早已忘記出處。真的很感謝網絡上前輩們、朋友們的無私分享,咱們今天才得以有那麼多資料查閱,衷心感謝!還要感謝姚老師的指導。文中有錯之處,還望批評指出,在此先謝過!

 如需轉載請註明出處:http://www.cnblogs.com/Heart-J/p/4580849.html 謝謝

相關文章
相關標籤/搜索