NTP放大攻擊
原理:
NTP協議是基於UDP協議的123端口進行通信,但是由於UDP協議的無連接性具有不安全性的缺陷,攻擊者就會利用NTP服務器的不安全性能漏洞發起DDoS攻擊。攻擊者攻擊的步驟是先尋找攻擊對象或者互聯網中支持NTP放大攻擊的服務器資源;然后通過偽造IP地址向NTP服務器發送monlist的請求報文,為了增加攻擊的強度,monlist指令會監控響應 NTP 服務器並且將其返回進行時間同步的最近多個客戶端的IP地址,通常NTP服務器與大量的客戶端進行交互時,一個不超過64字節的請求數據包可以觸發100個482個字節響應的數據包,因此它具有放大數百倍的功能。從而這些大流量就會阻塞網絡,導致網絡不通,造成了分布式拒絕服務。
發現ntp服務
nmap -sU -p 123 10.0.1.82
nmap -sU -p123 -n --script=ntp-monlist 10.0.1.82
測試發現ntp漏洞
ntpdc -n -c monlist 10.0.1.82
ntpq -c rv 10.0.1.82
ntpdc -c sysinfo 10.0.1.82
列出目標ntp服務器peers
sudo ntpdc -n -c listpeers 10.0.1.82
防御措施:
1.對NTP服務器進行合理的管理和配置,將全部的NTP服務軟件升級到4.2.7p26或更高版本;
2.手動關閉monlist查詢功能在配置文件中添加noquery參數來限制客戶端的monlist等信息查詢請求 disable monitor;
3.通過防火牆對UDP試用的123端口進行限制,只允許NTP服務於固定IP進行通信;
4.運用足夠大的帶寬,硬抗NTP服務產生的放大型流量攻擊。
5.使用DDoS防御產品,將入口異常訪問請求進行過濾清洗,然后將正常的訪問請求分發給服務器進行業務處理。
1)通過Iptables配置只允許信任的IP訪問本機UDP的123端口。
修改配置文件,然后執行以下命令:
echo "disable monitor" >> /etc/ntp.conf
執行以下命令重啟NTP服務:
systemctl restart ntpd
2)我們建議您直接關閉掉NTP服務,並禁止其開機自啟動。
NTP官方修復方案
http://support.ntp.org/bin/view/Main/SecurityNotice#DRDoS_Amplification_Attack_using
升級到4.2.7p26版本后的防御操作
https://us-cert.cisa.gov/ncas/alerts/TA14-013A
做了如下操作
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
參考:
https://www.cloudflare.com/zh-cn/learning/ddos/ntp-amplification-ddos-attack/
https://jaminzhang.github.io/security/understand-udp-flood-ddos-attack/
https://wooyun.js.org/drops/%E5%A6%82%E4%BD%95%E5%8F%91%E7%8E%B0%20NTP%20%E6%94%BE%E5%A4%A7%E6%94%BB%E5%87%BB%E6%BC%8F%E6%B4%9E.html
https://wooyun.js.org/drops/NTP%E5%8F%8D%E5%B0%84%E5%9E%8BDDos%E6%94%BB%E5%87%BBFAQ.%E8%A1%A5%E9%81%97.html
https://www.codenong.com/cs106625011/
https://xz.aliyun.com/t/1009
http://drops.xmd5.com/static/drops/papers-926.html