截取ICMP數(shù)據(jù)包,并對數(shù)據(jù)包進(jìn)行解析,安裝并運行wireshark開始捕獲數(shù)據(jù)包,Wireshark 是網(wǎng)絡(luò)包分析工具。網(wǎng)絡(luò)包分析工具的主要作用是嘗試捕獲網(wǎng)絡(luò)包, 并嘗試顯示包的盡可能詳細(xì)的情況。你可以把網(wǎng)絡(luò)包分析工具當(dāng)成是一種用來測量有什么東西從網(wǎng)線上進(jìn)出的測量工具,就好像使電工用來測量進(jìn)入電信的電量的電度表一樣。
wireshark安裝文件下載地址:http://www.innovatechautomation.com/soft/44435.html
1)wireshark安裝后電子文檔chm的,有一章就是專門講lua寫私有協(xié)議解析插件的 2)如果采用基于winpcap開發(fā)包的模式,可以下載開發(fā)包wpdpack,里面附帶了很多例子。另外,也有基于net的庫,很方便處理的。
安裝步驟:
解壓文件之后,在\wireshark-win32-1.4.9中文版\文件夾中找到安裝文件,雙擊即可安裝。
安裝完成之后,雙擊wireshark圖標(biāo)即可啟動,界面如下:
抓包步驟:
1、點擊開始按鈕列出可以抓包的接口:
2、點擊選項可以配置抓包參數(shù):
3、配置完成點擊開始,即可開始抓包:
4、點擊停止完成抓包。
抓包界面分析:
抓包結(jié)果整個窗口被分成三部分:
1、最上面為數(shù)據(jù)包列表,用來顯示截獲的每個數(shù)據(jù)包的總結(jié)性信息;
2、中間為協(xié)議樹,用來顯示選定的數(shù)據(jù)包所屬的協(xié)議信息;
3、最下邊是以十六進(jìn)制形式表示的數(shù)據(jù)包內(nèi)容,用來顯示數(shù)據(jù)包在物理層上傳輸時的最終形式。
數(shù)據(jù)包列表中,第一列是編號(如第1個包),第二列是截取時間(0.000000),第三列source是源地址(115.155.39.93),第四列destination是目的地址(115.155.39.112),第五列protocol是這個包使用的協(xié)議(這里是UDP協(xié)議),第六列info是一些其它的信息,包括源端口號和目的端口號(源端口:58459,目的端口:54062)。
協(xié)議樹可以得到被截獲數(shù)據(jù)包的更多信息,如主機(jī)的MAC地址(Ethernet
II)、IP地址(Internet
protocol)、UDP端口號(user datagram
protocol)以及UDP協(xié)議的具體內(nèi)容(data)。
分析ICMP協(xié)議數(shù)據(jù)包
實驗原理:
ping是用來測試網(wǎng)絡(luò)連通性的命令,一旦發(fā)出ping命令,主機(jī)會發(fā)出連續(xù)的測試數(shù)據(jù)包到網(wǎng)絡(luò)中,在通常的情況下,主機(jī)會收到回應(yīng)數(shù)據(jù)包,ping采用的是ICMP協(xié)議。
實驗步驟:
點擊開始抓包,為了抓取使用ICMP的包,我們要設(shè)置過濾條件,點擊“選項”:
再點擊“抓包過濾”按鈕:
因此初始狀態(tài)下沒有只抓取ICMP協(xié)議包的過濾條件,因此我們點擊新建按鈕:
在過濾名字和過濾條件中分別輸入“ICMP only”(自定義),“icmp”,點擊確定:
這是可以看到抓包過濾按鈕后面的文本框出現(xiàn)了ICMP字樣,說明過濾條件設(shè)置成功:
點擊開始,發(fā)現(xiàn)現(xiàn)在抓取不到任何包:
打開命令行窗口,執(zhí)行命令:ping www.baidu.com:
這時可以看到數(shù)據(jù)包抓取頁面抓取到了8包,與命令行顯示的已發(fā)送和已接受的包的數(shù)量是一致的:
選擇任意一個包查看詳細(xì)信息:
可以看到ICMP報文的格式為:
在這個試驗中,可以發(fā)現(xiàn),icmp的報文就只有兩種,請求和應(yīng)答:
請求:
應(yīng)答:
這兩個報文的type不一樣,8代表請求,0代表應(yīng)答;code都為0,表示為回顯應(yīng)答;標(biāo)示符和序列號都是一樣的,表示這兩個報文是配對的
TCP
協(xié)議,所以此次實驗選取
FTP
DHCP數(shù)據(jù)包分析
使用DHCP獲取IP地址:
(1)打開命令窗口,啟動Wireshark。
(2)輸入“ipconfig /release”。這條命令會釋放主機(jī)目前的IP地址,此時,主機(jī)IP地址會變?yōu)?.0.0.0
(3)然后輸入“ipconfig /renew”命令。這條命令讓主機(jī)獲得一個網(wǎng)絡(luò)配置,包括新的IP地址。
(4)等待,直到“ipconfig /renew”終止。然后再次輸入“ipconfig /renew” 命令。
(5)當(dāng)?shù)诙䝼命令“ipconfig /renew” 終止時,輸入命令“ipconfig /release” 釋放原來的已經(jīng)分配的IP地址
(6)停止分組俘獲。如下圖:
五.實驗分析
由截圖可知,本機(jī)發(fā)起DHCP Discover包,用來尋找DHCP服務(wù)器,源ip是0.0.0.0,因為剛開始還不知道,目的地址是255.255.255.255的廣播地址,廣播到整個網(wǎng)段。
Message type為1表明是請求包,由客戶端發(fā)出。
Hardware address length為6表示本機(jī)的網(wǎng)絡(luò)硬件地址長度為6bytes
Hops為0表示跳數(shù),此處為0 表示沒有經(jīng)過網(wǎng)關(guān)。
此字段表示DHCP報文類型:
此字段表示DHCP客戶端的報文類型。
這是UDP上的DHCP,本機(jī)發(fā)起的端口是68,目標(biāo)端口是67.
2.提供
DHCP服務(wù)器收到客戶端發(fā)的DHCP Discover之后,會在自己的地址池中拿出一個沒有分配的地址以及配套的參數(shù)(如:掩碼、DNS、網(wǎng)關(guān)、域名、租期……),然后以一個DHCP Offer包發(fā)送出去。
此時源IP是DHCP服務(wù)器的IP,目的IP是255.255.255.255的廣播。這時候本機(jī)還無法獲得IP,所以DHCP服務(wù)器只能用廣播來回應(yīng)。
此截圖表明通過UDP傳輸,客戶端端口號68,服務(wù)器是67。
Message type為2表明是回復(fù)包。
Hops為1不標(biāo)明經(jīng)過了一個中繼。
表明給客戶端的IP地址,但是現(xiàn)在還沒有確認(rèn)。
這是中斷的地址,就是網(wǎng)關(guān)
DHCP服務(wù)器地址
3.選擇
客戶端收到這個DHCP Offer后,會再發(fā)出一個DHCP
Request給服務(wù)器來申請這個Offer中包含的地址。
這個時候,客戶端還沒有正式拿到地址,所以還需要向DHCP服務(wù)器申請。
此時客戶端的源IP還是0.0.0.0,目的IP還是255.255.255.255。
將這些都廣播出去,告訴其他DHCP服務(wù)器和分配給本機(jī)的服務(wù)器。
4.確認(rèn)
被客戶機(jī)選擇的DHCP服務(wù)器在收到DHCPREQUEST廣播后,會廣播返回給客戶機(jī)一個DHCPACK消息包,表明已經(jīng)接受客戶機(jī)的選擇,并將這一IP地址的合法租用以及其他的配置信息都放入該廣播包發(fā)給客戶機(jī)。
服務(wù),
本次抓包過程將采用顯示過濾器的方法來過濾數(shù)據(jù)包。
一:安裝并運行wireshark開始捕獲數(shù)據(jù)包,如圖所示點擊第二行的start開始捕獲數(shù)據(jù)包。
二:幾分鐘后就捕獲到許多的數(shù)據(jù)包了,主界面如圖所示:
如上圖所示,可看到很多捕獲的數(shù)據(jù)。
第一列是捕獲數(shù)據(jù)的編號;
第二列是捕獲數(shù)據(jù)的相對時間,從開始捕獲算為0.000秒;
第三列是源地址,第四列是目的地址;
第四列是數(shù)據(jù)包的信息。
選中第一個數(shù)據(jù)幀,然后從整體上看看Wireshark的窗口,主要被分成三部分。上面部分是所有數(shù)據(jù)幀的列表;中間部分是數(shù)據(jù)幀的描述信息;下面部分是幀里面的數(shù)據(jù)。
三:開始分析數(shù)據(jù)
在下圖中Filter后面的編輯框中輸入:arp(注意是小寫),然后回車或者點擊“Apply”按鈕
現(xiàn)在只有ARP協(xié)議了,其他的協(xié)議數(shù)據(jù)包都被過濾掉了。注意到中間部分的三行前面都有一個“+”,點擊它,這一行就會被展開。如下圖所示:
現(xiàn)在展開第一行?吹降慕Y(jié)果如下:
在上圖中我們看到這個幀的一些基本信息:
幀的編號:15(捕獲時的編號)
幀的大。60字節(jié)。再加上四個字節(jié)的CRC計算在里面,就剛好滿足最小64字節(jié)的要求。
幀被捕獲的日期和時間:Dec2,2008……
幀距離前一個幀的捕獲時間差:0.136438000……
幀距離第一個幀的捕獲時間差:4.704371000……
幀裝載的協(xié)議:ARP
現(xiàn)在展開第二行:
我們可以看到:
目的地址(Destination):ff:ff:ff:ff:ff:ff(這是個MAC地址,這個MAC地址是一個廣播地址,就是局域網(wǎng)中的所有計算機(jī)都會接收這個數(shù)據(jù)幀)
源地址(Source):Elitegro_2d:e7:db(00:0d:87:2d:e7:db)
幀中封裝的協(xié)議類型:0x0806,這個是ARP協(xié)議的類型編號。
Trailer:是協(xié)議中填充的數(shù)據(jù),為了保證幀最少有64字節(jié)。
展開第三行:
地址解析協(xié)議
硬件類型:以太網(wǎng)
協(xié)議類型:IP
硬件大。6
協(xié)議大。4
發(fā)送方MAC地址
發(fā)送方IP地址
目的MAC地址
目的IP地址