1. 程式人生 > 其它 >ICMP隧道通訊原理與通訊特徵

ICMP隧道通訊原理與通訊特徵

一. ICMP 隧道技術解析

1.1 ICMP協議

ICMP(Internet Control Message Protocol)Internet控制報文協議。它是TCP/IP協議簇的一個子協議,用於在IP主機、路由器之間傳遞控制訊息。控制訊息是指網路通不通、主機是否可達、路由是否可用等網路本身的訊息。這些控制訊息雖然並不傳輸使用者資料,但是對於使用者資料的傳遞起著重要的作用。

主要概念有:

1.確認ip資料包是否成功到達目的地

2.通知源主機發送ip資料包丟失的原因

3.ICMP是基於IP協議工作的

4.ICMP只能作用於IPV4,IPV6下,使用ICMPv6

ICMP幀格式如下所示

其中,型別和程式碼欄位決定了ICMP報文的型別,如下圖所示

1.2 ICMP隧道技術原理

由於ICMP報文自身可以攜帶資料,而且ICMP報文是由系統核心處理的,不佔用任何埠,因此具有很高的隱蔽性。

通常ICMP隧道技術採用ICMP的ICMP_ECHO和ICMP_ECHOREPLY兩種報文,把資料隱藏在ICMP資料包包頭的選項域中,利用ping命令建立隱蔽通道。

進行隱蔽傳輸的時候,肉雞(防火牆內部)執行並接受外部攻擊端的ICMP_ECHO資料包,攻擊端把需要執行的命令隱藏在ICMP_ECHO資料包中,肉雞接收到該資料包,解出其中隱藏的命令,並在防火牆內部主機上執行,再把執行結果隱藏在ICMP_ECHOREPLY資料包中,傳送給外部攻擊端。

簡單的說就是,利用ICMP的請求和應答資料包,偽造Ping命令的資料包形式,實現繞過防火牆和入侵檢測系統的阻攔。

1.3 ICMP隧道優缺點

優點:

1.防火牆對ICMP_ECHO資料包是放行的,並且內部主機不會檢查ICMP資料包所攜帶的資料內容,隱蔽性高。

缺點:

1.ICMP隱蔽傳輸是無連線的,傳輸不是很穩定,而且隱蔽通道的頻寬很低

2.利用隧道傳輸時,需要接觸更低層次的協議 ,這就需要高階使用者許可權

二. ICMP隧道攻擊實現以及流行工具展示

二. ICMP隧道攻擊實現以及流行工具展示

這一工具簡單並且便攜。受控端(客戶端)使用C語言實現。只能執行在目標Windows機器上,而主控端(服務端)由於已經有C和Perl實現的版本,而且之後又移植到了Python上,因此可以執行在任何平臺的攻擊者機器中。

2.1.1 icmpsh建立隧道及資料包分析

可以看到已經實現成功。

抓包,可以看到我們輸入的命令

2.2 icmptunnel

icmptunnel是通過建立虛擬網絡卡,將所有流量都經過這個虛擬網絡卡。即ICMP隧道

2.2.1 icmptunnel建立隧道及資料包分析

客戶端主機上的所有使用者流量都路由到虛擬網絡卡tun0。icmptunnel在此介面上偵聽IP資料包。這些資料包封裝在ICMP回顯資料包中。

建立ICMP隧道

此時所有流量都通過虛擬網絡卡,即icmp隧道

2.3 ptunnel

ptunnel支援大多數具有libpcap的作業系統,從版本0.7開始,ptunnel也可以在Windows上編譯

前提是需要裝WinPcap

2.3.1 petunnel 建立隧道及資料包分析

使用命令建立ICMP隧道

三. 檢測icmp隧道通訊特徵

3.1 icmp會話中資料包的總數

一個正常的 ping 每秒最多隻會發送兩個資料包,而使用 ICMP隧道的瀏覽器在同一時間會產生大量 ICMP 資料包。

3.2 隧道資料通常比較大

ICMP隧道 資料包中DATA 往往大於 64 位元

3.3 請求包和響應包內容不一致

而正常的icmp資料包裡,請求和迴應部分資料是一致的

3.4 部分隧道工具會顯示tun的標誌

學網安就來合天網安實驗室

合天智匯:合天網路靶場、網安實戰虛擬環境