DNS 欺骗原理

article/2025/9/23 16:58:27
DNS欺骗

  DNS欺骗是这样一种中间人攻击形式,它是攻击者冒充域名服务器的一种欺骗行为,它主要用于向主机提供错误DNS信息,当用户尝试浏览网页,例如IP地址为XXX.XX.XX.XX ,网址为www.bankofamerica.com,而实际上登录的确实IP地址YYY.YY.YY.YY上的www.bankofamerica.com ,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这个网址是攻击者用以窃取网上银行登录证书以及帐号信息的假冒网址,DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。整个操作过程其实非常简单,下面我们将探讨DNS欺骗攻击是如何实现的以及如何抵御这种攻击。

  正常DNS通信

  域名系统(DNS)协议在RFC 1034/1035中是这样定义的:它被认为是互联网使用中最重要的协议之一。当你在浏览器输入网址时(例如http://www.google.com),就会向DNS服务器发送一个DNS请求以便找到与该网址相对应的IP地址。这是因为与互联网互连的路由器和设备并不知道google.com,它们只知道IP地址,如74.125.95.103。

  DNS服务器本身的工作原理是,存储IP地址到DNS名称映射的记录(称为资源记录)数据库,联系这些资源记录与客户端,并将这些资源记录与其他DNS服务器联系。整个企业和整个互联网的DNS服务器架构是有点复杂的,事实上,有很多关于DNS架构的专门书籍,但在本文中我们将不会涵盖DNS架构或者所有不同DNS通信类型的内容,不过我们将介绍基本的DNS通信,如图1所示。

  DNS查询和响应

  图1: DNS查询和响应

  DNS函数是属于查询/响应类型的格式,当客户端希望解析DNS域名为IP地址时,就会向DNS服务器发送一个查询,然后服务器会将对应的作为回复。从客户端的角度来看,看到的只有两个数据包:查询和响应。

DNS查询和响应数据包

  图2: DNS查询和响应数据包

  而当我们进一步考虑DNS递归问题时,这种情况就会变得更加复杂。由于互联网DNS结构的层次性,DNS服务器需要能够互相通信以便获取客户端发送的查询所对应的答案。我们的内部DNS服务器可能知道本地局域网络服务器的IP地址映射,但是我们不能指望内部DNS服务器知道全世界网络的IP地址映射。这也就是递归发挥作用的地方,就是当一台DNS服务器代表客户端的名义向另一台DNS服务器发送查询请求,也就是说,这种情况下,DNS服务器变成了客户端,如图3所示。

 DNS通过递归的查询和响应 

图3: DNS通过递归的查询和响应

  欺骗DNS

  执行DNS欺骗攻击的方法有很多,在这里我们将使用一种称为DNS ID欺骗的技术。

  每个通过互联网发送的DNS请求都包含一个独特的识别码,其目的在于辨识查询和响应,并将对应的查询和响应配对在一起。这就意味着,如果我们的攻击计算机可以拦截目标设备发送的DNS查询,我们就只需要做一个包含该识别码的假数据包,这样目标计算机就会根据识别码而接受我们发送的查询结果。

  我们将使用一个简单的工具分两个步骤来完成整个操作。首先,我们对目标设备进行ARP缓存中毒攻击以重新路由通过攻击主机的目标设备的通信,这样我们就能够拦截DNS查询请求,然后我们就能够发送欺骗性的数据包。这样做的目的是为了让目标网络的用户访问我们制造的恶意网址而不是他们试图访问的网址,如图4所示。

  使用DNS ID欺骗方法的DNS欺骗攻击

  图4: 使用DNS ID欺骗方法的DNS欺骗攻击

  有几种不同的工具可以用于执行DNS欺骗攻击,我们选择使用Ettercap,它包含windows和Linux两个版本,大家可以点击此处下载该工具。如果你稍微研究一下这个网址就会发现Ettercap包含很多除DNS欺骗外的功能,它可以用于很多形式的中间人攻击。

  如果你是在windows系统中安装Ettercap,你会发现它包含一个很强大的图形用户界面,不过对于DNS欺骗的情况,我们只需要使用命令行界面。

  在操作Ettercap之前,需要进行一些配置。Ettercap的核心是数据包嗅探器,主要利用不同的插件来执行不同的攻击。dns_spoof插件是用于本文示例的工具,所以我们需要修改与该插件相关的配置文件。在windows系统中,该文件位于C:\Program Files (x86)\EttercapNG\share\etter.dns以及/usr/share/ettercap/etter.dns,这个文件很简单并且包含你想要欺骗的DNS记录。对于我们而言,我们希望所有试图打开yahoo.com的用户被定向到本地网络的主机上,所以我们加入了一些条目,正如图5中所示。

添加欺骗性的DNS记录到etter.dns 

图5: 添加欺骗性的DNS记录到etter.dns

  这些信息就是告诉dns_spoof插件这样的信息:当它发现针对yahoo.com www.yahoo.com或者的DNS查询请求时,就发送IP地址172.16.16.100作为响应。在实际情况下,172.16.16.100会运行某种web服务器软件向用户展现假冒网站。

  一旦文件配置好并保存后,我们就可以执行命令字符串来发动攻击了,命令字符串使用以下选项:

  -T –指定文本界面的使用

  -q –以静音模式运行命令,这样捕捉的数据包不会输出到屏幕

  -P dns_spoof –指定dns_spoof插件的使用

  -M arp –发起中间人ARP中毒攻击以拦截主机间的数据包

  // // -指定整个网络作为攻击的目标

  我们需要的最终命令字符串为:

  Ettercap.exe –T –q –P dns_spoof –M arp // //

  运行此命令将启动两个阶段的攻击,首先是对网络设备的ARP缓存中毒攻击,然后是发送假的DNS查询响应信息。

解析中间人攻击――DNS欺骗  

图6:Ettercap主动搜寻DNS查询

  一旦启动,任何用户试图打开www.yahoo.com都会被重新定向到我们的恶意网站。

从用户角度看到的DNS欺骗的结果

  图7: 从用户角度看到的DNS欺骗的结果

  如何抵御DNS欺骗攻击

  DNS欺骗攻击是很难防御的,因为这种攻击大多数本质都是被动的。通常情况下,除非发生欺骗攻击,否则你不可能知道你的DNS已经被欺骗,只是你打开的网页与你想要看到的网页有所不同。在很多针对性的攻击中,用户都无法知道自己已经将网上银行帐号信息输入到错误的网址,直到接到银行的电话告知其帐号已购买某某高价商品时用户才会知道。这就是说,在抵御这种类型攻击方面还是有迹可循:

  保护内部设备: 像这样的攻击大多数都是从网络内部执行攻击的,如果你的网络设备很安全,那么那些感染的主机就很难向你的设备发动欺骗攻击。

  不要依赖DNS:在高度敏感和安全的系统,你通常不会在这些系统上浏览网页,最后不要使用DNS。如果你有软件依赖于主机名来运行,那么可以在设备主机文件里手动指定。

  使用入侵检测系统: 只要正确部署和配置,使用入侵检测系统就可以检测出大部分形式的ARP缓存中毒攻击和DNS欺骗攻击。

  使用DNSSEC: DNSSEC是替代DNS的更好选择,它使用的是数字前面DNS记录来确保查询响应的有效性,DNSSEC现在还没有广泛运用,但是已被公认为是DNS的未来方向,也正是如此,美国国防部已经要求所有MIL和GOV域名都必须开始使用DNSSEC。

  总结

  从攻击技术水平和恶意意图来看,DNS欺骗攻击是非常致命的中间人攻击形式,使用这种攻击技术我们可以利用钓鱼技术来窃取登录信息,利用漏洞安装恶意软件或者导致拒绝服务的情况。在下篇文章中,我们将分析“哈希值传递”攻击,看看它们如何被用于登录windows计算机,而不需要帐号信息。


http://chatgpt.dhexx.cn/article/83Kx04KY.shtml

相关文章

DNS欺骗实验过程和分析

目录 1、实验准备 2、实验图 3、配置DNS转发器 4、DNS欺骗环境 1、实验准备 win10和server均设置为桥接模式,将win10的DNS指向server win10:192.168.223.165 server:192.168.223.245 2、实验图 3、配置DNS转发器 此时win可以nslookup 4、DNS欺骗…

DNS欺骗原理

简而言之就是:用伪装的DNS服务器截获请求域名的IP,再发送给伪装的web服务器。查询特定域名的IP时,将得到伪造的IP,打开事先准备好的虚假页面

如何防护DNS欺骗攻击

除了CC攻击、DDoS攻击,还有一种DNS欺骗攻击也是经常常见的,那什么是DNS欺骗攻击呢?它的原理是什么?该如何防御? DNS欺骗攻击,属于DNS攻击中的一种,DNS欺骗就是攻击者在域名解析请求的过程中冒充…

DNS欺骗攻击及如何防护

域名系统(Domain Name System,DNS)是一个将Domain Name和IP Address进行互相映射的Distributed Database。DNS是网络应用的基础设施,它的安全性对于互联网的安全有着举足轻重的影响。但是由于DNS Protocol在自身设计方面存在缺陷,安全保护和认证机制不健…

DNS欺骗

DNS欺骗 本文仅供学习参考,切勿在真实环境下操作!不听话的出现后果和我没关系!!! 文章目录 DNS欺骗实验目的实验原理环境准备操作步骤最后的最后 实验目的 kali Linux下用Ettercap在局域网中使用DNS欺骗 实验原理 有一个欺骗者…

DNS欺骗实验

实验准备: 三台虚拟机,Kali,win10,win2016 servers。 一、实验环境搭建 设置Kali Linux主机、Windows Server 2016服务器与Windows 10在同一可以上网的网段。我们就整个简单的,把三个虚拟机都桥接。接下来我教大家…

网络安全基础——DNS欺骗

本人声明整个过程完全是为了进行实验学习,并没有侵犯任何人的权益 DNS原理 实质是域名解析协议,,假设一企业员工上班浏览网页,他会在浏览器里输入http://www.xxxxxx.com这个网站域名,输入之后他的电脑并不知道这是个…

DNS解析过程及欺骗原理

什么是DNS DNS即地址解析协议,域名系统以分布式数据库的形式将域名和IP地址相互映射。 解析过程: 假如我们要访问 www.baidu.com ,首先要向本地DNS服务器发出DNS请求,查询 www.baidu.com 的IP地址; 如果本地DNS服务器…

网络安全入门学习第十课——DNS欺骗

文章目录 一、DNS概念1、DNS是什么?2、DNS欺骗是什么? 二、DNS欺骗复现1、环境:2、使用工具:3、开始复现3.1、开启攻击者的web服务3.2、修改/etc/ettercap/etter.dns3.3、启动ettercap,配置目标3.4、开始攻击3.5、检查…

网络攻防技术——DNS欺骗

一、题目 本实验的目标是让学生获得对DNS(域名系统)的各种攻击的第一手经验。DNS是互联网的电话簿;它将主机名转换为IP地址,反之亦然。这种转换是通过DNS解析实现的,这种解析发生在幕后。DNS欺骗攻击以各种方式操纵此…

DNS欺骗-教程详解

目录 一、环境 二、dns欺骗原理 三、dns欺骗操作 四、dns欺骗的危害 五、dns欺骗的防御 一、环境 VMware下的kali(攻击机)、Windows 7 x64(目标机) kali下载链接: https://blog.csdn.net/Stupid__Angel/articl…

cetus权限连接主从mysql_cetus/cetus-rw.md at master · eimens/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端,由于底层的数据库都是Master/Slave架构,做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…

网易中间件Cetus开源啦

Cetus的诞生 网易电商近年来业务呈现爆发式增长,原架构环境下,数据库的性能和吞吐量已无法应对其带来的巨大压力,为彻底解决数据库的瓶颈,Cetus应运而生。Cetus由网易乐得专家技术团队领队,经多部门协调合作设计出来的优秀中间件。具有正统基因,基于官方MySQL Proxy的版…

031:Cetus sharding

目录 一、主机环境二、搭建环境 1、准备环境三、Cetus安装 1、下载包和安装依赖包2、Cetus安装 1.安装说明2.安装实施四、Cetus配置 1、创建和修改配置文件2、启动cetus3、导入数据4、验证cetus分库功能五、Cetus测试各种限制 1、JOIN的使用限制2、DISTINCT的限制3、CASE WHEN/…

cetus权限连接主从mysql_网易开源中间件 -Cetus监控模块

01 概述 本文主要对Cetus的监控模块的使用及原理进行介绍,并介绍Cetus使用过程中,监控模块常见的问题及解决方法。 Cetus监控模块拥有独立的监控线程,主要是对Cetus后端各个MySQL实例进行监控,监控的内容主要包括三方面&#xff1…

cetus(cetus talk)

Cetus公司于1991年退出什么? Cetus公司于1991年推出一种rTthReverseTran-scriptase,有很好的依赖于RNA的耐热DNA聚合酶活性和依赖于DNA的耐热DNA聚合酶活性,二种活性分别依赖于Mn2Mg2,这样就可分别控制酶活性 Cetus公司于1991年退…

cetus权限连接主从mysql_cetus/cetus-rw.md at master · session-replay-tools/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端,由于底层的数据库都是Master/Slave架构,做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…

cetus权限连接主从mysql_cetus/cetus-rw.md at master · foxxnuaa/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端,由于底层的数据库都是Master/Slave架构,做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…

cetus权限连接主从mysql_cetus/cetus-rw.md at master · sea009/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端,由于底层的数据库都是Master/Slave架构,做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…

cetus权限连接主从mysql_cetus/cetus-rw.md at master · niumanniu/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端,由于底层的数据库都是Master/Slave架构,做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…