深入理解死亡之Ping ---《openstack 网络安全》
ping簡述
-
ICMP協議是“Internet Control Message Protocol”(因特網控制消息協議)的縮寫。它是TCP/IP協議族的一個子協議,用于在IP主機、路由器之間傳遞控制消息。
-
ping (Packet Internet Groper),因特網包探索器,用于測試網絡連接量的程序。Ping發送一個ICMP;回聲請求消息給目的地并報告是否收到所希望的ICMP echo (ICMP回聲應答)。它是用來檢查網絡是否通暢或者網絡連接速度的命令
-
ping命令通常用來作為網絡可用性的檢查。ping命令可以對一個網絡地址發送測試數據包,看該網絡地址是否有響應并統計響應時間,以此測試網絡。
-
ping和ICMP的關系:ping命令發送數據使用的是ICMP協議。
ping的原理
向指定的網絡地址發送一定長度的數據包,按照約定,若指定網絡地址存在的話,會返回同樣大小的數據包,當然,若在特定時間內沒有返回,就是“超時”,會被認為指定的網絡地址不存在。
ICMP協議通過IP協議發送的,IP協議是一種無連接的,不可靠的數據包協議。在Unix/Linux,序號從0開始計數,依次遞增。而Windows ping程序的ICMP序列號是沒有規律。
ICMP協議在實際傳輸中數據包:20字節IP首部 + 8字節ICMP首部 + 1472字節<數據大小>38字節。
ICMP報文格式:IP首部(20字節) + 8位類型 + 8位代碼 + 16校驗和 + (不同類型和代碼,格式也有所不同)。
ping命令的介紹
執行 ping 指令會使用 ICMP 傳輸協議,發出要求回應的信息,若遠端主機的網絡功能沒有問題,就會回應該信息,因而得知該主機運作正常。
語法
ping [-dfnqrRv][-c<完成次數>][-i<間隔秒數>][-I<網絡界面>][-l<前置載入>][-p<范本樣式>][-s<數據包大小>][-t<存活數值>][主機名稱或IP地址]
參數說明:
-d 使用Socket的SO_DEBUG功能。 -c <完成次數> 設置完成要求回應的次數。 -f 極限檢測。 -i<間隔秒數> 指定收發信息的間隔時間。 -I<網絡界面> 使用指定的網絡接口送出數據包。 -l<前置載入> 設置在送出要求信息之前,先行發出的數據包。 -n 只輸出數值。 -p<范本樣式> 設置填滿數據包的范本樣式。 -q 不顯示指令執行過程,開頭和結尾的相關信息除外。 -r 忽略普通的Routing Table,直接將數據包送到遠端主機上。 -R 記錄路由過程。 -s<數據包大小> 設置數據包的大小。 -t<存活數值> 設置存活數值TTL的大小。 -v 詳細顯示指令的執行過程。 -w <deadline> 在 deadline 秒后退出。 -W <timeout> 在等待 timeout 秒后開始執行。實踐
-c <完成次數> 設置完成要求回應的次數。5。
-i<間隔秒數> 指定收發信息的間隔時間。為10s。
-s<數據包大小> 設置數據包的大小。15
-t<存活數值> 設置存活數值TTL的大小。255
死亡之Ping
最簡單的基于IP的攻擊可能要數著名的死亡之ping,這種攻擊主要是由于單個包的長度超過了IP協議規范所規定的包長度。產生這樣的包很容易,事實上,許多操作系統都提供了稱為ping的網絡工具。
如何工作呢?
死亡之ping是如何工作的呢?首先是因為以太網長度有限,IP包片段被分片。當一個IP包的長度超過以太網幀的最大尺寸(以太網頭部和尾部除外)時,包就會被分片,作為多個幀來發送。接收端的機器提取各個分片,并重組為一個完整的IP包。在正常情況下,IP頭包含整個IP包的長度。當一個IP包被分片以后,頭只包含各個分片的長度。分片并不包含整個IP包的長度信息,因此IP包一旦被分片,重組后的整個IP包的總長度只有在所在分片都接受完畢之后才能確定。
在IP協議規范中規定了一個IP包的最大尺寸,而大多數的包處理程序又假設包的長度超過這個最大尺寸這種情況是不會出現的。因此,包的重組代碼所分配的內存區域也最大不超過這個最大尺寸。這樣,超大的包一旦出現,包當中的額外數據就會被寫入其他正常區域。這很容易導致系統進入非穩定狀態,是一種典型的緩存溢出(Buffer Overflow)攻擊。在防火墻一級對這種攻擊進行檢測是相當難的,因為每個分片包看起來都很正常。
由于使用ping工具很容易完成這種攻擊,以至于它也成了這種攻擊的首選武器,這也是這種攻擊名字的由來。當然,還有很多程序都可以做到這一點,因此僅僅阻塞ping的使用并不能完全解決這個漏洞。預防死亡之ping的最好方法是對操作系統打補丁,使內核將不再對超過規定長度的包進行重組。
操作(不要隨便操作)
? 打開系統的命令窗口,windows電腦按win+R ,輸入cmd命令后進入命令界面:
ping -l 65500 目標ip -t常見攻擊與防范
SYN Flood攻擊:
問題就出在TCP連接的三次握手中,假設一個用戶向服務器發送了SYN報文后突然死機或掉線,那么服務器在發出SYN+ACK應答報文后是無法收到客戶端的ACK報文的(第三次握手無法完成),這 種情況下服務器端一般會重試(再次發送SYN+ACK給客戶端)并等待一段時間后丟棄這個未完成的連接,這段時間的長度我們稱為SYN Timeout,一般來說這個時間是分鐘的數量級(大約為30秒 -2分鐘);一個用戶出現異常導致服務器的一個線程等待1分鐘并不是什么很大的問題,但如果有一個惡意的攻擊者大量模擬這種情況,服務器端將為了維護一個非常大的半連接列表而消耗非常多的資源----數以萬計的半連接,即使是簡單的保存并遍歷也會消耗非常多的CPU時間和內存,何況還要不斷對這個列表中的IP進行SYN+ACK的重試。實際上如果服務器的TCP/IP棧不夠強大,最 后的結果往往是堆棧溢出崩潰—即使服務器端的系統足夠強大,服務器端也將忙于處理攻擊者偽造的TCP連接請求而無暇理睬客戶的正常請求(畢竟客戶端的正常請求比率非常之小),此時從 正??蛻舻慕嵌瓤磥?#xff0c;服務器失去響應,這種情況我們稱作:服務器端受到了SYN Flood攻擊(SYN洪水攻擊)。
防范:
第一種是縮短SYN Timeout時間 第二種方法是設置SYN Cookie,就是給每一個請求連接的IP地址分配一個Cookie,如果短時間內連續受到某個IP的重復SYN報文,就認定是受到了攻擊,以后從這個IP地址來的包會被一概丟棄。 >netstat -n -p tcp >result.txt
Smurf攻擊
發送偽裝的ICMP數據包,目的地址設為某個網絡的廣播地址,源地址設為要攻擊的目的主機,使所有收到此ICMP數據包的主機都將對目的主機發出一個回應,使被攻擊主機在某一段時間內收到 成千上萬的數據包 。
防范:
在cisco路由器上配置如下可以防止將包傳遞到廣播地址上: Router(config-if)# no ip directed-broadcast
Ping of Death
“ping ofdeath"攻擊就是我們常說的"死亡Ping” 這種攻擊通過發送大于65536字節的ICMP包使操作系統崩潰;通常不可能發送大于65536個字節的ICMP包,但可以把報文分割成片段,然后在目標主機上重組;最終會導致被攻擊目標緩沖區溢出,引起拒絕服務攻擊。有些時候導致telne和http服務停止,有些時候路由器重啟。
teardown攻擊
對于一些大的IP數據包,往往需要對其進行拆分傳送,這是為了迎合鏈路層的MTU(最大傳輸單元)的要求。比如,一個6 000字節的IP包,在MTU為2 000的鏈路上傳輸的時候,就需要分成3個IP 包。在IP報頭中有一個偏移字段和一個拆分標志(MF)。如果MF標志設置為1,則表示這個IP包是一個大IP包的片段,其中偏移字段指出了這個片段在整個IP包中的位置。例如,對一個6 000字 節的IP包進行拆分(MTU為2 000),則3個片段中偏移字段的值依次為0,2000,4 000。這樣接收端在全部接收完IP數據包后,就可以根據這些信息重新組裝這幾個分次接收的拆分IP包。在這 里就有一個安全漏洞可以利用了,就是如果黑客們在截取IP數據包后,把偏移字段設置成不正確的值,這樣接收端在收到這些分拆的數據包后,就不能按數據包中的偏移字段值正確組合這些拆分的數據包,但接收端會不斷嘗試,這樣就可能致使目標計算機操作系統因資源耗盡而崩潰。
Land(LandAttack)攻擊
在Land攻擊中,黑客利用一個特別打造的SYN包–它的原地址和目標地址都被設置成某一個服務器地址進行攻擊。此舉將導致接受服務器向它自己的地址發送SYN-ACK消息,結果這個地址又發回ACK消息并創建一個空連接,每一個這樣的連接都將保留直到超時,在Land攻擊下,許多UNIX將崩潰,NT變得極其緩慢(大約持續五分鐘)。
IP欺騙
這種攻擊利用TCP協議棧的RST位來實現,使用IP欺騙,迫使服務器把合法用戶的連接復位,影響合法用戶的連接。假設有一個合法用戶(100.100.100.100)已經同服務器建了正常的連接,攻擊者構造攻擊的TCP數據,偽裝自己的IP為100.100.100.100,并向服務器發送一個帶有RST位的TCP數據段。服務器接收到這樣的數據后,認為從100.100.100.100發送的連接有錯誤,就會清空緩沖區中已建立好的連接。這時,合法用戶100.100.100.100再發送合法數據,服務器就已經沒有這樣的連接了,該用戶就被拒絕服務而只能重新開始建立新的連接。
總結
以上是生活随笔為你收集整理的深入理解死亡之Ping ---《openstack 网络安全》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玩转树莓派——支持XBOX手柄
- 下一篇: 摘录 | WAREZ无形帝国