天天看點

幾種常見的攻擊方式掃盲(一)——NTP反射放大

1.什麼是NTP服務?

NTP是網絡時間協定(Network Time Protocol),它是用來同步網絡中各個計算機的時間的協定

在計算機的世界裡,時間非常地重要,例如對于火箭發射這種科研活動,對時間的統一性和準确性要求就非常地高,是按照A這台計算機的時間,還是按照B這台計算機的時間?NTP就是用來解決這個問題的,NTP(Network Time Protocol,網絡時間協定)是用來使網絡中的各個計算機時間同步的一種協定。它的用途是把計算機的時鐘同步到世界協調時UTC,其精度在區域網路内可達0.1ms,在網際網路上絕大多數的地方其精度可以達到1-50ms。

它可以使計算機對其伺服器或時鐘源(如石英鐘,GPS等等)進行時間同步,它可以提供高精準度的時間校正,而且可以使用加密确認的方式來防止病毒的協定攻擊。

2.攻擊方式詳情

先來說什麼是放射放大攻擊。

無論是基于 DNS 還是基于 NTP,其最終都是基于 UDP 協定的。在 UDP 協定中正常情況下用戶端發送請求包到服務端,服務端傳回響應包到用戶端,但是 UDP 協定是面向無連接配接的,是以用戶端發送請求包的源 IP 很容易進行僞造,當把源 IP 修改為受害者的 IP,最終服務端傳回的響應包就會傳回到受害者的 IP。這就形成了一次反射攻擊。

NTP反射放大攻擊是一種分布式拒絕服務(DDoS)攻擊,其中攻擊者利用網絡時間協定(NTP)伺服器功能,以便用一定數量的UDP流量壓倒目标網絡或伺服器,使正常流量無法通路目标及其周圍的基礎設施。

标準NTP 服務提供了一個 monlist查詢功能,也被稱為MON_GETLIST,該功能主要用于監控 NTP 伺服器的服務狀況,當使用者端向NTP服務送出monlist查詢時,NTP 伺服器會向查詢端傳回與NTP 伺服器進行過時間同步的最後 600 個用戶端的 IP,響應包按照每 6 個 IP 進行分割,最多有 100 個響應包。由于NTP服務使用UDP協定,攻擊者可以僞造源發位址向NTP服務進行monlist查詢,這将導緻NTP伺服器向被僞造的目标發送大量的UDP資料包,理論上這種惡意導向的攻擊流量可以放大到僞造查詢流量的100倍。

NTP放大攻擊可以分為四個步驟:

攻擊者使用僵屍網絡,将帶有欺騙IP位址的UDP資料包發送到啟用了monlist指令的NTP伺服器。每個資料包上的欺騙IP位址指向受害者的真實IP位址。

每個UDP資料包使用其monlist指令向NTP伺服器送出請求,進而産生大量響應。

伺服器使用結果資料,響應欺騙位址。

目标的IP位址接收響應,周圍的網絡基礎設施因流量泛濫而變得不堪重負,導緻拒絕服務。