「網絡安全」常見攻擊篇(16)——ICMP洪水攻擊

什麼是ICMP協議?

「網絡安全」常見攻擊篇(16)——ICMP洪水攻擊

ICMP是(Internet Control Message Protocol)Internet控制報文協議,它是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制消息。

控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息,這些控制消息雖然並不傳輸用戶數據,但是對於用戶數據的傳遞起著重要的作用。

ICMP報文格式

ICMP報文包含在IP數據報中,屬於IP的一個用戶,IP頭部就在ICMP報文的前面,所以一個ICMP報文包括IP頭部、ICMP頭部和ICMP報文。

IP頭部的Protocol值為1就說明這是一個ICMP報文,ICMP頭部中的類型 (Type)域用於說明ICMP報文的作用及格式,此外還有一個代碼(Code)域用於詳細說明某種ICMP報文的類型,所有數據都在ICMP頭部後面。 ICMP報文格式,具體如下:

「網絡安全」常見攻擊篇(16)——ICMP洪水攻擊

什麼是ICMP flood?

「網絡安全」常見攻擊篇(16)——ICMP洪水攻擊

  • ICMP flood的成因
    足夠快的數據包速度+足夠的帶寬,這才是洪水。
    ping.exe和IcmpSendEcho速度慢的另一個原因是它們必須等待目標主機返回REPLY信息,這個過程需要花費大量時間,而Flood—— 洪水,顧名思義,是速度極快的,當一個程序發送數據包的速度達到了每秒1000個以上,它的性質就成了洪水產生器,洪水數據是從洪水產生器裡出來的,但這樣還不夠,沒有足夠的帶寬,再猛的洪水也只能像公路塞車那樣慢慢移動,成了雞肋。要做真正的洪水,就需要有一條足夠寬的高速公路才可以,由於ping.exe無法提速,這就需要專門的工具來做洪水了。
  • 實現ICMP洪水的前提
    最大的前提是攻擊者的速度,其次是你的機器運行速度和數據吞吐量,由於涉及IP校驗和的計算,如果數據處理能力不夠,在這步就慢了一個級別,效果當然大打折扣。最後就是目標機器的帶寬!如果對方比你大很多那麼任何Flood都是無病呻吟。還有許多人都忽略的問題:發送的速度與數據包大小成反比,而且太大的數據包會被路由器等設備過濾掉!找到一個合適的數據包大小,對提高Flood的效率有很大幫助!
  • 洪水——兩敗俱傷的攻擊方式
    別以為洪水無所不能,實際上,你展開洪水攻擊時,攻擊程序在消耗對方帶寬和資源時,也在消耗你的帶寬和資源。這只是個看誰撐得住的攻擊而已。實際上,有經驗的攻擊者都是用被控制的服務器(肉雞)來代替自己的機器發動攻擊的,不到萬不得已或者你對自己的機器網速有自信,否則儘量少用自己的機器來拼搏!
  • ICMP洪水攻擊分類

    「網絡安全」常見攻擊篇(16)——ICMP洪水攻擊

  • 直接Flood
    要做這個的首要條件是你的帶寬夠,然後就是要一個好用的ICMP Flooder。直接攻擊會暴露自己IP(如果對方沒有還擊能力那還無所謂,固定IP用戶不推薦使用這種Flood),如果可以偽造IP一般還是別用為妙。
    簡單示意圖:
    攻擊者[IP=211.97.54.3]—— ICMP—–>受害者[截獲攻擊者IP=211.97.54.3]==>換IP回來反擊,嘿嘿
  • 偽造IP的Flood
    如果你是Win2000/XP並且是Administrator權限,可以試試看FakePing,它能隨意偽造一個IP來Flood,讓對方摸不到頭腦,屬於比較隱蔽陰險的Flood。
    簡單示意圖:
    攻擊者[IP=211.97.54.3]——偽造IP=1.1.1.1的ICMP——>受害者[截獲攻擊者IP=1.1.1.1]==>倒死
  • 反射
    這種攻擊模式裡,最終淹沒目標的洪水不是由攻擊者發出的,也不是偽造IP發出的,而是正常通訊的服務器發出的!實現的原理也不算複雜,Smurf方式把源IP設置為受害者IP,然後向多臺服務器發送ICMP報文(通常是ECHO請求),這些接收報文的服務器被報文欺騙,向受害者返回ECHO應答(Type=0),導致垃圾阻塞受害者的門口。從示意圖可以看出,它比上面兩種方法多了一級路徑——受騙的主機(稱為“反射源”),所以,一個反射源是否有效或者效率低下,都會對Flood效果造成影響!

    簡單示意圖:
    攻擊者[IP=211.97.54.3]—-偽造受害者的ICMP—->正常的主機—-應答—>受害者[截獲攻擊者IP=網易?!]==>哭啊……
  • 以上是幾種常見的Flood方式,在測試中,我發現一個有趣的現象:一些防火牆(如天網)只能攔截ECHO請求(Ping)的ICMP報文,對於其他 ICMP報文一概睜隻眼閉隻眼,不知道其他防火牆有沒有這個情況。所以想神不知鬼不覺對付你的敵人時,請儘量避開直接ECHO Flood,換用Type=0的ECHO應答或Type=14的時間戳應答最好,其他類型的ICMP報文沒有詳細測試過,大家可以試試看Type=3、 4、11的特殊報文會不會有更大效果。

    被ICMP Flood攻擊的特徵

    1. 傳輸狀態裡,代表遠程數據接收的計算機圖標一直亮著,而你沒有瀏覽網頁或下載
    2. 防火牆一直提示有人試圖ping你
    3. 網絡速度奇慢無比
    4. 嚴重時系統幾乎失去響應,鼠標呈跳躍狀行走

    ICMP Flood攻擊如何防範?

    方法很簡單,裝個防火牆就可以了啊。






    分享到:


    相關文章: