我不知道为什么会有这个数据包进来:dns 响应 127.0.0.1

我不知道为什么会有这个数据包进来:dns 响应 127.0.0.1

我需要你们的帮助。

我为服务器使用了大量公共 IP,这些服务器只开放了一个端口用于服务。还使用 L3 交换机进行负载平衡。(我将它们用于 EXDNS、Pulic-web 等)

在这个环境中,我发现一些数据包来自许多具有 53 端口的公共 IP,这些数据包以任何端口(不是我正在使用的端口)发送到我的公共 IP。域名是 xxxx.x99m​​oyu.net(域名的最低部分被随机更改。)这是 ACK 数据包,包含查询的答案 127.0.0.1。但我们的服务器从不发送这些域的 DNS 查询。我收到的数据包之一是

*-----------------------------------------------------------------

IPv4,源:171.125.150.23,目标:112.xxx(我的 ip)
UDP,源端口:53,目标端口:54162
域名系统(响应)
问题:1
答案 RR:1
查询:tnczmz.x99m​​oyu.net:类型 A,类 IN
答案:tnczmz.x99m​​oyu.net:类型 A,类 IN,地址 127.0.0.1
--------------------------------------------------------------------*

当我第一次看到这些数据包时,我编写了一个关于 DNS 放大攻击的方案。使用互联网上的 DNS 服务器和我的公共 IP 作为 src.ip,然后我的服务器将从 DNS 服务器获得许多应答数据包。但目标太广,无法成功进行此攻击,因为超过 200 台服务器收到了这些数据包,而每台服务器只收到 3-5 个 DNS 响应。

因此,如果有人有类似的经历或知道发生这种情况的原因,请告诉我。谢谢。

答案1

当远程数据包的源端口为 53 时,通常会出现以下四种情况之一:

  1. 您获得的 IP 地址是之前由监听端口为 53 的设备使用的,过去知道该端口的设备仍在尝试使用该端口。(可能是权威服务器或开放解析器)
  2. 您的设备参加在一次袭击中。
  3. 这些数据包被反射到您身上,正如您所怀疑的那样,您就是攻击的目标。
  4. 这些数据包被反射到你身上,而你不是攻击的目标。你的 IP 恰好就是他们伪造的。

许多人误以为 #1 是对他们服务器的攻击(#3)。您必须查看传入流量的数量才能判断,而且由于您没有抱怨带宽因此而堵塞,因此可能性不大。让我们排除 #3。

我们的下一个提示是查询名称:tnczmz.x99moyu.net。对于过去几年运营过高容量递归 DNS 服务器(并且一直关注)的人来说,这样的名称很熟悉:这是一个“伪随机子域”又称“水刑”攻击。我不会在这里详尽地介绍,但这个想法是在某个域下生成数千个不可缓存的随机查询,以便所有请求都发送到该域的名称服务器,即攻击的真正受害者。在本例中,它们是 Cloudflare 的名称服务器:

$ dig +short x99moyu.net NS
darwin.ns.cloudflare.com.
uma.ns.cloudflare.com.

由于我很确定您不是 Cloudflare 的服务器管理员,因此我们现在需要考虑数据包的方向,以排除 #1。以下是我们必须处理的内容:

  • 来源:171.125.150.23(中国)
  • 源端口:53
  • 目的地:您的服务器
  • 目标端口:随机

一个中国 IP 正在向您发送 DNS 回复数据包。我们知道它们是回复数据包,因为它们包含 DNS 答案部分。由于您和这个远程 IP 都不属于 Cloudflare(他们的名称服务器管理域),我们可以假设其中一个 IP 是伪造的。考虑到攻击的受害者(Cloudflare)以及攻击的运作方式,这里最有可能被伪造的地址是您的。这将使中国 IP 成为接收递归查询的服务器。

我的结论是,你既不是攻击目标,也没有参与攻击(这种情况经常发生,你很幸运)。这是第 4 种情况:你的源 IP 只是被冒充为其他人在对 Cloudflare 进行攻击时掩盖其踪迹的一部分。


事后看来,#2 仍然是一种可能性。即使持有您的 IP 的服务器不提供 DNS 侦听器,您的服务器也可能受到攻击并运行生成查询的恶意软件。当然,这假设您的数据包捕获忽略了出站查询。(我突然意识到,假设这会被注意到是不好的)

答案2

我不是系统管理员,而是一名编写 DNS 服务器软件的程序员。我发现我们的测试服务器和客户(IS 提供商)的服务器上的域名 x99moyu.net 存在同样的问题。我们的客户(ISP 提供商)不久前报告了这个问题。他们抱怨他们的网络速度明显变慢,所以我们获取了 tcpdump 样本并进行了检查。

我在日志中看到的是 UDP 上的泛洪流量,地址为端口 53,带有对 xxx.x99m​​oyu.net 的 A? 请求,用于不存在的域名。数据包的 UDP 校验和错误,因此它们只会在 DNS 网络中产生寄生流量并加载服务器。它占某些 ISP 服务器 DNS 流量的 2/3。它不会给服务器带来太多负载,但由于 DNS 答案延迟增加,它会降低客户端的网络速度。所以这很烦人。而且我在一些不是公共 DNS 服务器的测试服务器上也看到了同样的情况。所以我认为机器人会攻击他们能找到的任何监听端口 53 的服务器。源 IP 范围很大。我检查了一下,它们看起来像是连续的数字(欺骗地址)。有一段时间我不知道如何阻止这种流量。

相关内容