巧用大白鯊(WireShark)抓包,看透網絡請求
本文轉載自微信公眾號「Java極客技術」,作者鴨血粉絲。轉載本文請聯系Java極客技術公眾號。
前段時間,因為同事需要分析數據,所以使用了WireShark,但是呢,小伙子不太知道怎么抓取數據,于是就來詢問了一下阿粉,阿粉就手把手的教給他,如何使用WireShark進行抓包分析,在這里也分享給大家。
1.什么是WireShark
WireShark實際上是有前身的,他的前身叫做Ethereal,它就是用于一個網絡封包分析軟件,也就是我們日常生活中俗稱的抓包工具,而它最大的特點就是,能夠盡可能多的顯示出詳細的網絡封包資料,WireShark使用WinPCAP作為接口,直接與網卡進行數據報文交換。
2.WireShark下載安裝
先把網址給大家放上‘https://www.wireshark.org/’,下載網址在這里,
在這里給大家推薦,最好使用你們系統的對應版本,畢竟64位,就是64位,32位就是32位,不同的版本對應不同系統,不要想著兼容,你要知道,一個詭異問題的出現很可能導致你之前做的準備工作都浪費掉了。
大家如果感覺自己下載的慢的,可以在后臺回復,抓包,WireShark,獲取百度云的下載地址,
下載完成之后,安裝,一路Next即可,但是注意,如果你想要切換安裝的路徑,那么路徑最好都是英文的,哪怕你自己不嫌麻煩整個abc,那也比“抓包”兩個字好,因為中文路徑也是容易出現問題,而不同意被檢測出來的。
等待安裝完成,桌面出現logo即可,那么我們就點開來看看怎么使用的吧。
3.WireShark的使用
大家從圖中就能看出,阿粉用的是筆記本,因為在圖中的折線圖中出現了波動,剩下都是虛擬網卡里面的內容,就像剛才阿粉說的,WireShark使用的WinPCAP作為接口,直接與網卡進行數據報文的交換,而大家看折線圖上的名稱,就有阿粉用來玩虛擬機的幾個網卡。
找個WLAN試試看?
在WLAN的連接中,接口中的數據就會被WireShark成功捕獲到,我們來分析一下這個里面都是有什么東西。
- Display Filter(顯示過濾器), 用于過濾
- Packet List Pane(封包列表), 顯示捕獲到的封包, 有源地址和目標地址,端口號。顏色不同,代表
- Packet Details Pane(封包詳細信息), 顯示封包中的字段
- Dissector Pane(16進制數據)
- Miscellanous(地址欄,雜項)
我們在抓包的時候,肯定不能從這一大堆的封包數據中去尋找內容,肯定要進行過濾,大家可以從過濾器上搜索類型。
- arp 顯示所有 ARP 數據包
- dns 顯示所有 DNS 數據包
- ftp 顯示所有 FTP 數據包
- http 顯示所有 HTTP 數據包
- ip 顯示所有 IPv4 數據包
- ipv6 顯示所有 IPv6 數據包
- tcp 顯示所有基于 TCP 的數據包
我們按照HTTP來進行抓包,就像下面這個樣子。
我們看一下封包詳細信息里面都有哪些內容。
- Frame 物理層的數據幀
- Ethernet II 數據鏈路層以太網幀頭部信息
- Internet Protocol Version 4 網際層 IP 包頭部信息
- Transmission Control Protocol 傳輸層的數據段頭部信息
- Hypertext Transfer Protocol 應用層的信息,此處是 HTTP 協議
歐呦,Src很有意思呀,shenzhen_3a,還有目標的Mac地址,不錯呦。
WireShark最需要學會的內容
也就是我們過濾器的規則,因為如果你要是對這個規則設置不好,你抓包的時候就不能精準的找到位置,進行分析。
我們總不能輸入個HTTP,然后從里面去找吧,要學會效率工作。
比如我們知道IP地址,那么我們就能:
- ip.src == 192.168.1.8
我們知道端口號是 8080,那么我們就可以:
- tcp.port == 8080
再比如說我們處理HTTP里面的"Get"請求:
http.request.method=="GET" ,POST方法同樣。
我們學習到這里,就已經算是能夠進行WireShark的抓包行動了,大家有興趣的可以用WireShark進行抓包分析,來分析之前阿粉所說的TCP的三次握手和四次揮手來進行校驗,
地址送上:三次握手和四次揮手到底是個什么鬼東西?
文獻參考
《WireShark官網DOC》