最近在做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劫持分析的更多相关文章

  1. 【HTTP劫持和DNS劫持】腾讯的实际业务分析

        简单介绍一下HTTP劫持和DNS劫持的概念,也就是运营商通过某些方式篡改了用户正常访问的网页,插入广告或者其他一些杂七杂八的东西.       首先对运营商的劫持行为做一些分析,他们的目的无非 ...

  2. openwrt-智能路由器hack技术(1)---"DNS劫持"

    openwrt-智能路由器hack技术(1)---"DNS劫持" 1   导读 PS:之前写的一个文章,现在发现结构内容排版不是太好,导致阅读体验太差,影响传播和SEO,所以现在整 ...

  3. 无线安全: 通过伪AP进行DHCP+DNS劫持的钓鱼攻击

    有了之前学习802.11的数据帧格式.芯片硬件参数学习的基础后,我们接下来继续学习无线安全中黑客是怎样进行流量劫持攻击的 相关学习资料 http://www.freebuf.com/articles/ ...

  4. HTTP劫持和DNS劫持

    HTTP劫持和DNS劫持 首先对运营商的劫持行为做一些分析,他们的目的无非就是赚钱,而赚钱的方式有两种: 1.对正常网站加入额外的广告,这包括网页内浮层或弹出广告窗口: 2.针对一些广告联盟或带推广链 ...

  5. 手把手教你DNS劫持挂马

    出品|MS08067实验室(www.ms08067.com) 本文作者:BlackCat(Ms08067内网安全小组成员) 首先学习DNS劫持之前,务必要了解下DNS是个什么玩意. DNS(域名系统) ...

  6. DNS劫持解决方法

    刚在家上网,发自己的浏览器竟然还会弹出页面广告(我浏览器装了屏蔽广告的浏览器应用,理论上就不会出现什么弹出来的广告). 于是自己仔细研究了下,发现在易迅的页面竟然嵌套了一个iframe,首先易迅肯定不 ...

  7. DNS劫持和DNS污染的区别

    我们知道,某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址.常用的手段有:DNS劫持和DNS污染. 什么是DNS劫持 DNS劫持就是通过劫 ...

  8. DNS劫持

    忽然发现我最喜欢的chrome 一直有广告,好些论坛都有大量的广告,原以为是重了什么插件了,找了也没发现,有可能是DNS劫持. 打开路由器,找到 dns 设置里面把里面的全部去掉.然后把 192.16 ...

  9. 通过开源程序同时解决DNS劫持和DNS污染的问题

    我们知道,某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址.常用的手段有:DNS劫持和DNS污染.关于DNS劫持和DNS污染的区别,请查找 ...

随机推荐

  1. ASP.NET自定义处理程序

    要创建自定义处理程序,可以创建一个实现IHttpHandler接口的类. 该类有两个重要的参数:IsResuable属性和ProcessRequest方法.如果处理程序实例可以在不同的请求中重用,Is ...

  2. JavaScript中的6种运算符总结

    JavaScript 运算符主要包括: 算术运算符 赋值运算符 比较运算符 三元运算符 逻辑运算符 字符串连接运算符 运算符 说明 例子 运算结果 + 加 y = 2+1 y = 3 - 减 y = ...

  3. Sublime text3 设置的中文翻译

    // While you can edit this file, it's best to put your changes in // "User/Preferences.sublime- ...

  4. 什么是RESTful?

    RESTful一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. REST ...

  5. 快速排序算法回顾 --冒泡排序Bubble Sort和快速排序Quick Sort(Python实现)

    冒泡排序的过程是首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两个记录交换,然后比较第二个记录和第三个记录的关键字.以此类推,直至第n-1个记录和第n个记录的关键字进行过比较为止 ...

  6. 基于bootstrap的bootstrap-editable插件实现即时编辑功能

    1.引用基本css和js: <link href="bootstrap3/css/bootstrap.min.css" rel="stylesheet" ...

  7. pixi.js

    添加基本文件(库文件) 渲染库 pixi.js pixi.lib.js是pixi.js的子集,依赖class.js,cat.js,event_emiter.js文件 pixi.scroller.js ...

  8. Java程序i学习中各阶段的建议

    第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学. 一.Java基础 首先去找一个Java的基础教程学一下,这里可以推荐一个地址,或者你也可以参照这个地址上去找相应 ...

  9. Js 网页版扫雷游戏代码实现

    这个游戏是自己在大约一年前联系js熟练度时做的,用的都是基础的东西,最近比较忙没时间整理.直接发给大家,有兴趣的可以看一下.欢迎大家提出建议.如果你有什么新的想法也可以提出来,或者你并不擅长编程.你想 ...

  10. lightoj1281快速幂+数学知识

    https://vjudge.net/contest/70017#problem/E 后半部分快速幂就能求出来,要注意03lld不然001是输出错误为1.前半部分用log10() 对于给定的一个数n, ...