官方公众号企业安全新浪微博
FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。
FreeBuf+小程序
前言
DNS重绑定攻击一直以来都是网络安全中不可避免的一个问题,以往该攻击经常出现在SSRF BYPASS(服务器请求伪造绕过)的场景下。但是随着近年来本地网络设备的不断发展,DNS重绑定攻击又开始活跃在我们的视野之中。每点击一个可疑的链接,DNS重绑定攻击除了利用存在DNS重绑定漏洞的应用外,甚至可能会导致攻击者瞬间控制你连接家庭网络的其它互联设备。
图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地址。
图2 受害者请求域名对应IP地址
2、攻击者控制的DNS服务器收到受害者的DNS请求时,会使用www.attacker.com的真实IP地址如123.123.123.123进行响应。 它还将响应的TTL值设置得特别短,以便受害者的机器不会长时间缓存它。
图3 被控DNS服务器正常返回攻击域名IP
3、受害者的浏览器向攻击网站服务器发出HTTP请求加载网页,攻击者进行HTTP响应,并通过JS加载一些恶意代码,该页面反复向www.hacker.com 发出POST请求。(该POST请求包含恶意代码)。
图4 请求和响应
4、因为之前DNS TTL设置为的时间很短,缓存很快就失效,所以浏览器继续向恶意权威域名服务器发出查询。
图5 再一次请求域名解析
5、此时,恶意DNS服务器收到查询后,回复一个内网设备的IP(也可以是一些物联网设备),如192.168.0.1。
图6 解析为一个内网的IP
6、因为满足同源策略,浏览器认为是安全的,于是向内网其他设备发送POST恶意请求。
图7 发送恶意请求
防止DNS重绑定攻击
用户的角度:更改路由器的配置,过滤DNS响应中的私有IP范围等可疑IP地址。
开发人员的角度:内部的网络设备应该验证其自己的主机是否与所请求的主机匹配。如HTTP服务器添加“主机”标头验证。(Web服务器应验证所请求的Host标头是否与其预期值完全匹配,如果不满足,则使用403 Forbidden HTTP状态代码进行响应)。
另一种有效方法是使用HTTPS而不是HTTP,发生重新绑定时,目标服务将具有对www.hacker.com无效的SSL证书,因此安全警告将阻止你的请求。