我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

什么是 DNS 劫持?

DNS劫持是劫持DNS服务器,通过某种手段获取对某个域名的解析记录的控制权,然后修改该域名的解析结果,导致对该域名的访问从原来的IP地址转移到修改后的指定IP。其结果是无法访问特定的URL或者访问虚假的URL,从而达到窃取数据或破坏原有正常服务的目的。 DNS劫持是通过篡改DNS服务器上的数据并向用户返回错误的查询结果来实现的。

DNS劫持症状:在某些地区,用户成功连接宽带后,首次打开的任何页面都指向ISP提供的“电信互联星”、“网通黄页广告”等内容页面。也曾出现过用户访问域名时出现百度网站的情况。这些都是DNS劫持。

简单来说,当你输入这个网址时,你看到的网站就是百度的首页。

目录

1.什么是DNS

2. DNS原理

3、什么是DNS劫持及其危害?

4、DNS劫持方法

5. 如何防止DNS劫持(网络层面)

6. 如何防止DNS劫持(应用级)

7、历史上著名的劫机案件

1.什么是DNS

在网络中,机器只知道IP地址,机器最终通过IP相互访问。但为了方便记忆,可以为IP地址设置一个对应的域名。通过访问域名,可以找到IP地址对应的网站。

例如,当我们访问今日头条官网时,我们在浏览器地址栏中输入今日头条的地址。

看似我们访问的是域名,但实际上是通过IP地址访问的今日头条官网。

您可以在终端命令窗口中ping今日头条官网域名,可以看到该域名对应的IP地址。

从202.108.250.213到202.108.250.213的转换称为域名解析。域名解析需要有专门的域名解析服务器来完成。 DNS是执行域名解析的服务器(Name或Name)。

(注:直接使用202.108.250.213无法访问今日头条官网,这是因为今日头条的服务器已设置限制IP访问。

一般网站都会选择放置在虚拟主机上,主机上放置的网站很多,每个网站都绑定一个或多个域名和虚拟主机。例如主机的配置会将对应的IP解析到对应的网站目录,允许在一台服务器上配置多个网站;一般用户访问时,会产生http请求消息,可以将上述主机信息提供给服务器。 ,告诉服务器要访问的域名,从而实现主机绑定

通过设置IP,即使有多个网站,也不会互相干扰。但使用IP访问时,主机并不知道用户访问的具体目录,请求会导致错误。 )

2. DNS原理

当进行 DNS 查询时,它会首先尝试在本地缓存中查找。如果不存在或者记录已过期,则继续向DNS服务器发起递归查询。这里的DNS服务器通常是运营商的DNS服务器。

1. DNS 的工作原理

第一步:

客户端发起域名解析请求,并将请求发送至本地域名服务器。

第二步:

当本地域名服务器收到请求时,首先查询本地缓存。如果有这样的记录,则本地域名服务器直接返回查询结果(域名对应的IP地址)。

第三步:

如果本地缓存中没有该记录,则本地域名服务器将直接将请求发送到根域名服务器,然后根域名服务器将主域名的地址返回给本地域名服务器查询域的服务器(根域的子域)。

第4步:

然后本地服务器向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存。如果没有该记录,则返回相关下级域名服务器的地址。

第5步:

重复第四步,直到找到正确的记录。

第6步:

本地域名服务器将返回的结果保存到缓存中供下次使用,同时将结果返回给客户端。

2、查询流程

虽然只需要返回一个IP地址,但DNS查询过程却非常复杂,分为多个步骤。

工具软件dig可以展示整个查询过程。

$挖

上面的命令会输出六条信息。

第一段是查询参数和统计信息。

第二段是查询内容。

上述结果表明,在查询域名的A记录时,

A 是 的缩写。

第三段是DNS服务器的回复。

以上结果显示有4条A记录,即4个IP地址。

600是TTL值(Time to live的缩写),表示缓存时间,即600秒内不需要重新查询。

第四段显示NS记录(Name的缩写),它是服务器负责管理的DNS记录。

上面的结果显示,有4条NS记录,即4个域名服务器。查询其中任意一项即可获知IP地址。

第五段是上述四个域名服务器的IP地址,与上一段一起返回。

第六段是DNS服务器传输的一些信息。

以上结果显示,本地DNS服务器为192.168.1.253,查询端口为53(DNS服务器默认端口),响应长度为305字节。

如果你不想看到这么多内容,可以使用+short参数。

$挖掘+短

#返回:

151.101.129.69

151.101.65.69

151.101.193.69

151.101.1.69

上面的命令只返回对应的4个IP地址(即A记录)。

3、DNS服务器

接下来我们根据前面的例子,一步步还原本机是如何获取域名的IP地址的。

首先,这台机器必须知道DNS服务器的IP地址,否则将无法访问互联网。只有通过DNS服务器才能知道某个域名的IP地址是什么。

DNS 服务器的 IP 地址可能是动态的,由网关在您每次访问 时分配。这就是所谓的DHCP机制;也可以是预先指定的固定地址。在Linux系统中,DNS服务器的IP地址存储在/etc/.conf文件中。

上例中的DNS服务器为192.168.1.253,为内网地址。还有一些公网DNS服务器也可以使用,其中最著名的是8.8.8.8和Level 3 4.2.2.2。

本机只查询自己的DNS服务器。 dig命令有一个@参数,该参数显示查询其他DNS服务器的结果。

$dig@4.2.2.2

上述命令指定查询DNS服务器4.2.2.2。

4、域名级别

DNS服务器如何知道各个域名的IP地址呢?

答案是分层查询。

请仔细查看前面的示例。每个域名末尾都有一个额外的点。

例如,域名显示为 .这并不是疏忽,而是所有域名的末尾实际上都有一个根域名。

例如,

真实域名是

缩写是.

由于根域名 .root 对于所有域名都是相同的,因此通常被省略。

根域名的下一级称为“顶级域名”(简称TLD),如.com、.net;

下一级称为“子级域名”(-level,缩写为SLD),例如.里面。该级别域名是用户可以注册的;

再下一级是主机名(host),比如里面的www,也称为“三级域名”。这是用户给自己域中的服务器分配的名称,用户可以任意分配。

概括来说,域名的层次结构如下。

主机名。二级域名。顶级域名。根域名

# 那是host.sld.tld.root

5、根域名服务器

DNS服务器根据域名的级别进行分层查询。

需要明确的是,每一级域名都有自己的NS记录,NS记录指向该级域名的域名服务器。

这些服务器知道较低级别域名的各种记录。

所谓“分层查询”,就是从根域名开始,依次查询各级域名的NS记录,直到找到最终的IP地址。流程大致如下。

如果你仔细看上面的过程,可能会发现其中并没有提到DNS服务器是如何知道“根域名服务器”的IP地址的。

答案是“根域名服务器”的NS记录和IP地址一般不会改变,因此内置于DNS服务器中。

以下是内置根名称服务器 IP 地址的示例。

在上面的列表中,列出了根域名(.root)的3条NS记录。

A.ROOT-.NET、

B.ROOT-.NET、

C.ROOT-.NET,

及其IP地址(即A记录)

198.41.0.4,

192.228.79.201,

192.33.4.12。

另外,可以看到所有记录的TTL值都是秒,相当于1000小时。

也就是说,根域名服务器列表每1000小时才查询一次。

目前,全球共有十三组根域名服务器。

从 A.ROOT-.NET 到

M.ROOT-.NET。

6. 分层查询示例

dig命令的+trace参数可以显示DNS的整个分层查询过程。

$挖掘+跟踪

上述命令第一段列出了根域名的所有NS记录,即所有根域名服务器。

DNS服务器根据内置的根域名服务器IP地址,向所有这些IP地址发送查询请求,查询顶级域名服务器com的NS记录。

最先回复的根域名服务器会被缓存,以后的请求只会发送到这台服务器。

接下来是第二段。

上面的结果显示了.com域名的13条NS记录,并且还返回了每条记录对应的IP地址。

然后,DNS服务器向这些顶级域名服务器发送查询请求,查询二级域名的NS记录。

上面的结果显示有4条NS记录,并且还返回了每条NS记录对应的IP地址。

然后,DNS服务器向上述四台NS服务器查询主机名。

上面结果显示有4条A记录,即这4个IP地址都可以访问该网站。

它还表明第一个返回结果的 NS 服务器是

,

IP 地址是 205.251.193.207。

7、NS记录查询

dig命令可以单独查看各级别域名的NS记录。

$ 挖 ns com

$ 挖 ns

+短

参数可以显示简化的结果。

$ dig +short ns com

$ 挖掘 +short ns

8. DNS 记录类型

域名和IP的对应关系称为“记录”()。根据使用场景,“记录”可以分为不同的类型(type)。我们之前已经看到有A记录和NS记录。

常见的 DNS 记录类型如下。

一般来说,为了保证服务的安全可靠,至少应该有两条NS记录,也可以有多条A记录和MX记录。这提供了服务冗余并防止单点故障。

别名记录

记录主要用于域名内部跳转,提供服务器配置的灵活性,并且对用户不可见。

例如,

域名..io是一条CNAME记录。

以上结果表明..io的CNAME记录指向。

也就是说,当用户查询..io时,实际上返回的是IP地址。

这样做的好处是,改变服务器IP地址时,只需要修改域名即可,用户的..io域名不需要修改。

由于CNAME记录是替代记录,一旦为域名设置了CNAME记录,就无法再设置其他记录。

(比如A记录和MX记录),这是为了防止冲突。

例如

指向,两个域名各有自己的MX记录。如果两者不一致,就会出现问题。由于顶级域名通常需要设置MX记录,因此一般不允许用户为顶级域名设置CNAME记录。

PTR

记录用于从 IP 地址查找域名。 dig命令的-x参数用于查询PTR记录。

以上结果显示服务器的域名为192.30.252.153。

反向查找的一种应用是防止垃圾邮件,即验证发送电子邮件的 IP 地址是否确实具有其声称的域名。

该命令可以查看指定的记录类型。

$ 挖一个

$ 挖 ns

$digmx

3、什么是DNS劫持及其危害?

1.什么是DNS劫持?

DNS劫持又称域名劫持,是指通过一定手段获取某个域名的解析控制权,修改该域名的解析结果,导致对该域名的访问从原来的IP地址转移到修改指定IP。结果是特定URL无法访问或者访问的URL是假URL。

如果可以冒充域名服务器,然后将查询IP地址设置为攻击者的IP地址,那么当用户上网时,只能看到攻击者的主页,而看不到用户想要获取的网站的主页。这就是DNS劫持的基本原理。

其实,DNS劫持并不是真正“黑客”对方的网站,而只是冒充别人,欺骗对方。

2. DNS劫持的危险

4、DNS劫持方法

1、利用DNS服务器进行DDOS攻击

正常的 DNS 服务器递归查询过程可能会被利用进行 DDOS 攻击。假设攻击者知道受感染机器的IP地址,然后使用该地址作为发送解析命令的源地址。这样,当使用DNS服务器进行递归查询时,DNS服务器响应的是原始用户,而这个用户就是攻击者。那么如果攻击者控制了足够多的肉鸡,重复执行上述操作,被攻击方就会受到来自DNS服务器响应信息的DDOS攻击。

如果攻击者拥有足够大的肉鸡群,则攻击者的网络可能会崩溃。使用DNS服务器攻击的一个重要挑战是攻击者隐藏自己的行踪,因为他不直接与被攻击的主机通信,使得受害者很难追踪原始攻击。

2、DNS缓存感染

攻击者使用 DNS 请求将数据放入易受攻击的 DNS 服务器的缓存中。这些缓存的信息会在客户进行DNS访问时返回给用户,从而将用户对正常域名的访问引导至挂马、钓鱼等入侵者设置的页面,或者通过伪造获取用户的密码信息电子邮件和其他服务。 ,导致客户遭受进一步的侵害。

3、DNS信息劫持

TCP/IP系统使用序列号和其他方法来防止伪造数据的插入。然而,如果入侵者监听客户端和DNS服务器之间的对话,他或她就可以猜测服务器响应客户端的DNS查询ID。每个DNS消息都包含一个关联的16位ID号,DNS服务器根据该ID号获取请求源位置。攻击者在 DNS 服务器之前向用户发送虚假响应,从而诱骗客户端访问恶意网站。假设向某个域名服务器提交的域名解析请求的DNS报文数据被拦截,然后根据拦截者的意图,将一个虚假的IP地址作为响应消息返回给请求者。原来的请求者会用这个虚假的IP地址作为自己想要请求的域名,这样他就会被骗到其他地方而无法连接到他想要访问的域名。

4.DNS重定向

攻击者将DNS名称查询重定向到恶意DNS服务器,被劫持域名的解析完全在攻击者的控制之下。

演示 DNS 重定向:

首先,我们需要使用无线网卡来伪造ap。

启动伪ap前的准备工作

–a 检查当前网卡状态

wlan0 up 激活无线网卡

-ng start wlan0 将你的无线网卡转为“”模式

如果有其他进程干扰,请先杀死干扰进程,然后再继续。设置监听模式前,输入 -ng check kill 结束进程。

检测目标ap并为伪ap的假设-ng做好准备。在上面的检测app中,我们可以获知WiFi名称(ssid)、加密方式、通道等信息。

接下来我们就可以启动伪ap了。 -ng -e "" -c 6 (这里的环境不同,启动方式也不同,我这里的环境是kali2.0,所以是这样的,之前版本的启动方式是-ng mon0 - e“”-c 6)

这时候我们就可以收到我们的假AP了,但是这个AP无法执行正常的功能。如果连接的话,会保持获取IP的状态。接下来我们需要配置与这个伪ap匹配的dhcp。

apt-get

修改/etc/.conf配置文件,自定义IP池、网关、DNS等。

推荐使用gedit工具编辑文件:

gedit /etc/.conf

修改IP池

192.168.xy

192.168.xz

修改执行dhcp功能的接口

可以使用-a或者命令查看接口

修改DNS、网关等。修改/etc//,将dhcpd功能修改为yes。

=“是”

打开dhcp服务,启动。

配置完dhcp后,我们还需要解决流量问题。 192.168.2.0/24内的流量需要通过主机网卡eth0与外界交互。我们用它来解决这个问题。

下一步是配置 dns 服务。这里我们使用msf提供dns服务。我们劫持了域名到192.168.2.1。当这一切都配置完成后,让我们连接这个伪 ap。现在,攻击者一进入,就会被劫持到错误的站点。这被认为是一种网络钓鱼方法。在完成此操作之前,如果目标主机已经连接了 WiFi,则可以使用 mdk3 等工具对其 WiFi 进行 ddos​​ 攻击,以强制目标断开连接。

*在智能手机中,如果两个WiFi相同,手机将保持当前连接并自动阻止新的WiFi。

*构建伪dhcp服务器的方法有很多种。

5.ARP欺骗

ARP攻击是通过伪造IP地址和MAC地址来实现ARP欺骗,可以在网络中产生大量的ARP流量,使网络阻塞。攻击者只要不断发送伪造的ARP响应报文,就可以改变目标主机ARP缓存中的IP地址。 -MAC条目,导致网络中断或中间人攻击。 ARP攻击主要存在于局域网中。如果局域网中的一台计算机感染了ARP病毒,感染了ARP病毒的系统就会试图通过“ARP欺骗”来拦截网络中其他计算机的通信信息,从而造成网络损坏。计算机内与其他计算机通讯失败。

ARP欺骗通常发生在用户的局域网中,导致用户向错误的方向访问域名。如果IDC机房也被ARP病毒入侵,攻击者可能会利用ARP数据包压制正常主机或压制DNS服务器,将访问重定向到错误的方向。

我们可以利用或者来实现dns劫持。

6.本地劫持

本地计算机系统被木马或流氓软件感染后,也可能会出现部分域名访问异常的情况。例如,访问木马、钓鱼网站或无法访问等。原生DNS劫持方式包括hosts文件篡改、原生DNS劫持、SPI链注入、BHO插件等。

本地dns劫持的操作比较简单,就是秘密篡改目标主机的dns缓存。上面我们已经知道,DNS查询过程是先查询本地的DNS文件,如果找不到再去服务器查询。所以说这个本地dns劫持的效果是相当厉害的。

就像这样,进入hosts文件并更改dns。当主机进入计算机后,如果他想访问它,他的会话将被劫持到192.168.2.1。

当然,你也可以破解路由器,直接更改路由器的dns设置。

5. 如何防止DNS劫持(网络层面)

1、互联网公司准备两个以上域名。一旦黑客进行DNS攻击,用户还可以访问另一个域名。

2.手动修改DNS:

3、修改路由器密码:

6. 如何防止DNS劫持(应用级)

二维码
扫一扫在手机端查看

本文链接:https://by928.com/7626.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线