DNS解析与DNS攻击的原理以及如何预防

时间:2022-06-01 20:03:12

在说攻击之前先讲讲dns工作的原理吧

  1. 什么是dns?
    • dns全程叫做Domain Name service,也就是域名服务的意思,是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址(如xxx.xxx.xxx.xxx)。
    • DNS协议运行在UDP协议之上,使用端口号53。
    • 例如:我们修改计算机中的host文件,绑定127.0.0.1到localhost,那么我们访问localhost的地址就会被映射到127.0.0.1。
  2. 再来分析一下我们在浏览器中输入网址点击访问后发生了什么有趣的事情吧。
    • 第一步,浏览器会查找域名的IP地址。
      浏览器缓存 – 浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间。
    • 第二步,系统缓存。
      如果浏览器缓存没有的话,会访问系统缓存。
    • 后续的访问依次是路由器缓存,isp dns缓存,之后才会访问到域名服务器,通过递归搜索的方式找到相应的ip进行访问。

dns劫持

  1. DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能反应或访问的是假网址。
  2. dns劫持会做哪些事情?
    1. 操作系统中的host文件被修改,host文件的优先级是高于dns服务器的,操作系统在访问某个域名的时候会先检测host文件。如果你的host文件被修改,那么很可能就是被劫持了,在劫持范围内的域名都会被跳转到不正常的ip,也许就是某个钓鱼网址,后果可想而知。
    2. 最常见也是最不容易察觉的方式:修改路由器dns服务器配置。
      • 这种方式最为坑爹,但是却是最为实用和有效的方法,因为重装系统会重置host文件以及一些浏览器缓存之类的,但是路由器一般人们不会轻易去重置它。
      • 攻击者如何完成这种劫持:
        • 攻击者黑下一批网站
        • 攻击者往这批网站里植入路由DNS劫持代码(各种变形);
        • 攻击者传播或坐等目标用户访问这批网站;
        • 用户访问这些网站后,浏览器就会执行“路由DNS劫持代码”;
        • 用户的家庭/公司路由器如果存在漏洞就会中招;
        • 用户上网流量被“假DNS服务器”劫持,并出现奇怪的广告等现象
    3. 如何预防
      • 修改默认的路由器登陆账号与密码,一般都是admin,admin,连我都知道,还怕攻击者不知道么。
      • 公司的话,可以提供两个以上的域名,如果用户被攻击了还可以访问另一个。