linux wireshark_WireShark使用教程
文章來源:
Wireshark使用教程(界面說明、捕獲過濾器表達(dá)式、顯示過濾器表達(dá)式) - 努力改個(gè)網(wǎng)名 - 博客園?www.cnblogs.com一、說明1.1 背景說明
對(duì)于大多數(shù)剛開始接觸wireshark的使用者而言,經(jīng)常是開始的時(shí)候時(shí)候看到wireshark能把所有數(shù)據(jù)包都攔截下來覺得強(qiáng)無敵,但是面對(duì)一大堆的數(shù)據(jù)包要問有什么用或者說想要找到我想要的那些數(shù)據(jù)包怎么找(比如telnet登錄過程的那些數(shù)據(jù)包)則完全是一臉茫然。
一是界面一堆窗口,什么作用什么區(qū)別看不懂;二是捕獲、顯示過濾器表達(dá)示看不出有什么規(guī)律,每次過濾都要百度找半天。其實(shí)wireshark界面還是比較清晰的,過濾器表過示也不困難,我們今天就來破解這wireshark使用的兩大難題。
官網(wǎng)地址:https://www.wireshark.org/
官網(wǎng)下載地址:https://www.wireshark.org/#download
安裝就不多說了和一般windows一樣下一步下一下裝就可以了。另外ethereal為什么在2006年更名wireshark參見:https://www.linux.com/news/ethereal-changes-name-wireshark1.2 攔截本地回環(huán)數(shù)據(jù)
另外注意本機(jī)訪問本機(jī)的回環(huán)數(shù)據(jù)是不經(jīng)過網(wǎng)卡的,比如我們?cè)诒緳C(jī)訪問搭建在本機(jī)上的web服務(wù),但我們經(jīng)常有服務(wù)搭建在本機(jī)的操作也經(jīng)常有攔截本地回環(huán)數(shù)據(jù)包加以分析的需求,所以我們環(huán)要攔載回環(huán)數(shù)據(jù)包。操作如下。
首先,以管理員身份運(yùn)行cmd(普通用戶沒有路由表操作權(quán)限,會(huì)提示“請(qǐng)求的操作需要提升”)
然后,使用ipconfig查看本機(jī)ip和網(wǎng)關(guān):
ipconfig
再然后,使用以下命令添加路由,指定回環(huán)數(shù)據(jù)也要先轉(zhuǎn)發(fā)到網(wǎng)關(guān)(使用上一步獲取本的本機(jī)ip和網(wǎng)關(guān)替換其中的<your_IP>和<gateway_IP>):
route add <your_IP> mask 255.255.255.255 <gateway_IP> metric 1
最后,查看路由表中路由是否已添加成功:
route print
回環(huán)數(shù)據(jù)經(jīng)網(wǎng)關(guān)再回來會(huì)增加網(wǎng)卡的壓力,可使用以下命令刪除路由(使用前邊獲取本的本機(jī)ip替換其中的<your_IP>):
route delete <your_IP>二、Wireshark界面說明
過濾器表達(dá)式書寫是wireshark使用的核心,但在此之前,很多初學(xué)者還會(huì)碰到一個(gè)難題,就是感覺wireshark界面上很多東西不懂怎么看。其實(shí)還是挺明了的我們下面簡單說一下,如下圖。
1號(hào)窗口展示的是wireshark捕獲到的所有數(shù)據(jù)包的列表。注意最后一列Info列是wireshark組織的說明列并不一定是該數(shù)據(jù)包中的原始內(nèi)容。
2號(hào)窗口是1號(hào)窗口中選定的數(shù)據(jù)包的分協(xié)議層展示。底色為紅色的是因?yàn)閣ireshark開啟校驗(yàn)和驗(yàn)證而該層協(xié)議校驗(yàn)和又不正確所致。
3號(hào)窗口是1號(hào)窗口中選定的數(shù)據(jù)包的源數(shù)據(jù),其中左側(cè)是十六進(jìn)制表示右側(cè)是ASCII碼表示。另外在2號(hào)窗口中選中某層或某字段,3號(hào)窗口對(duì)應(yīng)位置也會(huì)被高亮。
被認(rèn)為最難的其實(shí)還是2號(hào)窗口展開后的內(nèi)容不懂怎么看,其實(shí)也很明了,以IP層為例:
每一行就對(duì)應(yīng)該層協(xié)議的一個(gè)字段;中括號(hào)行是前一字段的說明。
冒號(hào)前的英文是協(xié)議字段的名稱;冒號(hào)后是該數(shù)據(jù)包中該協(xié)議字段的值。
三、捕獲過濾器表達(dá)式
捕獲過濾器表達(dá)式作用在wireshark開始捕獲數(shù)據(jù)包之前,只捕獲符合條件的數(shù)據(jù)包,不記錄不符合條件的數(shù)據(jù)包。
捕獲過濾器表達(dá)式?jīng)]有像顯示過濾器表達(dá)式那樣明顯的規(guī)律,但寫法不多所以也不難;而且除非全部捕獲要占用的磁盤空間實(shí)現(xiàn)太大,且你非常明確過濾掉的數(shù)據(jù)包是你不需要的,不然一般都不用捕獲過濾器表達(dá)式而用顯示過濾器表達(dá)式。
在wireshark2.x版本,啟動(dòng)后歡迎界面即有捕獲過濾器,在其中輸入過濾表達(dá)式開始捕獲數(shù)據(jù)包時(shí)即會(huì)生效:
點(diǎn)擊圖中“書簽”標(biāo)志,再點(diǎn)管理“捕獲篩選器”,即可看到常用捕獲過濾表達(dá)示的書寫形式
四、顯示過濾器表達(dá)示及其書寫規(guī)律
顯示過濾器表達(dá)式作用在在wireshark捕獲數(shù)據(jù)包之后,從已捕獲的所有數(shù)據(jù)包中顯示出符合條件的數(shù)據(jù)包,隱藏不符合條件的數(shù)據(jù)包。
顯示過濾表達(dá)示在工具欄下方的“顯示過濾器”輸入框輸入即可生效
4.1 基本過濾表達(dá)式
一條基本的表達(dá)式由過濾項(xiàng)、過濾關(guān)系、過濾值三項(xiàng)組成。
比如ip.addr == 192.168.1.1,這條表達(dá)式中ip.addr是過濾項(xiàng)、==是過濾關(guān)系,192.168.1.1是過濾值(整條表達(dá)示的意思是找出所有ip協(xié)議中源或目標(biāo)ip、等于、192.168.1.1的數(shù)據(jù)包)4.1.1 過濾項(xiàng)
初學(xué)者感覺的“過濾表達(dá)式復(fù)雜”,最主要就是在這個(gè)過濾項(xiàng)上:一是不知道有哪些過濾項(xiàng),二是不知道過濾項(xiàng)該怎么寫。
這兩個(gè)問題有一個(gè)共同的答案-----wireshark的過濾項(xiàng)是“協(xié)議“+”.“+”協(xié)議字段”的模式。以端口為例,端口出現(xiàn)于tcp協(xié)議中所以有端口這個(gè)過濾項(xiàng)且其寫法就是tcp.port。
推廣到其他協(xié)議,如eth、ip、udp、http、telnet、ftp、icmp、snmp等等其他協(xié)議都是這么個(gè)書寫思路。當(dāng)然wireshark出于縮減長度的原因有些字段沒有使用協(xié)議規(guī)定的名稱而是使用簡寫(比如Destination Port在wireshark中寫為dstport)又出于簡使用增加了一些協(xié)議中沒有的字段(比如tcp協(xié)議只有源端口和目標(biāo)端口字段,為了簡便使用wireshark增加了tcp.port字段來同時(shí)代表這兩個(gè)),但思路總的算是不變的。而且在實(shí)際使用時(shí)我們輸入“協(xié)議”+“.”wireshark就會(huì)有支持的字段提示(特別是過濾表達(dá)式字段的首字母和wireshark在上邊2窗口顯示的字段名稱首字母通常是一樣的),看下名稱就大概知道要用哪個(gè)字段了。wireshark支持的全部協(xié)議及協(xié)議字段可查看官方說明。4.1.2 過濾關(guān)系
過濾關(guān)系就是大于、小于、等于等幾種等式關(guān)系,我們可以直接看官方給出的表。注意其中有“English”和“C-like”兩個(gè)字段,這個(gè)意思是說“English”和“C-like”這兩種寫法在wireshark中是等價(jià)的、都是可用的。
4.1.3 過濾值
過濾值就是設(shè)定的過濾項(xiàng)應(yīng)該滿足過濾關(guān)系的標(biāo)準(zhǔn),比如500、5000、50000等等。過濾值的寫法一般已經(jīng)被過濾項(xiàng)和過濾關(guān)系設(shè)定好了,只是填下自己的期望值就可以了。4.2 復(fù)合過濾表達(dá)示
所謂復(fù)合過濾表達(dá)示,就是指由多條基本過濾表達(dá)式組合而成的表達(dá)示。基本過濾表達(dá)式的寫法還是不變的,復(fù)合過濾表達(dá)示多出來的東西就只是基本過濾表達(dá)示的“連接詞”
我們依然直接參照官方給出的表,同樣“English”和“C-like”這兩個(gè)字段還是說明這兩種寫法在wireshark中是等價(jià)的、都是可用的。
4.3 常見用顯示過濾需求及其對(duì)應(yīng)表達(dá)式
數(shù)據(jù)鏈路層:
篩選mac地址為04:f9:38:ad:13:26的數(shù)據(jù)包----eth.src == 04:f9:38:ad:13:26
篩選源mac地址為04:f9:38:ad:13:26的數(shù)據(jù)包----eth.src == 04:f9:38:ad:13:26
網(wǎng)絡(luò)層:
篩選ip地址為192.168.1.1的數(shù)據(jù)包----ip.addr == 192.168.1.1
篩選192.168.1.0網(wǎng)段的數(shù)據(jù)---- ip contains "192.168.1"
篩選192.168.1.1和192.168.1.2之間的數(shù)據(jù)包----ip.addr == 192.168.1.1 && ip.addr == 192.168.1.2
篩選從192.168.1.1到192.168.1.2的數(shù)據(jù)包----ip.src == 192.168.1.1 && ip.dst == 192.168.1.2
傳輸層:
篩選tcp協(xié)議的數(shù)據(jù)包----tcp
篩選除tcp協(xié)議以外的數(shù)據(jù)包----!tcp
篩選端口為80的數(shù)據(jù)包----tcp.port == 80
篩選12345端口和80端口之間的數(shù)據(jù)包----tcp.port == 12345 && tcp.port == 80
篩選從12345端口到80端口的數(shù)據(jù)包----tcp.srcport == 12345 && tcp.dstport == 80
應(yīng)用層:
特別說明----http中http.request表示請(qǐng)求頭中的第一行(如GET index.jsp HTTP/1.1),http.response表示響應(yīng)頭中的第一行(如HTTP/1.1 200 OK),其他頭部都用http.header_name形式。
篩選url中包含.php的http數(shù)據(jù)包----http.request.uri contains ".php"
篩選內(nèi)容包含username的http數(shù)據(jù)包----http contains "username"
總結(jié)
以上是生活随笔為你收集整理的linux wireshark_WireShark使用教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: python如何读取excel的一个sh
- 下一篇: 交流信号叠加直流偏置_交流变频空调器室内
