NTPD monlist Command Enabled|CVE-2013-5211
NTPD monlist Command Enabled|CVE-2013-5211
1 描述
-
NTP是用来使计算机时间同步化的一种协议。
-
CVE-2013-5211最早公布是2014年1月10日
-
攻击者HACK发送了一个伪造报文发送给NTP服务器Server A,将数据包中的源ip地址改成了受害者Client A的ip地址。NTP服务器Server A会响应这个请求,相对于初始请求,响应包发送的字节数是一个被放大的量,导致受害者Client A被dos攻击。
-
最高的两个消息类型:REQ_MON_GETLIST和REQ_MON_GETLIST_1,通过高达3660和5500的一个因素分别放大原始请求。NTP包含一个monlist功能,也被成为MON_GETLIST,主要用于监控NTP服务器,NTP服务器响应monlist后就会返回与NTP服务器进行过时间同步的最后600个客户端的IP,响应包按照每6个IP进行分割,最多有100个响应包。
-
monlist 返回已连接到服务的最近主机的列表。但是,它受到ntp_request.c中的拒绝服务漏洞的影响,该漏洞允许未经身份验证的远程攻击者通过使用伪造的REQ_MON_GETLIST或REQ_MON_GETLIST_1请求将网络流量饱和到特定的IP地址。此外,攻击者可以利用此问题进行侦察或分布式拒绝服务(DDoS)攻击。
-
NTP本身不会验证发送者的源ip地址,攻击类似于DNS解析器使用的DRDoS(分布式反射型拒绝服务攻击)。
2 影响范围
运行的ntpd版本已启用"monlist"命令的主机。
3 漏洞检测
3.1 Nmap检测
nmap -sU -p123 -n --script=ntp-monlist 192.168.1.1
4 缓解措施
- 通过Iptables配置只允许信任的IP访问本机UDP的123端口。
5 防御措施
-
Ntpd4.2.7p26之前的版本都会去响应NTP中的mode7“monlist”请求。ntpd-4.2.7p26版本后,“monlist”特性已经被禁止,取而代之的是“mrulist”特性,使用mode6控制报文,并且实现了握手过程来阻止对第三方主机的放大攻击。
# disable monitor echo "disable monitor" >> /etc/ntp.conf /etc/init.d/ntp restart # 或修改配置文件,将“ noquery”指令添加到系统ntp.conf中,保存后重新启动ntp服务。 cat /etc/ntp.conf | grep "# By default, " -A 3 # By default, exchange time with everybody, but don't allow configuration. restrict -4 default kod notrap nomodify nopeer noquery restrict -6 default kod notrap nomodify nopeer noquery /etc/init.d/ntp restart
-
使用DDoS防御产品,将入口异常访问请求进行过滤清洗,然后将正常的访问请求分发给服务器进行业务处理。
-
直接关闭掉NTP服务,并禁止其开机自启动。
-
NTP官方修复方案
http://support.ntp.org/bin/view/Main/SecurityNotice#DRDoS_Amplification_Attack_using