一、背景介紹
當用戶使用手機訪問網絡時,手機在不斷接受與發送數據包,而這些數據包中包含了大量的用戶信息,包括各種賬號信息、聊天信息、發送接收文件、郵件、瀏覽的網頁等。雖然很多信息是加密傳輸的,但還是會有大量信息是明文傳輸或者經過分析可以解密的,如賬號信息、文件、郵件、部分聊天信息等。這些數據包都會通過路由器進行分發,我們只需要對路由器進行抓包和分析,就能提取到用戶的各種信息,而不需要在用戶手機中安裝應用插件。
二、環境搭建
在有無線網卡的電腦上利用網橋模式搭建好路由器,也可以利用360免費wifi提供一個熱點,這樣就可以抓取到連接上WiFi的手機發送的網絡數據包。
三、如何抓網絡數據包
目前市面上有很多抓包工具,比如Wireshark就是其中比較成熟的一款,除了抓包以外還配帶一些簡單分析的工具。這些抓包工具的原理都是通過winpcap提供的強大的編程接口來實現,下面以Wireshark為例,講解如何進行網絡數據抓包。
首先,打開軟件配置,網絡抓包所需參數,如圖1。在比較熟悉協議的情況下,可選擇過濾器,過濾掉不關心的數據包,以方便分析。例如,我們知道微信朋友圈為TCP協議,端口號為443和80,可以根據這些信息選擇相應的過濾器,然後選擇要捕獲的網卡,開始捕獲網絡數據包。
圖1:Wireshark抓包參數配置
四、網絡數據包分析
抓取網絡數據包時,Wireshark分為三個板塊顯示抓取結果,如圖2。第一個窗口顯示了捕獲包的列表,中間窗口顯示了當前選擇包的簡單解析內容,最下面窗口顯示了當前選擇包的十六進制值。
圖2:Wireshark捕包結果窗口
以微信的一個協議包為例,經過捕包操作,捕獲到了用戶通過手機發送信息的一個完整的對話包,如圖3。根據該對話包,顯示手機(ip為172.19.90.2,端口號51005)是通過TCP-HTTP協議與服務端(id為121.51.130.113,端口號80)互相傳輸數據的。
圖3:發送信息數據包
前三個包為手機與服務端相互確認身份所傳輸的包(TCP的三次握手),沒有什麼重要信息,主要看第四個包,如圖4。其中:
Frame:物理層的數據幀概況;
Ethernet II:數據鏈路層以太網幀頭部信息,包括髮送端和目標端MAC地址信息等;
Internet Protocol Version 4:互聯網層IP包頭部信息;
Transmission Control Protocol:傳輸層的數據段頭部信息,此處是TCP協議;
Hypertext Transfer Protocol:應用層的信息,此處是HTTP協議;
Media Type:傳輸的具體數據;
圖4:手機發送信息數據包
這裡主要分析應用層和數據層內容,如圖5。可以看出,服務端域名為szextshort.weixin.qq.com,信息提交地址為/mmtls/04a2f532,數據層數據長度為834字節,其中十六進制面板中藍色區域及為發送的數據,但數據內容是通過複雜加密的,暫時無法獲取。
圖5:TCP的應用層和數據層
通過這種方式,我們也可以分析出發送的圖片及視頻等信息,後續提取工作就可以交給代碼實現。
閱讀更多 鬼之永恆 的文章