DEFCON 21. DNS会议可能对您的健康有害。 第一部分

我的名字叫Rob Stackle,我是亚利桑那州凤凰城的安全顾问,主要工作在一个学期。 自1996年以来,我一直参加DefCon会议,我喜欢高空摄影,而这个周末是我们结婚11周年。 我要感谢我令人惊讶和理解的妻子琳达,她没想到我参加DefCon意味着每年我都会被迫在拉斯维加斯庆祝结婚周年纪念日,对此我感到非常抱歉。



我将与您讨论过去几年中我一直在从事的与研究有关的几件事。 它们由一个共同的主题统一在一起-如果您不监视DNS流量并且不了解在那里发生的事情,那么当一切都井井有条时,当坏事开始发生时,您可能不会关注。 我“强奸” DNS已有好几年了,这一直是我最喜欢的攻击媒介之一。 您可以花大钱来加强网络外围功能,但是,如果我可以控制您的其中一台设备,请相信我,您的游戏已经结束。

市场上没有检测到错误配置的漏洞,这总是让我有机会“站稳脚跟”。 今天,我们将讨论各种主题,在这些主题中,我将谈论我的DNS历险以及与DNS相关的人的窍门。

这些主题专门用于误解网络最终用户对DNS的行为,我将简要介绍一下尚未注册域的人以及域黑客本身。

在2011年的Black Hat和DefCon会议上,Artyom Daineberg谈到了他所说的节拍蹲下或“跳动跳动”。 那些不熟悉本研究,但对流行域的DNS中的此问题感兴趣的人,可以使用此幻灯片上提供的链接下载其演示文稿的材料。



项目页面 / 视频演示 / 幻灯片

当我阅读他的演讲公告,甚至在有关Black Hat的报告发表之前,我立即对如何将其用于自己的目的感兴趣。 在不赘述的情况下,我将解释什么是节拍蹲下,为什么发生及其影响。 我将向您展示一些示例,这些示例可能会在1变为0且反之亦然时意外地在内存中翻转一位。 以下幻灯片显示了这看起来像一个显示域名的内存行示例。



在该行的中间,单位变为零。 Artyom研究了一种现象,其中在正确的时间在内存的正确部分中出现单个位错误,迫使客户端请求一个完全合法但不正确的域名。

关于此类错误的可能性和原因进行了很多讨论,但是我开始研究所有允许将该错误用于恶意目的的方法。 因此,DNS抢注使您可以扭曲域名,然后注册这些“错误”的域并将用户请求发送给它们。

下一张幻灯片显示,由于Google域名的位蹲,当内存中的一个高能质子“命中” 1(即字母g)时,将其变为0(即字母f),结果,用户被重定向到goofle.com 。



因此,您的浏览器将完全将您重定向到另一个站点,并将为您高兴地找到答案。 同时,DNS SEC将无法以任何方式为您提供帮助,实际上只有很少的机会以完全不可见的方式来防止此错误,除了使用自动识别并纠正位错误的ECC内存外。

但是,这种类型的内存并不是很常见,即使使用ECC,在网卡或硬盘的DRAM缓存中,仍然有很多地方会发生位抢注并且从未使用过ECC存储器。

Deineberg详细描述了问题的原因,但是通常可以说发生了内存错误,有时错误会损坏内存,有时会对DNS产生影响。 基本上,“翻转”是由于内存的物理损坏,过热,电气问题,暴露于辐射甚至宇宙辐射引起的。

DefCon组织者在舞台上的出现打断了演讲,他祝贺演讲者和他的妻子琳达(Linda)在结婚11周年之初首次参加会议。 Robert感谢他们的祝贺,并继续进行演示。
宇宙辐射是影响位蹲的极为罕见的因素,但是过热是导致内存错误的非常常见的原因。 我注意到,由于智能手机所处的极端操作条件,它们尤其容易受到攻击。 智能手机电池过热是相当普遍的现象。 大多数其他设备都具有冷却功能,但是即使它们也设法创造了困难的工作条件。



不久前,Google发布了有关其数据中心工作的信息。 我了解到的有趣的事情之一是,为了节省能源,他们在我们大多数人认为不合理的条件下运行数据中心。 如果典型的数据中心在60-70华氏度(15-20°C)的最高温度下运行,则Google专家建议公司在至少80度(27°C)的温度下运行数据中心,而比利时数据中心则在Google在95度(35°C)的温度下运行其服务器。



文字说明:“听说这可以为我们省钱。”

英特尔和微软声称其服务器在高温下表现良好,戴尔保证其服务器将在华氏115度(46摄氏度)下运行。 我认为这是个坏主意,因为温度是确保稳定内存运行的主要因素,而Google数据中心则在“高温”下运行。

我开始研究这可能带来什么好处,以及哪些域最容易受到位抢注的影响,也就是说,我试图找到最常请求的名称,以增加发生此类错误的可能性。 我开始收集大型公司的DNS日志以查找最常见的域名,然后发现请求最多的名称是gstatic.com。 这是Google提供静态信息的领域之一,例如CSS,图像,JavaScript和XML文件。



我编写了一个脚本来识别该gstatic.com域名中可能发生的比特“剧增”,然后列出了该名称的所有变体形式,共34件。 其中有五个用于法律目的,其余的29个可用,所以我全都买了。



我立即击中了目标。 某人正在Google上查找图片,并且返回给他们的请求内容由于某种原因被损坏,因为他的浏览器要求我提供请求中的其中一张图片。 我看到了他们的IP地址,他们请求的名称失真,他们使用该图像尝试恢复的资源,与此内容相关的页面以及用作浏览器发送此请求的客户端。



在页面上,您可以看到对特定名称Trisha Jones的请求形式的有趣工件。



此外,请求数量增加,名称失真,出现更多图像请求以及指向原始请求的更多链接,结果,我收集了50,000多个唯一请求,事实证明,这是很常见的事情。



幻灯片显示了对女演员塞莱娜·戈麦斯(Selena Gomez)的“拍照”图像的要求,该图像在大厅内引起了欢笑。

因此,有时节拍蹲便会在适当的时候发生,以匹配您的一项请求,而且如果这种情况发生得不太频繁,则不必担心。 但是有时这发生在硬盘保存的那一刻,这已经变得更加有趣了。 在存储器的正常工作条件下有可能发生位蹲,但是很有可能主要发生在温度为95度的数据中心中。

现在,我的日志充满了所有杂音,每天我收到的请求失真,导致无法手动查看。



因此,我编写脚本以试图找到相同的查询模式,而我得到的最大脚本是针对相同的域名对相同图像进行的大量查询,而这些查询都是来自手机。 我每隔几秒钟收到一次这些请求,因为所有这些电话都试图使用Google网站的搜索页面,并要求我向他们提供原始页面徽标的小图片。

我在整个Google云中找到了一台Web服务器,该服务器提供内容并不断扭曲域名,指向我的其中一台服务器,该名称的徽标恰巧是偶然的,然后客户将其接收。

幻灯片显示了如何将移动设备屏幕上的Google搜索页徽标替换为“占用”徽标,从而在大厅内引起极大的笑声。

两年来,有数十万个此徽标请求通过一个失真的DNS名称(而不是Google计划使用的DNS名称)发送到该服务器。 然后有一天他们停了下来,因为Google拒绝更改移动网站的内容,因此该订单被取消。

因此,我继续研究查询模式并尝试找出其他模式。 其中之一定期出现,并且显然是通过“翻转”内存而以自然的方式发生的,而不是因为节省了位蹲错误。



我收到了下一张幻灯片中显示的请求,频率为每小时一个。 他们看上去并不熟悉,他们都使用了Google Feedfetcher客户端,它们都来自同一网络中的设备,并且所有请求都与XML文件相关。 因此,我四处游荡,发现Feedfetcher是Google用来捕获iGoogle更新内容的机制,并且源IP地址位于比利时。



这些请求与Google自己的服务器有关,这些服务器用于接收各种个性化iGoogle主页(个人Internet门户)的小部件的更新内容。

每个小部件都是定义内容的XML文件,Google要求我将此内容提供给演示服务器(掌声和观众的笑声)。



因此,我认为,如果Google意外地希望我提供可以为其用户提供内容的内容,那么它将得到它。 我获取了Google询问的XML文件,并将其分为几部分。 如您所见,有两个部分:描述模块的标题,以及构成小部件的HTML CSS和JavaScript代码中打包的C数据块。



因此,我只是将链接更改为背景图像,将gstatic.com的地址更改为grtatic.com,其余部分保持不变,将XML文件放在Feedfetcher获取它们的位置,然后稍等片刻。



此后不久,Feedfetcher立刻要求我提供XML文件,此后我立即开始从许多Google IP地址接收该背景图片的请求。



因此,我删除了由我修改的XML文件,并等待直到请求停止为止,但是连续35天,每天有61台设备不断询问我有关此图像的信息。 更有趣的是,这些设备都是英国的Virgin Media客户。



因此,这个Google XML文件可为61个人提供服务,并且在过去一年中,有500个唯一的Feedfetcher IP要求我为这些模块提供15,000次。 因此,我可以为用户提供比单纯替换背景图片更有害的东西。

您可以通过以下一些技巧来使用Google。 如果您不知道,Postini是Google最近的垃圾邮件保护电子邮件,网络安全和电子邮件归档服务。



通过此服务,您可以更改DNS以指示您的MX记录在其域中,并通过更改psmtp.com之前的4个MX字符来创建域。 这里最有趣的是,域太短了,您可以轻松地用“取反”位注册名称的所有可能版本。 另一个有趣的一点是,许多公司都在一个域中指示其MX记录,没有人认为这是一个坏主意。

因此,我只为该域注册了3个可能的域名抢注,并且psmtp.com的使用量是如此之大,以至于接下来的4张幻灯片显示了我在短短一个月内收到的请求。





因此,如果您使用Postini邮件,则您的请求有时会到达我的服务器。 我认为没有人可以说Google对互联网安全并不认真。 但是,如果有人想知道导致内存错误的过热可能导致什么问题,那么他将能够提出考虑对此类问题进行赔偿的可能性的问题。 因此,不要让域名这么短,因为它会对您的公司(例如Postini)产生负面影响,尤其是在您的域名很受欢迎的情况下。

我强烈建议人们应用内部域名管理策略,该策略允许他们纠正名称失真错误并清楚地了解此类情况如何影响您。 如果您的gstatic.com和数据中心的温度为95度,则可能要确保任何蹲位错误都不会使客户端访问恶意外部网络。

顺便说一下,在我调查的所有领域中,唯一记录了我自己名字所有可能的变形的公司就是Yahoo。

在演示的下一部分中,我将演示DNS的行为,事实证明,许多人并不完全了解DNS的行为。



老实说,微软的文档做得很差,特别是因为DNS的行为经常变化。 这导致对最终用户正在发生的事情的误解,尤其是因为这种行为通常是矛盾的。

因此,我将从每个人都应该了解查询DNS时设备应如何表现以及对设备的期望这一事实开始。 然后,我将说明在使用DNS后缀搜索路径时,这种行为如何变得不可预测,文档不足如何影响所有这些,最后,我将简要概述可以从所有这些中学到的教训。 但是首先,我将演示最终用户误解DNS发生的后果有多危险。

因此,在浏览器的地址栏中键入www.google.com之后,您的计算机就会向本地DNS服务器发送一个请求,现在已将查找所需内容,返回请求并进行应答的工作分配给了它。 本地服务器调用根服务器以访问.com服务器,然后根服务器将其发送到.com服务器。 他检查本地服务器是否获得向google.com发出请求的授权,并将其发送到服务器ns.google.com。 最后,本地服务器收到包含所需资源IP地址的响应,并将其发送给您。



这是每个人都期望的正常DNS行为。 每个人都认为,仅将设备的请求发送到本地DNS服务器就足够了,这样它就可以完成所有艰苦的工作,然后获得请求的答案。 但并非所有人都认为此过程包含许多重要步骤。

例如,您的设备正在尝试在www.google.com上找到答案,但是整个过程(最多需要8张幻灯片)只会在您在浏览器的查询栏中输入确切的地址-www.google时发生。 .com 。 这是与根DNS相关联的标准域名。 许多人认为完全限定域名以句号结尾,这是不正确的。 仍然假定在全名的末尾出现一个点,因此会出现问题。 让我们尝试打印名称的4个变体:

www.google.com
google.com
www
www.google.com

每个域名在DNS行为方面的行为都不同。 所有这些都是可定制的,但是通常没有人可以定制。

让我们看看在这种情况下实际发生了什么。 有几个因素会影响客户在决定发送DNS查询之前的决策。 其中两个是后缀搜索路径和DNS传递。



两者都具有许多可自定义的参数,这些参数会影响其行为,并且在不同版本的Windows和不同的Service Pack中行为不同。

这就是大多数人使用搜索路径后缀的方式。 如果您的公司名为foo,并且您拥有域foo.com,而活动目录的名称是ad.foo.com,则可以使用搜索路径的后缀ad.foo.com或foo.com并将其“推送”到系统程序集的客户端部分或组策略。

如果您的一个客户端尝试解析短名称www,则Windows XP的默认行为将是这样。 首先,她将沿路径www.ad.foo.com发送DNS查询,然后沿路径www.foo.com发送DNS 消息 ,最后将跟随NetBIOS查询-仅www。

www.phx , www.phx , , www.phx.ad.foo.com , www.phx.foo.com . 15 , NetBIOS, www.phx .



Windows, XP sp.3, DNS — www.phx NetBIOS — www.phx , , .



, , , , , . , , Microsoft DNS.

XP , Microsoft XP, DNS Windows DNS . , www, Windows , , , DHCP Active Directory. www.phx.ad.foo.com , , www.ad.foo.com , www.foo.com , , www.com .



18:30

DEFCON 21. DNS . 第二部分


, . ? ? , 30% entry-level , : VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps $20 ? ( RAID1 RAID10, 24 40GB DDR4).

VPS(KVM)E5-2650 v4(6核)10GB DDR4 240GB SSD 1Gbps至12月免费,在六个月内付款时,您可以在此处订购。

Dell R730xd 2 ? 2 Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 $249 ! . c Dell R730xd 5-2650 v4 9000 ?

Source: https://habr.com/ru/post/zh-CN430724/


All Articles