Wireshark是世界上最流行的網(wǎng)絡(luò)分析工具。這個強(qiáng)大的工具可以捕捉網(wǎng)絡(luò)中的數(shù)據(jù),并為用戶提供關(guān)于網(wǎng)絡(luò)和上層協(xié)議的各種信息。
與很多其他網(wǎng)絡(luò)工具一樣,Wireshark也使用pcap network library來進(jìn)行封包捕捉。
Wireshark的優(yōu)勢:
- 安裝方便。
- 簡單易用的界面。
- 提供豐富的功能。
Wireshark的原名是Ethereal,新名字是2006年起用的。當(dāng)時Ethereal的主要開發(fā)者決定離開他原來供職的公司,并繼續(xù)開發(fā)這個軟件。但由于Ethereal這個名稱的使用權(quán)已經(jīng)被原來那個公司注冊,Wireshark這個新名字也就應(yīng)運而生了。
Wireshark目前世界上最受歡迎的協(xié)議分析軟件,利用它可將捕獲到的各種各樣協(xié)議的網(wǎng)絡(luò)二進(jìn)制數(shù)據(jù)流翻譯為人們?nèi)菀鬃x懂和理解的文字和圖表等形式,極大地方便了對網(wǎng)絡(luò)活動的監(jiān)測分析和教學(xué)實驗。它有十分豐富和強(qiáng)大的統(tǒng)計分析功能,可在Windows,Linux 和UNIX等系統(tǒng)上運行。此軟件于1998年由美國Gerald Combs首創(chuàng)研發(fā),原名Ethereal,至今世界各國已有100多位網(wǎng)絡(luò)專家和軟件人員正在共同參與此軟件的升級完善和維護(hù)。它的名稱于2006年5月由原Ethereal改為Wireshark。至今它的更新升級速度大約每2~3個月推出一個新的版本,2007年9月時的版本號為0.99.6。但是升級后軟件的主要功能和使用方法保持不變。它是一個開源代碼的免費軟件,任何人都可自由下載,也可參與共同開發(fā)。
Wireshark網(wǎng)絡(luò)協(xié)議分析軟件可以十分方便直觀地應(yīng)用于計算機(jī)網(wǎng)絡(luò)原理和網(wǎng)絡(luò)安全的教學(xué)實驗,網(wǎng)絡(luò)的日常安全監(jiān)測,網(wǎng)絡(luò)性能參數(shù)測試,網(wǎng)絡(luò)惡意代碼的捕獲分析,網(wǎng)絡(luò)用戶的行為監(jiān)測,黑客活動的追蹤等。因此它在世界范圍的網(wǎng)絡(luò)管理專家,信息安全專家,軟件和硬件開發(fā)人員中,以及美國的一些知名大學(xué)的網(wǎng)絡(luò)原理和信息安全技術(shù)的教學(xué)、科研和實驗工作中得到廣泛的應(yīng)用。
在安裝新舊版本軟件包和使用中,Ethereal與Wireshark的一些細(xì)微區(qū)別如下:
(1)Ethereal軟件安裝包中包含的網(wǎng)絡(luò)數(shù)據(jù)采集軟件是winpcap 3.0的版本,保存捕獲數(shù)據(jù)時只能用英文的文件名,文件名默認(rèn)后綴為 .cap
(2)Wireshark軟件安裝包中,目前包含的網(wǎng)絡(luò)數(shù)據(jù)采集軟件是winpcap 4.0版本,保存捕獲數(shù)據(jù)時可以用中文的文件名,文件名默認(rèn)后綴為 .pcap。另外,Wireshark可以翻譯解釋更多的網(wǎng)絡(luò)通信協(xié)議數(shù)據(jù),對網(wǎng)絡(luò)數(shù)據(jù)流具有更好的統(tǒng)計分析功能,在網(wǎng)絡(luò)安全教學(xué)和日常網(wǎng)絡(luò)監(jiān)管工作中使用更方便,而基本使用方法仍然與Ethereal相同。
winpcap(windows packet capture)是windows平臺下一個免費,公共的網(wǎng)絡(luò)訪問系統(tǒng)。開發(fā)winpcap這個項目的目的在于為win32應(yīng)用程序提供訪問網(wǎng)絡(luò)底層的能力。
在Linux下,當(dāng)我們需要抓取網(wǎng)絡(luò)數(shù)據(jù)包分析時,通常是使用tcpdump抓取網(wǎng)絡(luò)raw數(shù)據(jù)包存到一個文件,然后下載到本地使用wireshark界面網(wǎng)絡(luò)分析工具進(jìn)行網(wǎng)絡(luò)包分析。
最近才發(fā)現(xiàn),原來wireshark也提供有Linux命令行工具-tshark。tshark不僅有抓包的功能,還帶了解析各種協(xié)議的能力。下面我們以兩個實例來介紹tshark工具。
1、安裝方法
CentOS:
yum install -y wireshark
Ubuntu:
apt-get install -y tshark
2、實時打印當(dāng)前http請求的url(包括域名)
tshark -s 512 -i eth0 -n -f 'tcp dst port 80' -R 'http.host and http.request.uri' -T fields -e http.host -e http.request.uri -l | tr -d '\t'
下面介紹參數(shù)含義:
-s 512 :只抓取前512個字節(jié)數(shù)據(jù)
-i eth0 :捕獲eth0網(wǎng)卡
-n :禁止網(wǎng)絡(luò)對象名稱解析
-f ‘tcp dst port 80′ :只捕捉協(xié)議為tcp,目的端口為80的數(shù)據(jù)包
-R ‘http.host and http.request.uri’ :過濾出http.host和http.request.uri
-T fields -e http.host -e http.request.uri :打印http.host和http.request.uri
-l :輸出到標(biāo)準(zhǔn)輸出
3、實時打印當(dāng)前mysql查詢語句
tshark -s 512 -i eth0 -n -f 'tcp dst port 3306' -R 'mysql.query' -T fields -e mysql.query
下面介紹參數(shù)含義:
-s 512 :只抓取前512個字節(jié)數(shù)據(jù)
-i eth0 :捕獲eth0網(wǎng)卡
-n :禁止網(wǎng)絡(luò)對象名稱解析
-f ‘tcp dst port 3306′ :只捕捉協(xié)議為tcp,目的端口為3306的數(shù)據(jù)包
-R ‘mysql.query’ :過濾出mysql.query
-T fields -e mysql.query :打印mysql查詢語句
tshark使用-f來指定捕捉包過濾規(guī)則,規(guī)則與tcpdump一樣,可以通過命令man pcap-filter來查得。
tshark使用-R來過濾已捕捉到的包,與界面版wireshark的左上角Filter一致。