Wireshark抓包,帶你快速入門(mén)
前言
關(guān)于抓包我們平時(shí)使用的最多的可能就是Chrome瀏覽器自帶的Network面板了(瀏覽器上F12就會(huì)彈出來(lái))。另外還有一大部分人使用Fiddler,F(xiàn)iddler也是一款非常優(yōu)秀的抓包工具。但是這兩者只能對(duì)于HTTP和HTTPS進(jìn)行抓包分析。如果想要對(duì)更底層的協(xié)議進(jìn)行分析(如TCP的三次握手)就需要用到我們今天來(lái)說(shuō)的工具Wireshark,同樣是一款特牛逼的軟件,且開(kāi)源免費(fèi)自帶中文語(yǔ)言包。
安裝和基本使用
Wireshark開(kāi)源地址:https://github.com/wireshark/wireshark
Wireshark下載地址:https://www.wireshark.org/download,這里有它的歷史版本。今天我們就來(lái)安裝最新版本3.2.0,一路默認(rèn)“下一步”安裝大法就可以了。安裝好后默認(rèn)就是中文版。
開(kāi)始抓包

顯示過(guò)濾器

你會(huì)發(fā)現(xiàn)第一部分內(nèi)容跳到非常快,根本沒(méi)法找到自己想要分析的內(nèi)容。這里我們可以使用顯示過(guò)濾器,只顯示我們想要看的內(nèi)容。
在顯示過(guò)濾器填入http.request.method == "GET",然后用Chrome瀏覽器訪(fǎng)問(wèn)http://fanyi-pro.baidu.com/index(特意找的一個(gè)http網(wǎng)站)

除了過(guò)濾Get請(qǐng)求外,常用的顯示過(guò)濾器還有:
- tcp、udp 前者表示只顯示tcp,后者表示只顯示udp。也可以!tcp,表示顯示除了tcp之外的。還可以tcp or udp,表示顯示tcp和udp。
- ip.src == 192.168.1.120 and ip.dst == 208.101.60.87 ,ip.src表示客戶(hù)端ip(源地址ip)、ip.dst表示服務(wù)器ip(目標(biāo)地址ip)
- tcp.port == 80 || udp.srcport == 80 ,tcp.port 表示tcp的端口為80,udp.srcport表示udp源端口為80。||表示或者和or等效,&&和and等效。(還有tcp.srcport、tcp.dstport等等)
捕獲過(guò)濾器
顯示過(guò)濾器是指捕獲了所有經(jīng)過(guò)網(wǎng)卡的封包,然后在顯示的時(shí)候進(jìn)行過(guò)濾顯示。明顯,如果流量過(guò)大會(huì)導(dǎo)致捕獲的內(nèi)容過(guò)多,篩選變得卡頓。所以,我們可以在捕獲階段的時(shí)候就過(guò)濾掉無(wú)用的流量。
- udp、tcp 前者表示只顯示tcp,后者表示只顯示udp。也可以!tcp,表示顯示除了tcp之外的。還可以tcp or udp,表示顯示tcp和udp。
- host 192.168.1.110 ,表示只捕獲ip地址為192.168.1.110的封包(這里的語(yǔ)法和顯示過(guò)濾器不一樣,請(qǐng)注意)
- dst port 80 or port 443、not port 53,表達(dá)端口的過(guò)濾(這里的語(yǔ)法和顯示過(guò)濾器不一樣,請(qǐng)注意)

著色規(guī)則
我們看到第一部分內(nèi)容,封包列表有各種不同的背景色。其不同顏色代表不同意義。淡藍(lán)色代碼udp協(xié)議,紅字黑底代表有問(wèn)題的封包。更多具體規(guī)則可 識(shí)圖->著色規(guī)則

抓取localhost(環(huán)回地址)
localhost走的其實(shí)是npcap loopback adapter網(wǎng)卡(環(huán)回網(wǎng)卡),Wireshark抓包其實(shí)就是對(duì)網(wǎng)卡抓包。所以,Wireshark肯定是可以對(duì)localhost等環(huán)回地址進(jìn)行抓包,只要捕獲的時(shí)候選中網(wǎng)卡即可。

抓取移動(dòng)設(shè)備流量
如果要抓取移動(dòng)設(shè)備,可以先在筆記本電腦開(kāi)啟wifi熱點(diǎn)。捕獲對(duì)應(yīng)的虛擬網(wǎng)卡,最后用手機(jī)連上wifi就可以進(jìn)行抓包了。
win10自帶了wifi熱點(diǎn),不用去找第三方的wifi熱點(diǎn)軟件了。如果手機(jī)連不上,可以嘗試關(guān)掉筆記本的防火墻試試。

TCP/IP四層協(xié)議

下面的動(dòng)圖是各層對(duì)應(yīng)的數(shù)據(jù)

從上面的動(dòng)圖我們可以發(fā)現(xiàn),應(yīng)用層到傳輸層再到網(wǎng)絡(luò)層到以太網(wǎng)層,其對(duì)應(yīng)的數(shù)據(jù)包也在對(duì)應(yīng)的往前移。
我們可以想象一下,應(yīng)用層數(shù)據(jù)往上傳遞,每經(jīng)過(guò)一層就包上一個(gè)新得信封。等數(shù)據(jù)送到目的主機(jī),然后每往下一層就拆一個(gè)信封,最后拆到應(yīng)用層也就是最開(kāi)始得數(shù)據(jù)了。

TCP三次握手
對(duì)于三次握手我想很多人只聽(tīng)過(guò)沒(méi)見(jiàn)過(guò),那么今天我們就來(lái)見(jiàn)見(jiàn)。
三次握手是過(guò)程: 1、客戶(hù)端發(fā)送同步SYN標(biāo)志位和序列號(hào)Seq(a) 2、服務(wù)器回復(fù)SYNACK、Seq(b)、Ack(a+1)3、客戶(hù)端回復(fù)SYN、Seq(a+1)、Ack(b+1)

那么在Wireshark中怎么觀(guān)察呢。我們還是以http://fanyi-pro.baidu.com/地址為例。首先打開(kāi)Chrome輸入地址,F(xiàn)12打開(kāi)瀏覽器的Network面板,刷新頁(yè)面在面板中找到服務(wù)器IP。 打開(kāi)Wireshark開(kāi)始抓包,并在顯示過(guò)濾器只顯示IP地址對(duì)應(yīng)的數(shù)據(jù)。



TCP四次揮手
除了三次握手,還有對(duì)應(yīng)的四次揮手。不知道是不是我網(wǎng)絡(luò)不好,“揮手”的時(shí)候老是出現(xiàn)重傳錯(cuò)誤干擾(就是前面說(shuō)的那種紅字黑底封包)。下面是我本地環(huán)境自己寫(xiě)代碼的抓包效果。
與握手不同是揮手是發(fā)送FIN標(biāo)志位斷開(kāi)連接,其他都差不多。

Wireshark抓包如下

HTTPS的抓包
因?yàn)镠TTPS是HTTP的基礎(chǔ)下加入SSL加密層,所以Wireshark抓到是密文。也就看不到請(qǐng)求參數(shù)和響應(yīng)結(jié)果,甚至連url鏈接都是密文。
要想在Wireshark抓包明文數(shù)據(jù),可進(jìn)行如下操作:
- 1、windows電腦配置環(huán)境變量 SSLKEYLOGFILE D:\testssl.txt

- 2、Wireshark 編輯 - 首選項(xiàng) - Protocols - TLS 最后一個(gè)選中D:\testssl.txt。

如果是HTTP2可以進(jìn)行http2.headers.method == "GET"或http2.headers.method == "POST",如果是HTTP可以進(jìn)行http.request.method == "GET"過(guò)濾。
UDP協(xié)議
Wireshark除了可以抓包TCP同樣也可以對(duì)UDP進(jìn)行抓包。

其實(shí)這個(gè)抓取的是BACnet報(bào)文,而這個(gè)BACnetIP正是基于UDP的一個(gè)協(xié)議。
ModBusTcp協(xié)議

結(jié)束
授人以魚(yú)不如授人以漁。Wireshark不僅可以對(duì)我們常見(jiàn)的HTTP、HTTPS、TCP等協(xié)議進(jìn)行抓包分析,還能對(duì)工業(yè)上的BACnet、ModBus、S7Communication和其他PLC協(xié)議進(jìn)行報(bào)文抓包分析。如這位大佬就通過(guò)抓包破解了西門(mén)子PLC沒(méi)有公開(kāi)的協(xié)議。
希望有興趣的朋友可以一起來(lái)完善IoTClient組件。
參考
- 學(xué)習(xí)本是一個(gè)不斷抄襲、模仿、練習(xí)、創(chuàng)新的過(guò)程。
- 雖然,園中已有本人無(wú)法超越的同主題博文,為什么還是要寫(xiě)。
- 對(duì)于自己,博文只是總結(jié)。在總結(jié)的過(guò)程發(fā)現(xiàn)問(wèn)題,解決問(wèn)題。
- 對(duì)于他人,在此過(guò)程如果還能附帶幫助他人,那就再好不過(guò)了。
- 由于博主能力有限,文中可能存在描述不正確,歡迎指正、補(bǔ)充!
- 感謝您的閱讀。如果文章對(duì)您有用,那么請(qǐng)輕輕點(diǎn)個(gè)贊,以資鼓勵(lì)。
- 工控物聯(lián)Q群:995475200
浙公網(wǎng)安備 33010602011771號(hào)