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