DNS重绑定攻击研究
2022-1-4 16:5:24 Author: www.freebuf.com(查看原文) 阅读量:8 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

前言

DNS重绑定攻击一直以来都是网络安全中不可避免的一个问题,以往该攻击经常出现在SSRF BYPASS(服务器请求伪造绕过)的场景下。但是随着近年来本地网络设备的不断发展,DNS重绑定攻击又开始活跃在我们的视野之中。每点击一个可疑的链接,DNS重绑定攻击除了利用存在DNS重绑定漏洞的应用外,甚至可能会导致攻击者瞬间控制你连接家庭网络的其它互联设备。

11.png

图1 利用DNS重定向技术检测IOT设备是否存在漏洞

什么是同源策略(SOP)?

所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个 ip 地址,也非同源。同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,现在所有支持JavaScript的浏览器都会使用这个策略。如果缺少了同源策略,浏览器很容易受到XSS、 CSFR等攻击。

什么是DNS重绑定攻击?

到这里肯定很多人会问了,明明要讲的是DNS重绑定,为什么讲同源策略?

因为DNS重绑定攻击是利用了同源策略中存在的漏洞造成的,细心的朋友可能已经发现,同源是指“协议+域名+端口”三者相同,而不是“协议+IP+端口”。

因此,在网页浏览过程中,用户在地址栏中输入包含域名的网址。浏览器通过DNS服务器将域名解析为IP地址,然后向对应的IP地址请求资源,最后展现给用户。而对于域名所有者,他可以设置域名所对应的IP地址。当用户第一次访问,解析域名获取一个IP地址;然后,域名持有者修改对应的IP地址;用户再次请求该域名,就会获取一个新的IP地址。对于浏览器来说,整个过程访问的都是同一域名,所以认为是安全的。这就是DNS Rebinding攻击。

通过DNS重绑定攻击可以绕过同源策略,攻击内网的其他设备。

攻击的主要条件:

1. 攻击者可以确保或者控制用户请求的DNS服务器能回复特定域名的查询,如www.hacker.com。

2. 攻击者可以诱导用户在浏览器加载www.hacker.com。可以通过多种方式,从网络钓鱼到恶意程序,来实现这一目标。

3. 攻击者控制www.hacker.com服务器域名对应的IP地址。

攻击流程

1、受害者打开钓鱼邮件的链接,他们的Web浏览器会发出DNS查询请求,查询www.hacker.com的IP地址。

22.png

图2 受害者请求域名对应IP地址

2、攻击者控制的DNS服务器收到受害者的DNS请求时,会使用www.attacker.com的真实IP地址如123.123.123.123进行响应。 它还将响应的TTL值设置得特别短,以便受害者的机器不会长时间缓存它。

33.png

图3 被控DNS服务器正常返回攻击域名IP

3、受害者的浏览器向攻击网站服务器发出HTTP请求加载网页,攻击者进行HTTP响应,并通过JS加载一些恶意代码,该页面反复向www.hacker.com 发出POST请求。(该POST请求包含恶意代码)。

44.png

图4 请求和响应

4、因为之前DNS TTL设置为的时间很短,缓存很快就失效,所以浏览器继续向恶意权威域名服务器发出查询。

55.png

图5 再一次请求域名解析

5、此时,恶意DNS服务器收到查询后,回复一个内网设备的IP(也可以是一些物联网设备),如192.168.0.1。

66.png

图6 解析为一个内网的IP

6、因为满足同源策略,浏览器认为是安全的,于是向内网其他设备发送POST恶意请求。

77.png

图7 发送恶意请求

防止DNS重绑定攻击

  • 用户的角度:更改路由器的配置,过滤DNS响应中的私有IP范围等可疑IP地址。

  • 开发人员的角度:内部的网络设备应该验证其自己的主机是否与所请求的主机匹配。如HTTP服务器添加“主机”标头验证。(Web服务器应验证所请求的Host标头是否与其预期值完全匹配,如果不满足,则使用403 Forbidden HTTP状态代码进行响应)。

另一种有效方法是使用HTTPS而不是HTTP,发生重新绑定时,目标服务将具有对www.hacker.com无效的SSL证书,因此安全警告将阻止你的请求。


文章来源: https://www.freebuf.com/articles/web/318273.html
如有侵权请联系:admin#unsafe.sh