中间人攻击的DNS欺骗
DNS欺骗(DNSSpoofing),就是其中的一种惯用手法。攻击者通过入侵DNS服务器、控制路由器等方法把受害者要访问的目标机器域名对应的IP解析为攻击者所控制的机器,这样受害者原本要发送给目标机器的数据就发到了攻击者的机器上,这时攻击者就可以监听甚至修改数据,从而收集到大量的信息。如果攻击者只是想监听双方会话的数据,他会转发所有的数据到真正的目标机器上,让目标机器进行处理,再把处理结果发回到原来的受害者机器;如果攻击者要进行彻底的破坏,他会伪装目标机器返回数据,这样受害者接收处理的就不再是原来期望的数据,而是攻击者所期望的了。例如让DNS服务器解析银行网站的IP为自己机器IP,同时在自己机器上伪造银行登录页面,那么受害者的真实账号和密码就暴露给入侵者了。
如此说来,这种攻击理应是最强大最危险的,然而实际上它却很少派上大用场,为什么,因为DNS欺骗的攻击模型太理想了。在实际生活中,大部分用户的DNS解析请求均是通过自己的ISP服务器进行的,换句话说,就是系统在连接网络时会获取到ISP服务器提供的DNS服务器地址,所有解析请求都是直接发往这个DNS服务器的,攻击者根本无处入手,除非他能入侵更改ISP服务器上DNS服务的解析指向。所以这种手法在广域网上成功的几率不大。
当然,这种攻击的成功率也有例外存在,例如一个ISP服务器上存在Bind漏洞,攻击者就能通过Bind漏洞进入服务器更改掉DNS解析指向,甚至取得最高权限;另一种方法是入侵路由设备,修改里面的DNS服务器地址为自己控制的机器地址,这种方法只能在用户机器自身是通过路由器返回域名解析的情况下才能成功,多见于一些使用小区宽带连接Internet的用户,因为这种用户机器的DNS地址通常必须指向小区宽带内部的某台服务器地址或者交给路由进行转向,这时候只要攻击者入侵了路由或者那台关系到所有人的服务器修改掉DNS记录,整个小区用户的网络都完了。当然,攻击者不能把全世界网站都伪造到他硬盘上,他只需要改几个重要商务站点的指向即可,这样便可导致用户访问某些商务站点时被转向到攻击者的机器去。但是,这种攻击手法同时对攻击者自身也是一种伤害:如果小区内有许多用户都访问这些商务站点,则大量数据请求会疯狂消耗攻击者的机器资源,攻击者非但不能实时处理数据,更是面临着机器瘫痪和暴露自己的双重危险。