ICMP協議分析

2022-02-15 01:10:22 字數 2691 閱讀 6517

• 1、了解icmp的基本概念。

• 2、利用wireshark分析由ping以及tracert捕獲的資料報,了解二者的異同點。

• 3、學會利用wireshark捕獲含有icmp協議的資料報。

• 工具:wireshark

• 操作機:windows xp

對於icmp協議來說,我們接觸最多的莫過於ping這款工具了,ping是一款用於檢測乙個裝置可連線性的工具,ping這款工具用於傳送icmp echo請求資料報。

icmp協議本身的特點就決定了它非常_容易被用於攻擊網路上的路由器和主機_。比如,使用者可以利用作業系統規定的icmp資料報的最大尺寸不超過64k這個規定,向網路上的主機發起ping of death攻擊,它屬於一種=拒絕服務(ddos)攻擊=。因為當icmp資料報的大小超過64k的時候,目標主機就有可能出現記憶體分配的錯誤的情況,導致tcp/ip堆疊崩潰,使得主機宕機。另外,向目標主機長時間、連續、大量地傳送icmp資料報,也會最終使系統癱瘓。大量的icmp資料報會形成「icmp風暴」,使得目標主機耗費大量的cpu資源來處理。

下面我們來實際分析乙個捕獲檔案。

首先需要強調的是,在分析icmp資料報的時候,我們需要重點關注的是icmp頭部的type以及code的內容。type表示icmp訊息基於rfc規範的型別或分類。code表示icmp訊息基於rfc規範的子型別。看一下第乙個資料報,它顯示了主機192.168.147.129在給172.21.79.153傳送資料報。icmp頭部中的type的值是8,code值是0,說明這是乙個echo請求資料報,wireshark已經幫我們解析出來了。其實這是乙個簡單的icmp資料報,使用ip傳送,所包含的資料很少。除了指定的型別、**以及校驗和,這裡還有序列號用於匹配請求和響應,並且在可變域中包含有一串隨機字串。

接下來我們再分析一下第二個資料報:

這個資料報是對我們請求的響應。在它的icmp頭部中,型別和**的值都是0,表示這是乙個echo響應。由於第二個資料報的序列號和第乙個資料報可以相匹配,於是就可以確定它和第乙個資料報是對應的。並且還可以發現,在data的部分,這個資料報有著和第乙個資料報相同的字元內容。當這個資料報被成功接收後,ping就成功了。

icmp的echo請求使用的字串可能會引起攻擊者的興趣,攻擊者可能會使用這段內容來推測裝置所使用的作業系統。並且攻擊者可能在這個地方放置一些資料位作為反向連線的手段。

路由跟蹤功能用來識別乙個裝置到另乙個裝置的網路路徑。在乙個簡單的網路上,這個網路路徑可能只經過乙個路由器,甚至乙個路由器也不經過。但是在複雜的網路中,資料報可能會經過數十個路由器才會到達最終的目的地。對於網路通訊檢修來說,確定資料報從乙個地方到另乙個地方所走的路徑是非常重要的。

想要進行路由跟蹤,我們可以在命令提示符中使用tracert功能,它就是利用了icmp協議的,通過其跟蹤結果,我們就可以畫出資料報所走的路徑。

首先看一下第乙個資料報,可以發現它與我們剛才分析的echo請求很相像。這個資料報是從ip位址為192.168.100.138到4.2.2.1的簡單的echo的請求,並且icmp資料報頭部的每一部分都與echo請求資料報相同。但是需要我們注意的是,這個資料報的ip頭中的ttl的值為1,這也就意味著這個資料報會在它所遇到的第乙個路由器的地方被丟棄。由於目標位址4.2.2.1其實是乙個網際網路的位址,我們就會知道源裝置和目標裝置之間肯定至少存在乙個路由器,因此這個資料報不會到達目的地。

下面再看一下第二個資料報:

這個資料報其實就是在前往目的地的路徑上,由第乙個路由器發回的響應。由於第乙個資料報到達192.168.100.1後,ttl的值變成了0,因此就不能夠繼續傳輸,此時路由器就回覆了乙個icmp響應。這個資料報的型別是11,**是0,告訴我們這個資料報的ttl在傳輸中超時,所以目標位址不可達。

這裡請大家注意的是,在icmp的結尾部分包含了原echo請求的ip頭和icmp資料的拷貝。因此這個資料報也被叫做icmp雙頭包,表示包含有兩個icmp的包頭資訊。雙包頭資訊在網路故障檢修的時候會非常有用。

繼續往下分析可以發現,在第七個資料報之前,又傳送了兩次ttl的值為1的資料報。而第七個資料報的ttl的值變成了2。這就保證了這個資料報會到達第二跳的路由。但是即便ttl的值變成了2,從下面的資料報來看,它也是無法到達目的地,直至ttl的值增長到9,這個資料報才到達了目的地。

當然我們在未來的課程中還會遇到icmp協議,還會研究它的不同的功能,因此說icmp是乙個用途廣泛的協議。

最後我們再來研究一下icmp資料報的抓取。最常用的,是使用ping工具進行捕獲,關於這個我們已經在第六課中演示過了。所以這裡我們可以嘗試使用tracert來嘗試抓取。在虛擬機器中,開啟命令提示符,輸入tracert加上目標ip位址(主機ip):

tracert 172.21.79.153

然後看一下wireshark的抓取結果:

可以看到,這裡也出現了由於ttl的值不夠,而出現的資料報不可達的情況。

ICMP協議分析

icmp報文 icmp應用 icmp安全性 icmp的兩級封裝 更加詳細地看一下資料報的格式吧。用來傳送icmp 報文的ip 資料報上實際上有不少字段。但是實際上與icmp 協議相關的只有7 個子段。1 協議 2 源ip 位址 3 目的ip 位址 4 生存時間 這四個包含在ip 首部的字段。5 型別...

ICMP協議和ICMP協議

一 icmp協議 因為ip協議不提供可靠的傳輸服務,也不提供端到端或點到點的確認,如果出錯可以通過icmp報告來看,它是在ip模組中實現。tcp ip協議設計的icmp協議就是為了彌補ip協議的不足。它是tcp ip協議族的乙個子協議,用於在ip主機 路由器之間傳遞控制訊息。控制訊息指網路通不通 主...

ICMP協議及其抓包分析

internet訊息控制協議 icmp 指定了多種訊息型別,其目的就是管理網路。icmp的訊息分為錯誤資訊 請求資訊和響應訊息。一般icmp資料報格式 icmp資料報型別欄位和 字段 wireshark抓包分析 資料鏈路層 網路層 1.響應請求 ping命令 響應請求 type 8 和應答請求 ty...