NTP放大攻击
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