dns劫持分析
最近在做dns解析,关注的重点在查询域名ns记录上,异常日志中捕获到一个域名,dig查询:

查询请求类型为ns,dig结果确只有一条A记录。处于好奇,查询类型改为a类型:



这个域名dig 查询A记录,返回一条结果,但是每次dig下去结果都不大一样。回到最开始的问题,请求类型为NS,
dig下去发现没有ns结果,那么是否是域名没有设置ns呢?我们用whois查看下:

可以看到ns是有的,可是dig的结果为何显示没有ns记录呢?我们修改下上上节的程序代码(完整代码在github见文末),构造一个dns解析请求,请求类型为ns,程序分析响应的内容,
发现其结果和我们用dig命令查询是一样的,返回结果分析后只有一条A记录:

查一下这个地址,结果如下:

很明显,这个结果是不正确的。
我们模拟了dig工具的dns解析过程,发现只能获取到域名的A记录,为了搞清楚到底发生了什么,我们用抓包工具来帮助我们了解原由。首先打开抓包工具,
然后运行程序,发一个dns查询包,在wireshark中过滤类型,查看结果:

第一个是我们发起的查询,可以看到类型是NS,请求的域名是3331.com,返回的响应结果有三个,对于linux的dig命令来说,它至处理最先到达的响应包,也就是第一个,看看第一个包中都有什么内容:

请求类型ns,answers中确只有type A,并告诉我们A记录是243.185.187.39。这就是我们所说的dns劫持的一种,但是,查看第三个响应包:

可以看到,ns记录和我们用whois查询的结果是一样的。这就是说,查询过程是没有被打断的,被问询的server有响应我们的解析请求,只不过在这个过程中,劫持者截获了请求,并伪造了多个响应包发回来。
对于这种情况,我所使用的方法是检测每一个返回的响应包,判断是否有我期望的结果,如果没有,则丢弃这个包,否则就解析这个响应包,同事设置read超时时间,超过设定时间则认为没有后续的响
应包了。有兴趣的可以移步github查看代码:https://github.com/taoge2520/test_for_dig
dns劫持分析的更多相关文章
- 【HTTP劫持和DNS劫持】腾讯的实际业务分析
简单介绍一下HTTP劫持和DNS劫持的概念,也就是运营商通过某些方式篡改了用户正常访问的网页,插入广告或者其他一些杂七杂八的东西. 首先对运营商的劫持行为做一些分析,他们的目的无非 ...
- openwrt-智能路由器hack技术(1)---"DNS劫持"
openwrt-智能路由器hack技术(1)---"DNS劫持" 1 导读 PS:之前写的一个文章,现在发现结构内容排版不是太好,导致阅读体验太差,影响传播和SEO,所以现在整 ...
- 无线安全: 通过伪AP进行DHCP+DNS劫持的钓鱼攻击
有了之前学习802.11的数据帧格式.芯片硬件参数学习的基础后,我们接下来继续学习无线安全中黑客是怎样进行流量劫持攻击的 相关学习资料 http://www.freebuf.com/articles/ ...
- HTTP劫持和DNS劫持
HTTP劫持和DNS劫持 首先对运营商的劫持行为做一些分析,他们的目的无非就是赚钱,而赚钱的方式有两种: 1.对正常网站加入额外的广告,这包括网页内浮层或弹出广告窗口: 2.针对一些广告联盟或带推广链 ...
- 手把手教你DNS劫持挂马
出品|MS08067实验室(www.ms08067.com) 本文作者:BlackCat(Ms08067内网安全小组成员) 首先学习DNS劫持之前,务必要了解下DNS是个什么玩意. DNS(域名系统) ...
- DNS劫持解决方法
刚在家上网,发自己的浏览器竟然还会弹出页面广告(我浏览器装了屏蔽广告的浏览器应用,理论上就不会出现什么弹出来的广告). 于是自己仔细研究了下,发现在易迅的页面竟然嵌套了一个iframe,首先易迅肯定不 ...
- DNS劫持和DNS污染的区别
我们知道,某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址.常用的手段有:DNS劫持和DNS污染. 什么是DNS劫持 DNS劫持就是通过劫 ...
- DNS劫持
忽然发现我最喜欢的chrome 一直有广告,好些论坛都有大量的广告,原以为是重了什么插件了,找了也没发现,有可能是DNS劫持. 打开路由器,找到 dns 设置里面把里面的全部去掉.然后把 192.16 ...
- 通过开源程序同时解决DNS劫持和DNS污染的问题
我们知道,某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址.常用的手段有:DNS劫持和DNS污染.关于DNS劫持和DNS污染的区别,请查找 ...
随机推荐
- JSTL标签分类
<c:>核心标签库:共有13个,功能分4类 1.表达式控制标签: out.set.remove.catch 2.流程控制标签: if.choose.when.otherwise 3.循环标 ...
- C#中的DateTime是值类型还是引用类型
近期遇到了DateTime到底是值类型还是引用类型的疑惑,顺势较深入地了解一下DateTime相关的内容 结论:DateTime是值类型,因为DateTime是结构体,而结构体继承自Syste.Val ...
- MySQL5.7下修改root密码
本地安装了个mysql5.7,发现修改root密码和以往有区别了,特此记录下 进入mysql 更改密码: mysql> update mysql.user set authentication ...
- Divide Groups(分组)
题目链接 题目大意是说输入数字n 然后告诉你第i个人都认识谁? 让你把这些人分成两堆,使这每个堆里的人都互相认识. 做法:把不是互相认识的人建立一条边,则构建二分图,两堆的人肯定都互相认识,也就是说, ...
- CSS样式表初学,比C#和JS简单
今天咱们一起来看下CSS样式表的基本基础 经常看博客或者喜欢钻研代码这一类的人对CSS可能有所耳闻,但具体的可能不是很清楚 那什么是CSS呢?与HTML又有什么区别呢?今天咱们就来说道下这个CSS C ...
- 读书笔记 effctive c++ Item 52 如果你实现了placement new,你也要实现placement delete
1. 调用普通版本的operator new抛出异常会发生什么? Placement new和placement delete不是C++动物园中最常遇到的猛兽,所以你不用担心你对它们不熟悉.当你像下面 ...
- Python 操作 MySQL 的正确姿势
欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:邵建永 使用Python进行MySQL的库主要有三个,Python-MySQL(更熟悉的名字可能是MyS ...
- JS的Dom树小结
一[DOM树节点] DOM节点分为三大类:元素节点.文本节点.属性节点 文本节点.属性节点,为元素节点的两个子节点: 通过getElement系列方法,可以去到元素节点. 二[查看节点] ...
- SQL Server 数据库连接方法
我们用c#写ado或者是asp,都需要连接数据库来读写数据,今天我们就来总结一下数据库连接都有哪些方法. 首先我们就写最直接的方法,在事件中直接连接.(在这里就用WEB页面来展示) 首先我们建立web ...
- GitHub的实践
GitHub的实践 2017-05-08,晴,来小米已经一周的时间了,感谢领导能给我一周的时间来熟悉 ubuntu.spring boot.maven.docker.github .大家会问,这些不都 ...