DNS攻击

实验是基于Linux系统,配置了bind9服务的机器

大纲

  1. 本地修改Host文件重定向路径到指定地址
  2. 对User的DNS查询进行欺骗攻击
  3. 在同一局域网下,对DNS服务器的DNS查询进行欺骗攻击
  4. 不在同一局域网下,对DNS服务器的DNS查询进行欺骗攻击

环境配置

首先三台虚拟机分别给它们分配ip,如图,User为192.168.0.100,DNS Server为192.168.0.10,Attacker为192.168.0.200,对三台机器的代称为图中所示,下同。

DNS Server的配置:

  • 修改/etc/bind/named.conf.options文件,增加dump.db作为DNS缓存的文件,使用chmod提高dump.db的文件权限(777)
  • 设置DNS Server的本地zone为example.com和192.168.0.x两个域
  • 重启bind9服务

User的配置:

  • 设置User的默认DNS服务器为192.168.0.10
    Attacker的配置:
  • 设置Attacker的默认DNS服务器为192.168.0.10

三台机器的外部网关设置为VMware的NAT模式的虚拟网卡默认分配的网关,我这里是192.168.139.2

DNS Server设置后的网络配置:(其它类似)

内容

修改本地host文件

这里主要就是修改User本地的Host文件,增加www.example.com一项,定向为127.0.0.1

如图,成功ping www.example.com得到自己设置的1.2.3.4的DNS解析ip地址

欺骗回复User的DNS查询

当User向DNS Server发送DNS查询的时候,Attacker监听了这个DNS查询请求,然后在DNS Server回复正确的DNS Response之前,先回复一个伪造欺骗的DNS Response给User,从而达到了DNS欺骗的效果。

实验中我们借用了Netwox/Netwag tool 105来进行DNS欺骗,具体的设置如下

得到的实验效果为

Local DNS Attack

当DNS Server对Root DNS Server询问的时候,Attacker监听了DNS Server对外发出的DNS Query,伪造了一个DNS Response给DNS Server,从而让DNS Server中有了DNS Cache,且设置的ttl很长,因此就能够达到高效的DNS Attack。

实验中我们借用了Netwox/Netwag tool 105来进行DNS欺骗,具体的设置如下

得到的实验结果为

DNS Server中的DNS Cache:

User中使用Dig命令得到的结果:

Remote DNS Attack

正常情况下的DNS查询是这样子的

但是我们可以将它简化成下面这样

由于不在同一局域网内,Attacker不能监听DNS Server的DNS Query包,所以采用的方法是对transaction ID进行全枚举,而且必须在真正的DNS Response到来之前枚举成功这个transaction ID,为了简化实验,我们将UDP port设置为33333,所以就不用枚举UDP port这个变量。

但是ns.dnslabattacker.net不是一个合法的域名,因此DNS Server需要对它进行验证,否则不会将它保存在DNS Cache中,所以需要在Attacker机器中配置DNS服务,将ns.dnslabattacker.net作为该DNS的本地zone就好。

查看一下实验结果:

首先是Attacker对DNS发DNS Query和DNS Respose包:

然后在DNS Server中用Wireshark查看收到的包:


查看一下DNS Server中的Cache:

在User中Dig一下aaaaa.example.edu

DNS攻击的更多相关文章

  1. 什么是DNS攻击?它是如何工作的?

    什么是DNS攻击?它是如何工作的? DNS攻击是一种利用域名系统中的弱点或漏洞的网络攻击.今天,互联网已成为我们生活中不可或缺的一部分.从社交到金融.购物再到旅游,我们生活的方方面面都是互联网.由于互 ...

  2. web攻击之六:DNS攻击原理与防范

    随着网络的逐步普及,网络安全已成为INTERNET路上事实上的焦点,它关系着INTERNET的进一步发展和普及,甚至关系着INTERNET的生存.可喜的是我们那些互联网专家们并没有令广大INTERNE ...

  3. 常见的DNS攻击——偷(劫持)、骗(缓存投毒)、打(DDos)

    常见的DNS攻击包括: 1) 域名劫持 通过采用黑客手段控制了域名管理密码和域名管理邮箱,然后将该域名的NS纪录指向到黑客可以控制的DNS服务器,然后通过在该DNS服务器上添加相应域名纪录,从而使网民 ...

  4. 《DNS攻击防范科普系列2》 -DNS服务器怎么防DDoS攻击

    在上个系列<你的DNS服务真的安全么?>里我们介绍了DNS服务器常见的攻击场景,看完后,你是否对ddos攻击忧心重重?本节我们来告诉你,怎么破局!! 首先回顾一下DDoS攻击的原理.DDo ...

  5. DNS 攻击方式及攻击案例

    [赛迪网-IT技术报道]2010年1月12日晨7时起,网络上开始陆续出现百度出现无法访问的情况反馈, 12时左右基本恢复正常:18时许百度发布官方版本公告:对事故原因说明为:"因www.ba ...

  6. 《DNS攻击防范科普系列3》 -如何保障 DNS 操作安全

    引言 前两讲我们介绍了 DNS 相关的攻击类型,以及针对 DDoS 攻击的防范措施.这些都是更底层的知识,有同学就来问能否讲讲和我们的日常操作相关的知识点,今天我们就来说说和我们日常 DNS 操作相关 ...

  7. 《DNS攻击防范科普系列1》—你的DNS服务器真的安全么?

    DNS服务器,即域名服务器,它作为域名和IP地址之间的桥梁,在互联网访问中,起到至关重要的作用.每一个互联网上的域名,背后都至少有一个对应的DNS.对于一个企业来说,如果你的DNS服务器因为攻击而无法 ...

  8. dns攻击包代码实现

    博客地址:http://home.cnblogs.com/u/zengjianrong/ 代码没有做好精简,有些多余的没有删去,因为博主太懒了哈哈 #include <stdio.h> # ...

  9. [科普]DNS相关的攻击介绍

    一  什么是DNS DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不 ...

随机推荐

  1. java的四个基本特征

    现实生活中的事物被抽象成对象,把具有相同属性和行为的对象被抽象成类,再从具有相同属性和行为的类中抽象出父类. 封装 隐藏对象的属性和实现细节,仅仅对外公开接口. 封装的有优点: 1.便于使用者正确.方 ...

  2. 导入本地的oracle数据库文件

    1. 创建表空间 create tablespace charge_zang datafile 'F:\app\zang\oradata\orcl\charge_zang.dbf' size 50M ...

  3. www.jqhtml.com 前端框架特效

    www.jqhtml.com * 请选择课程 初级班 (PS.HTML.CSS.静态网站项目实战) 中级班 JavaScript基础.JavaScript DOM.jQuery.JS进阶.HTML5和 ...

  4. Oracle11g em启动报此网站的安全证书有问题的解决方案

    http://blog.sina.com.cn/s/blog_a32eff280101cgje.html C:\>emctl status dbconsoleOracle Enterprise ...

  5. [PHP] 算法-数组归并排序并计算逆序对的个数的PHP实现

    在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%100000000 ...

  6. spring事务传播行为之使用REQUIRES_NEW不回滚

    最近写spring事务时用到REQUIRES_NEW遇到一些不回滚的问题,所以就记录一下. 场景1:在一个服务层里面方法1和方法2都加上事务,其中方法二设置上propagation=Propagati ...

  7. 在UAP中如何通过WebView控件进行C#与JS的交互

    最近由于项目需求,需要利用C#在UWP中与JS进行交互,由于还没有什么实战经验,所有就现在网上百度了一下,但是百度的结果显示大部分都是在Android和IOS上面的方法,UWP中的几乎没有.还好微软又 ...

  8. Jetbrains IDE 中 compass sass 设置

    环境 Ubuntu 13.10 1. 安装ruby sudo apt-get install ruby 如果后面安装 compass 时遇到安装失败,提示:“[Ubuntu] ERROR: Faile ...

  9. CSS3效果:实现气泡效果

    首先定义一个 <p class="speech"></p> 先给外层的容器添加样式: p.speech { position: relative; widt ...

  10. 【读书笔记】iOS-属性中的内存管理参数

    一,assign 代表设置时候直接赋值,而不是复制或者保留它. 二,retain. 会在赋值的时候把新值保留.此属性只能用于Object-C对象类型. 三,copy 在赋值时,将新值复制一份,复制工作 ...