当前位置: 主页 > 域名查询 >

如何发现“利用DNS放大攻击”的服务器欧赔分析技巧

时间:2019-01-13 01:24来源:备案域名 作者:5A域名网 点击:
如果你对网络,IP和DNS有所了解,你可能会猜测我的下一步是什么。许多人基本上知道DNS是如何工作的。人们所知道的

反向解析公共IP - 这里没有问题

Tl; dr:有些域名名称服务器可能会在直接查询反向解析私有IP时暴露内部的IP地址和域名。用dig -x检查一下,或者使用privdns.py 检查一下。

 一个简单的错误

我最近犯了一个很小且看似不重要的错误:我试图连接某个公司的基础设施的服务器,但没有登录到他们的VPN。这看起来很无聊,你可能会觉得,这样的事情每天都在发生。但几个小时后,我正在编写Python代码,并且在大量扫描互联网上的DNS服务器。即使我最终没有取得成功(从安全的角度来看这是很好的结果),但这仍然是一个有趣的实验。那么到底发生了什么事。

当我试图ping内部公司的服务器时,我得到了下面的回应:

michael@seventysix:~ ping internal-db1.example.com 

PING internal-db1.example.com (10.0.0.1) 56(84) bytes of data. 

^C 

--- internal-db1.example.com ping statistics --- 

3 packets transmitted, 0 received, 100% packet loss, time 2014ms 

当然,结果显示超时了。但注意一些事情:域名已经被正确解析。即使我没有登录到VPN,我仍然可以解决内部域名。为了确保这不是由于某个DNS缓存造成的,我尝试从云集群中未曾登录到公司网络并使用不同名称服务器的虚拟机中重现此操作,并得到了相同的结果。

为了理解这背后的事情为什么这么有趣,这里有一些关于IP地址和DNS的背景知识。

内部,外部IP和DNS

IPv4和IPv6地址空间分为私有和公有IP。以下网络是私有的:

 10.0.0.0/8 

172.16.0.0/12 

192.168.0.0/16 

 FC00 :: / 7 

例如,在你的家庭网络或公司内部网络中使用专用IP。如果你在内部网络中处理公司服务器,他们通常具有上述范围内的IP。

为了连接名称服务器和IP地址,我们使用DNS(域名服务)。DNS服务器(或“域名服务器”)是将域名example.com翻译成IP的服务器。老知识,到目前为止,你很可能知道这一点。内部公司网络中使用的是同样的东西:你不必记住10.0.0.1内部数据库服务器的IP,而是使用DNS将域名internal-db1.example.com 翻译成私有IP,例如10.0.0.1。因此,当你的普通Windows桌面客户端尝试连接到数据库服务器时,它会要求DNS服务器将该域名解析为internal-db1.example.com可以与之通信的IP。(如果你想了解更多关于DNS的信息,我鼓励你从伟大的互联网上观看这个漂亮,简洁的视频 —— 那个人不是我哦:)

https://youtu.be/4ZtFk2dtqv0 

在一些公司中,管理内部IP的域名的同一DNS服务器同时也管理着其公共IP的域名,例如他们网站的域名。请求“谁是”和“谁是internal-db1.example.com”,都是从同一个DNS服务器 —— 即公司的DNS服务器来问询ns1.example.com。这就是我刚才遇到的那种情况,ns1.example.com是为解决内部和 外部IP 而设立的名称服务器。只是这台名称服务器不在乎请求解析域名的IP地址是来自公司的内部网络还是外部,所以它响应了我的请求。

=> "Who is internal-db1.example.com"

响应:

<= "Hey, it's 10.0.0.1"

不用担心它是通过内部地址来响应来自公司网络之外的DNS请求。

使这一事件成为可能的另一个要求是该公司使用了相同的域名来服务内部和外部。假设他们的网站被命名为:

内部数据库服务器被命名为:

internal-db1.example.com。

在ping internal-db1.example.com时,我并没有明确地查询这个公司的DNS,因为我家的DNS被设置为使用不同的DNS(假设它是Google的DNS)。由于DNS具有分布式结构,如果Google的DNS想要获取的IP ,它首先会要求其中一个根DNS服务器负责跟踪谁负责第二级域名example.com。已联系的根服务器会使用域名ns1.example.com的IP作为域名example.com的授权服务器来响应Google的DNS 。然后谷歌的DNS请求ns1.example.com解析internal-db1.example.com并收到它最终转给我们的响应也就是我们上面看到的内部IP。如果有内部域名internal-db1.example.local,Google的DNS就不会知道是谁要求顶级域名(.local),因为注册的公司example.com没有注册(也不能)example.local。

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容