DNS 响应如何包含这么多信息?

DNS 响应如何包含这么多信息?

我正在学习DNS 放大攻击。这个想法是攻击者可以发送一条小消息(向 DNS 服务器发出请求),并让其向伪造的 IP 地址发送一条大消息。DNS 响应消息中有什么让它这么大?我以为它只是与主机名关联的 IP 地址(因为这不就是 DNS 的全部工作吗)?

答案1

DNS 响应可以包含远不止一个 IP 地址。对于 A 类请求(请求与主机名关联的 IP 地址),您可能已经拥有多个 IP,因此如果您发现某个主机由多个 IP 提供服务,则响应可能已经大于请求。

但 DNS 可以存储许多其他字段。DNSSEC 签署 DNS 响应,从而添加签名以及验证该签名所需的所有密钥材料。DNS 还可以存储 TXT 字段,其中可以包含您想要的任何文本,SSHFP 字段包含服务器密钥的 ssh 指纹。我不会列出所有字段,维基百科维护了一个列表。使用 ANY 请求,您可以一次请求所有这些字段,因此响应可能非常大。

答案2

关于安全堆栈已经得到了很好的回答。

为了扩大 DNS 攻击,可以使用 EDNS0 DNS 协议扩展发送每个 DNS 请求,该扩展允许发送大型 DNS 消息,或使用 DNS 安全扩展 (DNSSEC) 的加密功能来增加消息大小。还可以使用“ANY”类型的欺骗查询,该查询在单个请求中返回有关 DNS 区域的所有已知信息。

来源

“ANY”参数使得这种类型的攻击对恶意攻击者有用,这意味着您发送的每 1 个字节,目标都会收到大约 6-8 个字节。这会将 100Mb 攻击者转变为 800Mb 攻击者。

虽然并不严格相关,但值得注意的是,使用 NTP 的类似攻击可以产生 600+X 的放大系数,比 8X 危险得多。

相关内容