使用Scapy构造可获取放大响应的NTP查询报文相关问题
NTP放大查询实现方法
确实存在能返回远大于请求体积响应的NTP查询类型,你之前构造的普通NTP时间同步请求(mode 3)本身就是请求响应大小对等的,自然不会有放大效果,需要使用NTP协议定义的控制类、私有类查询才能实现放大。
支持放大的常见NTP查询类型
monlist查询(NTP mode 7,请求码42):这是最经典的NTP放大请求,单条请求仅几十字节,响应最多可返回600条近期与服务器交互的客户端IP、端口等信息,放大幅度最高可达上百倍。不过目前公网绝大多数公开NTP服务都已禁用该功能避免被滥用为DRDoS攻击工具,仅未加固的内网NTP服务器大概率还支持。- 系统变量读取请求(NTP mode 6,操作码
READVAR):请求可以拉取NTP服务器的运行状态、配置参数、统计数据等信息,响应大小通常是请求的3~10倍,目前仍有不少未完全加固的NTP服务器支持该类请求。 - 对等节点列表查询(NTP mode 6,操作码
READPEERLIST):请求返回服务器配置的所有上游NTP对等节点信息,响应大小一般是请求的5~20倍。
Scapy构造示例
monlist请求构造代码
from scapy.all import * # 构造mode 7类型的monlist请求 pkt = IP(dst="你的测试NTP服务器IP")/UDP(sport=RandShort(), dport=123)/NTP(version=2, mode=7, implementation=3, request_code=42) send(pkt)
mode 6读变量请求构造代码
from scapy.all import * # 构造mode 6类型的系统变量读取请求 pkt = IP(dst="你的测试NTP服务器IP")/UDP(sport=RandShort(), dport=123)/NTP(version=2, mode=6, control=0x01, sequence=1) send(pkt)
提示:仅可在你拥有授权的自有测试环境中执行上述测试,对公网未授权服务器发送该类请求可能违反网络安全相关法律法规。公网公开NTP服务普遍禁用了上述查询类型,测试无响应属于正常情况。
内容的提问来源于stack exchange,提问作者sammy
相关产品推荐
相关产品推荐

