前沿拓展:
wireshark是什么
報(bào)文號(hào)是網(wǎng)絡(luò)交換傳輸?shù)臄?shù)據(jù)編號(hào),從wireshark用tcpdump抓包就可以直接獲取報(bào)文號(hào)并分析報(bào)文內(nèi)容。
報(bào)文是網(wǎng)絡(luò)中交換與傳輸?shù)臄?shù)據(jù)單元。報(bào)能顯示出最為詳細(xì)的網(wǎng)絡(luò)封包資料。Wireshark使用Wi**AP作生針與局天失為接口,直接與網(wǎng)卡進(jìn)行數(shù)據(jù)報(bào)文交換。
在過(guò)去,網(wǎng)絡(luò)封包分析軟件是非常昂貴的,或是專門屬于盈利用的軟件。Ethereal的出現(xiàn)改變了這一切。在GNUGPL通用許可證的保障范圍底下,使用者可以以免費(fèi)的途徑取得軟件與其源代碼,并擁有針對(duì)其源代碼修改及客制化的權(quán)利。
我們這個(gè)信息化時(shí)代,每天都不知不覺的會(huì)給不知道哪些軟件**偷偷的說(shuō)一些悄悄話,特別是我們程序猿,在開發(fā)過(guò)程中更是,偶爾會(huì)遇到不知道TCP交互過(guò)程中到底傳遞或者接受了哪些信息,給我們的Debug蒙上了一層神秘的面紗,這時(shí)候,我們需要一些抓包工具幫助我們輕松Debug。一般的請(qǐng)求可以借助瀏覽器自帶的NetWork抓包工具,移動(dòng)端一些網(wǎng)頁(yè)的話可以借助騰訊開源的vConsole,再高端一點(diǎn)就是借助Fiddler來(lái)抓取http或者https請(qǐng)求。但是有時(shí)候這樣也滿足不了我們的需要,那么就再祭出Wireshark神器來(lái)抓取tcp和udp請(qǐng)求。
瀏覽器自帶的抓包工具
一些主流瀏覽器都自帶有Network抓包工具,只需F12即可喚出,非常方便,我這里只演示了 Chrome瀏覽器的抓包過(guò)程。
Fiddler簡(jiǎn)單**作
Fiddler是一款httphttps協(xié)議**調(diào)試工具,它能夠獲取請(qǐng)求之間的數(shù)據(jù)和狀態(tài),設(shè)置斷點(diǎn),以及修改數(shù)據(jù)。第一去Fiddler網(wǎng)站下載并手動(dòng)安裝。
安裝成功后打開Fiddler,界面如下:
默認(rèn)情況下,它是抓取我們所有的請(qǐng)求。我們需要對(duì)Fiddler進(jìn)行過(guò)濾設(shè)置。假如我們只想抓取www.cnblogs.com的請(qǐng)求,我們需要這樣處理:
,最后我們可以得到這樣的效果:
,還可以指定客戶端的進(jìn)程:
進(jìn)程方式除了剛才在Filters中設(shè)置外,還可以使用拖動(dòng)方式,
下面,我們來(lái)試試抓取手機(jī)端的請(qǐng)求,在抓取手機(jī)端請(qǐng)求前,請(qǐng)確保手機(jī)和電腦在同一個(gè)局域網(wǎng)中,第二進(jìn)入對(duì)Fiddler進(jìn)行如下設(shè)置:
,由于我在PC端映射了一個(gè)wifi供手機(jī)連接,故我手機(jī)**設(shè)置如下:
假如我們抓取美團(tuán)App的請(qǐng)求,現(xiàn)在打開App即可看到:
這里只是一個(gè)簡(jiǎn)單的示例介紹,更多高深技巧請(qǐng)自行探索。
Wireshark簡(jiǎn)單**作
第一Wireshark下載,
安裝完成后打開
可以看到我們本地有很多網(wǎng)卡驅(qū)動(dòng),我們?cè)趺粗垃F(xiàn)在網(wǎng)絡(luò)是哪個(gè)網(wǎng)卡呢?有兩個(gè)方式,一個(gè)是查看本地連接,另外一個(gè)就是看界面的網(wǎng)絡(luò)流量。
可以看到Wireshark開始為我們抓包,由于Wireshark為我們抓取了TCP和HTTP,會(huì)有很多無(wú)用的信息導(dǎo)致我們無(wú)從下手,這時(shí)候可以使用Wireshark的過(guò)濾規(guī)則:
,在過(guò)濾欄輸入關(guān)鍵字就會(huì)有相應(yīng)的智能提示。 在Wireshark抓包中有多層信息:
Frame 15788: 79 bytes on wire (632 bits), 79 bytes captured (632 bits) on interface DeviceNPF_{69B14E8C-A0A5-4064-9CF7-EB4651D24A99}, id 0:物理層的數(shù)據(jù)幀概況。Ethernet II, Src: HuaweiTe_22:5a:c6 (fc:48:ef:22:5a:c6), Dst: WistronI_fd:67:50 (54:ee:75:fd:67:50):數(shù)據(jù)鏈路層以太網(wǎng)幀頭部信息。Internet Protocol Version 4, Src: 10.101.11.97, Dst: 10.101.27.241:互聯(lián)網(wǎng)層IP包頭部信息,源地址和目的地址。Tran**ission Control Protocol, Src Port: 80, Dst Port: 50773, Seq: 2606, Ack: 3560, Len: 25:傳輸層的數(shù)據(jù)段頭部信息,TCP協(xié)議層信息。Hypertext Transfer Protocol:應(yīng)用層的信息,此處是HTTPHTTPS協(xié)議會(huì)現(xiàn)在該項(xiàng)。Wireshark常用過(guò)濾條件:地址過(guò)濾。ip.dst==xxx.xx.xxx.xxx 過(guò)濾目的地址為xxx.xx.xxx.xxx,ip.src==xxx.xx.xxx.xxx 過(guò)濾原地址地址為xxx.xx.xxx.xxx,ip.dst==xxx.xx.xxx.xxx && ip.src==xxx.xx.xxx.xxx 過(guò)濾源地址為xxx.xx.xxx.xxx且目的地址xxx.xx.xxx.xxx協(xié)議過(guò)濾。直接在過(guò)濾欄輸入?yún)f(xié)議即可 tcp、udp、arp、http、ftp、ssl、**tp、dns、ip、ardp端口過(guò)濾。在過(guò)濾欄輸入tcp.port==端口號(hào)(目的端口和源端口)或者 tcp.dstport==端口號(hào)(目的端口),tcp.srcport==端口號(hào)(源端口)HTTP過(guò)濾。這個(gè)就比較多了,暫時(shí)詳述:
通過(guò)Wireshark可以很方便的分析TCP的三次握手和四次揮手的過(guò)程,有助于我們更加直觀的理解TCP協(xié)議。
好了,暫時(shí)先告一段落吧,這里只是簡(jiǎn)單是寫了軟件的基本使用,如果要抓取HTTP和HTTPS協(xié)議的數(shù)據(jù)的話,個(gè)人建議使用Fiddler。其他更加高級(jí)的應(yīng)用在后面再分享吧,另外還有一款強(qiáng)大的抓包工具Charles,只不過(guò)它是收費(fèi)的。
拓展知識(shí):
原創(chuàng)文章,作者:九賢生活小編,如若轉(zhuǎn)載,請(qǐng)注明出處:http:///45761.html