您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關ICMP隧道通信原理與通信特征是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
ICMP協議
ICMP(Internet Control Message Protocol)Internet控制報文協議。它是TCP/IP協議簇的一個子協議,用于在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。這些控制消息雖然并不傳輸用戶數據,但是對于用戶數據的傳遞起著重要的作用。
主要概念有:
1.確認ip數據包是否成功到達目的地
2.通知源主機發送ip數據包丟失的原因
3.ICMP是基于IP協議工作的
4.ICMP只能作用于IPV4,IPV6下,使用ICMPv6
ICMP幀格式如下所示
其中,類型和代碼字段決定了ICMP報文的類型,如下圖所示
ICMP隧道技術原理
由于ICMP報文自身可以攜帶數據,而且ICMP報文是由系統內核處理的,不占用任何端口,因此具有很高的隱蔽性。
通常ICMP隧道技術采用ICMP的ICMP_ECHO和ICMP_ECHOREPLY兩種報文,把數據隱藏在ICMP數據包包頭的選項域中,利用ping命令建立隱蔽通道。
進行隱蔽傳輸的時候,肉雞(防火墻內部)運行并接受外部攻擊端的ICMP_ECHO數據包,攻擊端把需要執行的命令隱藏在ICMP_ECHO數據包中,肉雞接收到該數據包,解出其中隱藏的命令,并在防火墻內部主機上執行,再把執行結果隱藏在ICMP_ECHOREPLY數據包中,發送給外部攻擊端。
簡單的說就是,利用ICMP的請求和應答數據包,偽造Ping命令的數據包形式,實現繞過防火墻和入侵檢測系統的阻攔。
ICMP隧道優缺點
優點:
1.防火墻對ICMP_ECHO數據包是放行的,并且內部主機不會檢查ICMP數據包所攜帶的數據內容,隱蔽性高。
缺點:
1.ICMP隱蔽傳輸是無連接的,傳輸不是很穩定,而且隱蔽通道的帶寬很低
2.利用隧道傳輸時,需要接觸更低層次的協議 ,這就需要高級用戶權限
icmpsh
這一工具簡單并且便攜。受控端(客戶端)使用C語言實現。只能運行在目標Windows機器上,而主控端(服務端)由于已經有C和Perl實現的版本,而且之后又移植到了Python上,因此可以運行在任何平臺的攻擊者機器中。
icmpsh建立隧道及數據包分析
可以看到已經實現成功。
抓包,可以看到我們輸入的命令
icmptunnel
icmptunnel是通過創建虛擬網卡,將所有流量都經過這個虛擬網卡。即ICMP隧道
icmptunnel建立隧道及數據包分析
客戶端主機上的所有用戶流量都路由到虛擬網卡tun0。icmptunnel在此接口上偵聽IP數據包。這些數據包封裝在ICMP回顯數據包中。
建立ICMP隧道
此時所有流量都通過虛擬網卡,即icmp隧道
ptunnel
ptunnel支持大多數具有libpcap的操作系統,從版本0.7開始,ptunnel也可以在Windows上編譯。
前提是需要裝WinPcap
petunnel 建立隧道及數據包分析
使用命令建立ICMP隧道
icmp會話中數據包的總數
一個正常的 ping 每秒最多只會發送兩個數據包,而使用 ICMP隧道的瀏覽器在同一時間會產生大量 ICMP 數據包。
隧道數據通常比較大
ICMP隧道 數據包中DATA 往往大于 64 比特
請求包和響應包內容不一致
而正常的icmp數據包里,請求和回應部分數據是一致的
部分隧道工具會顯示tun的標志
關于ICMP隧道通信原理與通信特征是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。