熱線電話:0755-23712116
郵箱(xiang):contact@legoupos.cn
地址:深圳市寶安(an)區沙井(jing)街道后亭茅洲山工(gong)業(ye)園(yuan)工(gong)業(ye)大廈全至科(ke)技創(chuang)新園(yuan)科(ke)創(chuang)大廈2層2A
wireshark是非常流行的網絡封包分析軟件,功能十分強大。可以截取各種網絡封包,顯示網絡封包的詳細信息。使用wireshark的人必須了解網絡協議,否則就看不懂wireshark了。
為了安全考慮,wireshark只能查看(kan)封(feng)包,而不(bu)能修(xiu)改(gai)封(feng)包的內容,或者(zhe)發送封(feng)包。
wireshark能獲取HTTP,也能獲取HTT,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的內容,總結,如果是處理HTTP,HTTPS 還是用Fiddler, 其他協議比如TCP,UDP 就用wireshark.
wireshark 開始抓包
開始界面
wireshark是捕獲(huo)機(ji)器上的(de)某(mou)一塊網(wang)卡的(de)網(wang)絡(luo)包,當你(ni)(ni)的(de)機器上(shang)有(you)多塊網卡的(de)時候(hou),你(ni)(ni)需要選擇(ze)一個網卡。
點(dian)擊Caputre->Interfaces.. 出現下面(mian)對話框,選擇正確的網(wang)卡。然后(hou)點(dian)擊"Start"按(an)鈕, 開始抓包
Wireshark 窗口介紹(shao)
WireShark 主要分(fen)為這幾個界面
1. Display Filter(顯示過濾器(qi)), 用于過濾
2. Packet List Pane(封包(bao)列表(biao)(biao)), 顯示(shi)捕獲(huo)到的封包(bao), 有源(yuan)地(di)址和目標地(di)址,端口號(hao)。 顏色不(bu)同(tong),代表(biao)(biao)
3. Packet Details Pane(封(feng)包詳(xiang)細(xi)信(xin)息(xi)), 顯(xian)示封(feng)包中的字段
4. Dissector Pane(16進制數據)
5. Miscellanous(地址欄,雜項)
使用(yong)過濾(lv)是非常重(zhong)要的(de), 初學者使用(yong)wireshark時,將會得(de)到大量的(de)冗(rong)余信息,在幾(ji)千甚至幾(ji)萬條(tiao)記錄中,以至于很(hen)難(nan)找到自己需要的(de)部分。搞得(de)暈(yun)頭轉向。
過濾器(qi)會幫助我們在(zai)大(da)量的(de)數據中迅速找(zhao)到(dao)我們需要的(de)信息。
過濾器有兩種,
一種是(shi)顯示過(guo)濾器,就是(shi)主界面(mian)上那個(ge),用來在捕獲的記(ji)錄中找(zhao)到所(suo)需(xu)要的記(ji)錄
一種是捕(bu)獲過(guo)濾器(qi),用來過(guo)濾捕(bu)獲的(de)封包,以免(mian)捕(bu)獲太多的(de)記錄。 在Capture -> Capture Filters 中設置
保存過濾
在Filter欄上(shang),填好Filter的表(biao)達式后,點(dian)擊Save按鈕, 取個(ge)名字。比如"Filter 102",
Filter欄上就多了個"Filter 102" 的按鈕(niu)。
過濾表達式的規則
表達式規則
1. 協(xie)議過濾
比如TCP,只顯示TCP協議。
2. IP 過濾
比(bi)如 ip.src ==192.168.1.102 顯示源地址為192.168.1.102,
ip.dst==192.168.1.102, 目標(biao)地址為192.168.1.102
3. 端口過濾
tcp.port ==80, 端口為80的
tcp.srcport == 80, 只(zhi)顯示TCP協議的愿端口為80的。
4. Http模(mo)式過濾(lv)
http.request.method=="GET", 只(zhi)顯(xian)示(shi)HTTP GET方法的。
5. 邏(luo)輯運算符為 AND/ OR
常用的過濾表達式
過濾表達式 | 用途 |
http | 只查看HTTP協議的記錄 |
ip.src ==192.168.1.102 or ip.dst==192.168.1.102 | 源地址或者目標地址是192.168.1.102 |
snmp && udp.dstport == 162 | 抓取SNMP Trap包 |
封包列表(Packet List Pane)
封包(bao)列(lie)表的(de)面(mian)板中顯示(shi),編號,時間戳,源地址,目(mu)標地址,協議,長度(du),以及封包(bao)信息。 你(ni)可以看到不(bu)同(tong)的(de)協議用了不(bu)同(tong)的(de)顏色顯示(shi)。
你也可以修改這些顯示顏色的規則(ze), View ->Coloring Rules.
封包詳細信息(xi) (Packet Details Pane)
這個面板(ban)是我們最重要(yao)的,用來查看協議中的每(mei)一(yi)個字段。
各行信息分別為
Frame: 物理層的數(shu)據幀概況
Ethernet II: 數據鏈路層以太(tai)網幀頭部(bu)信息
Internet Protocol Version 4: 互聯網層IP包頭(tou)部信息
Transmission Control Protocol: 傳(chuan)輸層T的數據段頭(tou)部信息,此處是TCP
Hypertext Transfer Protocol: 應(ying)用層(ceng)的信息,此(ci)處是HTTP協(xie)議
TCP包的具體內(nei)容
從(cong)下圖(tu)可以看到wireshark捕獲到的(de)TCP包中的(de)每個字段(duan)。
看到這, 基(ji)本上對(dui)wireshak有了初步了解, 現在我們看一(yi)個TCP三次握(wo)手的實例
三次(ci)握手(shou)過程(cheng)為
這(zhe)圖我都看過很多遍了(le), 這(zhe)次我們用wireshark實際分析(xi)下三次握(wo)手的過程。
打(da)開wireshark, 打(da)開瀏覽器輸入 //www.cr173.com
在wireshark中(zhong)輸入(ru)http過(guo)濾, 然后選中(zhong)GET /tankxiao HTTP/1.1的那(nei)條(tiao)記錄(lu),右鍵(jian)然后點(dian)擊"Follow TCP Stream",
這樣做(zuo)的目的是為了(le)得到(dao)(dao)與瀏覽器打開網站相關的數(shu)據包,將得到(dao)(dao)如下圖
圖中可以看(kan)到wireshark截(jie)獲(huo)到了(le)三次握手的(de)三個數據(ju)包。第四個包才(cai)是HTTP的(de), 這(zhe)說明HTTP的(de)確是使用TCP建立(li)連接的(de)。
第一次握手數據包(bao)
客戶端(duan)發(fa)送(song)一個TCP,標志位為(wei)SYN,序列號為(wei)0, 代表客戶端(duan)請求建立(li)連接。 如下(xia)圖
第二次握手的數據包(bao)
服務(wu)器發回確(que)認包(bao), 標志位為 SYN,ACK. 將確(que)認序(xu)號(Acknowledgement Number)設置為客戶的I S N加1以.即0+1=1, 如下圖
第三次握手的數據包
客戶端(duan)再(zai)次發(fa)送(song)確(que)認包(ACK) SYN標志位為(wei)0,ACK標志位為(wei)1.并且(qie)把(ba)服(fu)務器發(fa)來(lai)ACK的序號字段(duan)(duan)+1,放(fang)在(zai)確(que)定字段(duan)(duan)中(zhong)發(fa)送(song)給對方.并且(qie)在(zai)數據段(duan)(duan)放(fang)寫ISN的+1, 如下圖:
就這樣通過了TCP三次握手(shou),建立了連(lian)接