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 缓解措施

  1. 通过Iptables配置只允许信任的IP访问本机UDP的123端口。

5 防御措施

  1. 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
    
  2. 使用DDoS防御产品,将入口异常访问请求进行过滤清洗,然后将正常的访问请求分发给服务器进行业务处理。

  3. 直接关闭掉NTP服务,并禁止其开机自启动。

  4. NTP官方修复方案
    http://support.ntp.org/bin/view/Main/SecurityNotice#DRDoS_Amplification_Attack_using

posted @ 2024-03-05 12:23  f_carey  阅读(235)  评论(0编辑  收藏  举报