NTP 反射放大攻击分析

203 阅读2分钟

简介

NTP 反射放大攻击通过向开放的NTP 服务器发送请求,伪造源IP 从而实现NTP 响应报文都发送到被攻击IP;最近火爆的DeepSeek就遭受到了此种攻击。

自 2025 年 1 月起,DeepSeek 遭遇了多轮大规模网络攻击,主要分为三个阶段:

  • 初期阶段(1 月 3 日 - 1 月 20 日):以 HTTP 代理攻击为主,攻击者试图瘫痪 DeepSeek 的服务器。
  • 中期阶段(1 月 20 日 - 1 月 27 日):攻击手段升级为 NTP 反射攻击、SSDP 反射攻击等 DDoS 攻击,导致 DeepSeek 服务中断。
  • 后期阶段(1 月 27 日 - 1 月 30 日):攻击强度加剧,包括 Memcached 反射攻击和暴力破解等手段,攻击者甚至利用僵尸网络发起海量请求,导致系统瘫痪。

原理

标准NTP 服务提供了一个 monlist查询功能,也被称为MON_GETLIST,该功能主要用于监控 NTP 服务器的服务状况,当用户端向NTP服务提交monlist查询时,NTP 服务器会向查询端返回与NTP 服务器进行过时间同步的最后 600 个客户端的 IP,响应包按照每 6 个 IP 进行分割,最多有 100 个响应包。由于NTP服务使用UDP协议,攻击者可以伪造源发地址向NTP服务进行monlist查询,这将导致NTP服务器向被伪造的目标发送大量的UDP数据包,理论上这种恶意导向的攻击流量可以放大到伪造查询流量的100倍。

NTP服务器

image.png

实现

服务端

centos7使用ntp,cento8进行了移除(替代者chrony

  • 安装

yum install ntp

  • 配置,开启monitor功能,支持客户端进行monlist查询
[root@localhost ~]# tail -n 2 /etc/ntp.conf
#disable monitor
enable monitor
  • 启动

ntpd

客户端

ntpdc -n -c monlist 127.0.0.1:123

分析

NTP请求

  • 版本为2
  • 命令为MON_GETLIST_1 image.png

NTP响应

  • 记录IP越多,报文越大,反射放大效果越明显

image.png

参考