Wireshark是目前全球使用最廣泛的開源網(wǎng)絡(luò)封包分析軟件(前身為Ethereal),由Gerald Combs編寫并于1998年以GPL開源許可證發(fā)布。網(wǎng)絡(luò)封包分析軟件的功能是擷取網(wǎng)絡(luò)封包,并盡可能顯示出最為詳細(xì)的網(wǎng)絡(luò)封包資料。
創(chuàng)新互聯(lián)主打移動網(wǎng)站、成都做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站改版、網(wǎng)絡(luò)推廣、網(wǎng)站維護(hù)、域名與空間、等互聯(lián)網(wǎng)信息服務(wù),為各行業(yè)提供服務(wù)。在技術(shù)實力的保障下,我們?yōu)榭蛻舫兄Z穩(wěn)定,放心的服務(wù),根據(jù)網(wǎng)站的內(nèi)容與功能再決定采用什么樣的設(shè)計。最后,要實現(xiàn)符合網(wǎng)站需求的內(nèi)容、功能與設(shè)計,我們還會規(guī)劃穩(wěn)定安全的技術(shù)方案做保障。
GUI:處理所有的用戶輸入輸出(所有窗體,對話框等)
Core:核心模塊,通過函數(shù)調(diào)用將其他模塊連接在一起
Epan:包分析引擎(WireShark Packetage Analyzing)
Protocol-Tree:負(fù)責(zé)獨立包的信息剖析。
Dissectors:存在于epan/dissectors目錄下的各種協(xié)議解析器,支持700+種協(xié)議解析,對于每種協(xié)議,×××都能識別出協(xié)議字段(field),并顯示出字段值(field value)。
Dissector Plugins:支持將解析器的具體實現(xiàn)作為獨立模塊存在。
Display-Filters:顯示過濾引擎,源碼在epan/dfilter目錄
Capture:抓包引擎接口,利用libpcap/WinPcap從底層抓取網(wǎng)絡(luò)數(shù)據(jù)包,libpcap/WinPcap提供了通用的抓包接口,能從不同類型的網(wǎng)絡(luò)接口(包括以太網(wǎng),令牌環(huán)網(wǎng),ATM網(wǎng)等)獲取數(shù)據(jù)包。
Wiretap:wiretap庫用于讀寫捕獲的文件,讀寫格式時libpcap、 pcapng或者其他類型的文件格式。
Dumpcap:捕獲引擎本身,執(zhí)行需要提升權(quán)限。
WinPcap/libpcap:提供不同平臺的包捕捉以及過濾支持功能的庫。
WireShark使用libpcap/WinPCAP作為接口,直接與網(wǎng)卡進(jìn)行數(shù)據(jù)報文交換。
libpcap(Packet Capture Library),即數(shù)據(jù)包捕獲函數(shù)庫,是Unix/Linux平臺下的網(wǎng)絡(luò)數(shù)據(jù)包捕獲函數(shù)庫,是一個獨立于系統(tǒng)的用戶層包捕獲的API接口,為底層網(wǎng)絡(luò)監(jiān)測提供了一個可移植的框架。
WinPcap是一個專為Windows系統(tǒng)設(shè)計的、基于libpcap的庫。
地址:http://www.winpcap.org/。
libpcap是一個c庫,用于網(wǎng)絡(luò)抓包和過濾,源于tcpdump項目。tcpdump項目中抓包、過濾、capture file的讀寫的代碼被提取出來成為libpcap,由tcpdump項目的開發(fā)者維護(hù)。
libpcap主要由兩部份組成:網(wǎng)絡(luò)分接頭(Network Tap)和數(shù)據(jù)過濾器(Packet Filter)。網(wǎng)絡(luò)分接頭從網(wǎng)絡(luò)設(shè)備驅(qū)動程序中收集數(shù)據(jù)拷貝,過濾器決定是否接收該數(shù)據(jù)包。Libpcap利用BSD Packet Filter(BPF)算法對網(wǎng)卡接收到的鏈路層數(shù)據(jù)包進(jìn)行過濾。BPF算法的基本思想是在有BPF監(jiān)聽的網(wǎng)絡(luò)中,網(wǎng)卡驅(qū)動將接收到的數(shù)據(jù)包復(fù)制一份交給 BPF過濾器,過濾器根據(jù)用戶定義的規(guī)則決定是否接收此數(shù)據(jù)包以及需要拷貝該數(shù)據(jù)包的哪些內(nèi)容,然后將過濾后的數(shù)據(jù)給與過濾器相關(guān)聯(lián)的上層應(yīng)用程序。
libpcap的包捕獲機(jī)制就是在數(shù)據(jù)鏈路層加一個旁路處理。當(dāng)一個數(shù)據(jù)包到達(dá)網(wǎng)絡(luò)接口時,libpcap首先利用已經(jīng)創(chuàng)建的Socket從鏈路層驅(qū)動程序中獲得該數(shù)據(jù)包的拷貝,再通過Tap函數(shù)將數(shù)據(jù)包發(fā)給BPF過濾器。BPF過濾器根據(jù)用戶已經(jīng)定義好的過濾規(guī)則對數(shù)據(jù)包進(jìn)行逐一匹配,匹配成功則放入內(nèi)核緩沖區(qū),并傳遞給用戶緩沖區(qū),匹配失敗則直接丟棄。如果沒有設(shè)置過濾規(guī)則,所有數(shù)據(jù)包都將放入內(nèi)核緩沖區(qū),并傳遞給用戶層緩沖區(qū)。
MENUS(菜單欄):顯示打開文件的路徑名稱
SHORTCUTS(工具欄,快捷方式):常用功能菜單的快捷方式
DISPLAY FILTER(顯示過濾器):顯示過濾器設(shè)置
PACKET LIST PANE(封包列表):封包列表
PACKET DETAILS PANE(封包詳細(xì)信息):選中封包的詳細(xì)信息
DISSECTOR PANE(16進(jìn)制數(shù)據(jù)):選中封包的16進(jìn)制數(shù)據(jù)
MISCELLANOUS(狀態(tài)欄,雜項)
打開菜單欄Capture->Options,界面如下:
選擇網(wǎng)卡,點擊“開始抓包”按鈕。
點擊“停止抓包”按鈕,界面如下:
通過對顯示設(shè)置工具欄的按鈕進(jìn)行設(shè)置,可以放大、縮小、重置主界面的顯示區(qū)。
默認(rèn)列表顯示:序號、時間、源、目的、協(xié)議、長度、信息
A、增加列
在封包詳細(xì)信息區(qū)的任意字段,如TTL,右鍵選擇菜單“Apply as Column”,將選擇的字段信息添加到封包列表區(qū)作為一列。
B、刪除列
在封包列表區(qū)的某列右鍵點擊,選擇“Remove This Column”菜單項,將該列從列表區(qū)刪除。
C、修改列
在封包列表區(qū)的某列右鍵點擊,選擇“Edit Column”菜單項,可以修改該列的名稱。
A、時間格式設(shè)置
點擊菜單欄“View->Time Display Format”,選擇合適的時間顯示格式。
B、時間參考設(shè)置
選中封包列表區(qū)的Time列的某項,右鍵單擊菜單“Set/Unset Time Reference”設(shè)置該數(shù)據(jù)項為時間參考點,可以設(shè)置多個時間參考點。
名字解析將MAC地址、IP地址、端口號等轉(zhuǎn)換成名字,方便記憶,默認(rèn)開啟MAC地址解析。
點擊菜單欄“Capture->Options->Options”,選中“Name Resolution”的三個復(fù)選框,如下圖:
A、標(biāo)記/高亮數(shù)據(jù)包
在封包列表區(qū)選中某個封包,右鍵選擇“Mark/Unmark Packet”標(biāo)記/取消標(biāo)記高亮。
B、修改數(shù)據(jù)包顏色
在封包列表區(qū)單擊右鍵,選擇“Colorize Conversation->Ethernet->New Coloring Rule”菜單項,可以對Ethernet協(xié)議進(jìn)行具體的配色工作。
在封包列表區(qū)的某個數(shù)據(jù)包上單擊鼠標(biāo)右鍵,選擇“Packet Comment”菜單項,對數(shù)據(jù)包進(jìn)行注釋。
點擊菜單欄“File->Merge”菜單項,彈出對話框,選擇要合并的數(shù)據(jù)包。
WireShark需要將當(dāng)前抓取的數(shù)據(jù)包保存為文件后才能和其他數(shù)據(jù)包合并。
可以導(dǎo)出特定的數(shù)據(jù)包,如過濾后的特定協(xié)議數(shù)據(jù)包、標(biāo)記數(shù)據(jù)包、特定范圍內(nèi)的數(shù)據(jù)包。
也可以導(dǎo)出數(shù)據(jù)包為其他格式文件。
點擊菜單欄“Edit->Preference”菜單項,
主界面布局設(shè)置
封包列表區(qū)的列信息設(shè)置
字體和顏色設(shè)置
點擊菜單欄“Capture->Options”菜單項
A、網(wǎng)卡設(shè)置
B、多文件連續(xù)保存
創(chuàng)建一個文件名,開啟文件連續(xù)保存,如每個文件達(dá)到1M或每隔1分鐘存取一個文件。
C、名字解析設(shè)置
多文件連續(xù)保存時,可以選擇抓包停止的條件,抓取一定數(shù)量的數(shù)據(jù)包、抓取一定數(shù)量的文件時自動停止抓包。選取MAC地址解析、TCP解析等功能。
通過BPF(Berkeley Packet Filter)語法選擇性抓取某些特定條件的數(shù)據(jù)包。
類型:host、net、port
方向:src、dst
協(xié)議:ether、ip、tcp、udp、http、ftp
邏輯運算符:與(&&)、或(||)、非(!)
A、ethernet過濾器
第二層過濾器,根據(jù)mac地址來進(jìn)行過濾???
ether?host?XX:抓取源和目的為指定的mac的以太網(wǎng)幀??
ether?dst?XX:抓取目的為指定mac的以太網(wǎng)幀??
ether?src?XX:抓取源為指定mac的以太網(wǎng)幀??
ether?broadcast:抓取所有以太網(wǎng)廣播流量??
ether?multicast:抓取多播流量??
ether?proto?<protocol>:抓取指定協(xié)議的以太網(wǎng)流量,比如以太網(wǎng)類型為0x0800,ether?proto?0800。以太網(wǎng)類型指的是以太網(wǎng)幀幀頭的ether-type字段,表示上層的協(xié)議類型。0x0800為ipv4、0x86dd為ipv6、0x0806為arp。?
ether host 00:88:ca:86:f8:0d
ether src host 00:88:ca:86:f8:0d
ether dst host 00:88:ca:86:f8:0d
B、主機(jī)和網(wǎng)絡(luò)過濾器,第三層過濾器??
ip或ipv6:抓取ipv4或ipv6流量??
host?<host>:抓取源或目的為指定主機(jī)名(網(wǎng)址)或ip的流量??
dst?host?<host>:抓取目的為指定主機(jī)名(網(wǎng)址)或ip的流量??
src?host?<host>:抓取源為指定主機(jī)名(網(wǎng)址)或ip的流量??
gateway?<host>:抓取穿越網(wǎng)關(guān)的流量,host必須是主機(jī)名。??
net?<net>:抓取源或目的為指定網(wǎng)絡(luò)號的流量,如:net?192.168.1或net?192.168.1.0??
dst?net?<net>:抓取目的為指定網(wǎng)絡(luò)號的流量??
src?net?<net>:抓取源為指定網(wǎng)絡(luò)號的流量??
net?<net>?mask?<netmask>:抓取源或目的由net和mask共同指明的ipv4網(wǎng)絡(luò)號的流量,ipv6流量無效。如:net?192.168.1.0?mask?255.255.255.0??
dst?net?<net>?mask?<netmask>:抓取目的由net和mask共同指明的ipv4網(wǎng)絡(luò)號的流量,ipv6流量無效。??
src?net?<net>?mask?<netmask>:抓取源由net和mask共同指明的ipv4網(wǎng)絡(luò)號的流量,ipv6流量無效。??
net?<net>/<len>:抓取源或目的為指定網(wǎng)絡(luò)和長度的流量,如:net?192.168.1.0/24??
dst?net?<net>/<len>:抓取目的為指定網(wǎng)絡(luò)和長度的流量??
src?net?<net>/<len>:抓取源為指定網(wǎng)絡(luò)和長度的流量??
broadcast:抓取ip廣播包,通常如:ip?broadcast??
multicast:?抓取ip多播包??
ip?proto?<protocol?code>:抓取ip包頭協(xié)議類型字段值等于特定值的數(shù)據(jù)包。如:tcp為6,udp為17,icmp為1??
ip6?proto?<protocol>:?抓取ipv6包頭中下一個包頭字段值等于特定值的ipv6數(shù)據(jù)包。無法用該原詞根據(jù)ipv6擴(kuò)展包頭鏈中的相關(guān)字段值執(zhí)行過濾。??
icmp?[icmptype]==<identifier>:抓取特定類型[icmptype]的icmp數(shù)據(jù)包,<identifier>表示的是icmp頭部中的類型字段值,如,0(icmp?echo?reply數(shù)據(jù)包)或8(icmp?echo?request數(shù)據(jù)包)等。如:icmp[icmptype]==icmp-echo?或?icmp[icmptype]==8??
ip[2:2]==<number>:抓取指定長度的ip數(shù)據(jù)包(number表示ip包頭中的ip包總長度字段值)??
ip[8]==<number>:抓取具有指定ttl的ip數(shù)據(jù)包(number表示ip包頭中的ttl字段值)??
ip[9]==<number>:抓取指定協(xié)議類型的ip數(shù)據(jù)包(number表示ip包頭中的協(xié)議類型字段值)??
ip[12:4]==ip[16:4]:表示數(shù)據(jù)包源和目的ip相同??
注:中括號內(nèi)的數(shù)字表示相關(guān)協(xié)議頭部的內(nèi)容,第一個數(shù)字指從協(xié)議頭部的第幾個字節(jié)開始關(guān)注,第二個數(shù)字表示所要關(guān)注的字節(jié)數(shù)。
host 192.168.1.1
src host 192.168.1.1
dst host 192.168.1.1
C、tcp和udp及端口過濾,第四層?過濾器
port?<port>:匹配port指明的端口號,如:port?80或port?http??
dst?port?<port>:目的端口號為指定的端口號??
src?port?<port>:源端口號為指定的端口號??
tcp?portrange?<p1>-<p2>或udp?portrange?<p1>-<p2>:用來抓取端口范圍介于p1和p2之間的tcp或udp數(shù)據(jù)包??。
tcp?src?portrange?<p1>-<p2>或udp?dst?portrange?<p1>-<p2>??。
tcp?[tcpflags]?&?(tcp-syn|tcp-fin)!=0:抓取tcp連接中用來發(fā)起連接(syn標(biāo)記位置1)或終止連接(FIN標(biāo)記位置1)的數(shù)據(jù)包?。
tcp?[tcpflags]?&(tcp-rst)!=0:抓取所有RST標(biāo)記位置1的TCP數(shù)據(jù)包,RST標(biāo)記位用來立刻拆除連接,PSH用來表示將數(shù)據(jù)提交給末端進(jìn)程處理。??
less?<length>:抓取不長于指定長度的數(shù)據(jù)包,寫法等價于:len?<=?<length>??
greater?<length>:抓取不短于標(biāo)識符指定的長度的數(shù)據(jù)包,寫法等價于:len?>=?<length>??
tcp?portrange?2000-2500:抓取端口在這個范圍內(nèi)的tcp數(shù)據(jù)包?。
tcp[13]?&?0x00=0:抓取所有標(biāo)記位都未置1的tcp流量(在懷疑遭遇空掃描***時使用)?。
tcp[13]?&?0x01=1:抓取FIN位置1,但ACK位置0的TCP流量??
tcp[13]?&?0x03=3:抓取SYN和FIN位同時置1的TCP流量??
tcp[13]?&?0x05=5:抓取RST和FIN位同時置1的TCP流量??
tcp[13]?&?0x06=6:抓取SYN和RST位同時置1的TCP流量??
tcp[13]?&?0x08=8:抓取PSH位置1,但ACK位置0的TCP流量??
13指代TCP頭部中的標(biāo)記字段,‘=’號后面數(shù)字表示tcp標(biāo)記位的置位情況。0表示標(biāo)記位都沒置1,1表示FIN位置1,但ACK位置0,1+2表示SYN和FIN位同時置1,1+4表示RST和FIN同時置1,2+4表示SYN和RST同時置1,8表示PSH位置1,但ACK置0.??
port 80
! port 80
dst port 80
src port 80
D、復(fù)合過濾:
host 192.168.1.100 && port 8080
抓包過濾器在菜單欄“Capture->Options”
將抓取的數(shù)據(jù)包通過顯示過濾器過濾出某些特定的數(shù)據(jù)包。
邏輯操作符:and、or、xor、not
比較操作符:==、!=、>、<、>=、<=
IP地址:ip.addr、ip.src、ip.dst
端口:tcp.port、tcp.srcport、tcp.dstport、tcp.flag.syn、tcp.flag.ack
協(xié)議:arp、ip、icmp、tcp、udp、dns
過濾IP地址:
ip.addr == 192.168.1.1
ip.src == 192.168.1.1
ip.dst == 192.168.1.1
ip.src == 192.168.1.100 and ip.dst == 58.250.135.156
過濾端口:
tcp.port == 80
tcp.srcport == 80
tcp.dstport == 80
tcp.flag.syn == 1
過濾協(xié)議:
arp
tcp
udp
not http
復(fù)合過濾:
ip.src == 192.168.1.100 and tcp.dstport == 80
ip.addr == 192.168.1.106 and udp.port == 4000
將TCP、UDP、SSL等碎片化的數(shù)據(jù)包進(jìn)行重組并完整呈現(xiàn)出來。
單擊菜單欄“Analyze->Follow->TCP Stream”或是選中某個TCP數(shù)據(jù)包右鍵菜單“Folow->TCP Stream”,查看數(shù)據(jù)流。
可以對數(shù)據(jù)包中特定狀態(tài)進(jìn)行警告說明。
點擊菜單欄“Analyze->Expert Information”菜單項
根據(jù)對統(tǒng)計出的不同級別(Error、Warning、Note、Chat)的數(shù)據(jù)包,點擊相應(yīng)的數(shù)據(jù)包,主界面顯示區(qū)會跳到相應(yīng)的數(shù)據(jù)包并高亮標(biāo)記。
對抓取的數(shù)據(jù)包進(jìn)行全局統(tǒng)計
點擊菜單欄“Statistics->Capture File Properties”菜單項
可以查看抓取的數(shù)據(jù)包的統(tǒng)計信息。
點擊菜單欄“Statistics->Protocol Hierarchy”菜單項
可以統(tǒng)計通信流量中不同協(xié)議占用的百分比。
“Statistics->Endpoints”
統(tǒng)計通信會話中每個節(jié)點接收和發(fā)送的數(shù)據(jù)包和字節(jié)數(shù),通過網(wǎng)絡(luò)節(jié)點統(tǒng)計可以找出網(wǎng)絡(luò)中哪個節(jié)點(IP地址或端口號)最占用帶寬。
“Statistics->Conversations”
統(tǒng)計通信會話之間接收和發(fā)送的數(shù)據(jù)包和字節(jié)數(shù),通過網(wǎng)絡(luò)會話統(tǒng)計可以找出網(wǎng)絡(luò)中哪個會話(IP地址或端口號)最占用帶寬。
“Statistics->Packet Lengths”
統(tǒng)計數(shù)據(jù)流量中數(shù)據(jù)包長度的分布。
“Statistics->IO Graph”查看網(wǎng)絡(luò)吞吐量圖表。
對網(wǎng)絡(luò)中的吞吐流量進(jìn)行實時圖形顯示,可以對不同過濾條件過濾的數(shù)據(jù)包以不同的線型、顏色表示。
“Statistics->Flow Graph”查看數(shù)據(jù)流圖
將會話通信過程圖形可視化出來。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
分享文章:GNU開發(fā)工具——WireShark網(wǎng)絡(luò)分析工具-創(chuàng)新互聯(lián)
本文鏈接:http://m.rwnh.cn/article36/iehsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站設(shè)計、企業(yè)建站、Google、品牌網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容