博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dns劫持分析
阅读量:5963 次
发布时间:2019-06-19

本文共 948 字,大约阅读时间需要 3 分钟。

最近在做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,返回的响应结果有三个,对于linuxdig命令来说,它只处理最先到达的响应包,也就是第一个,看看第一个包中都有什么内容:

  

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

  

  

可以看到,ns记录和我们用whois查询的结果是一样的。这就是说,查询过程是没有被打断的,被问询的server有响应我们的解析请求,只不过在这个过程中,劫持者截获了请求,并伪造了多个响应包发回来。

  对于这种情况,我所使用的方法是检测每一个返回的响应包,判断是否有我期望的结果,如果没有,则丢弃这个包,否则就解析这个响应包,同时设置read超时时间,超过设定时间则认为没有后续的响

本文转自xsster51CTO博客,原文链接: http://blog.51cto.com/12945177/1930159
,如需转载请自行联系原作者
你可能感兴趣的文章
安卓中的弹出框
查看>>
SCVMM 2012 R2---安装前的准备工作
查看>>
18岁的他从月薪2000到月薪11000经历了什么?
查看>>
27.将 VMware 服务器上的虚拟机备份到 Azure(上)
查看>>
话里话外:中小型装备制造企业竞争优势构建之路
查看>>
zabbix 监控 3com
查看>>
大数据测试之hadoop单机环境搭建(超级详细版)
查看>>
ASA防火墙外部web应用端口与默认审查协议相冲突的解决方法
查看>>
Office 365 Pro Plus 离线安装包及自定义部署工具下载地址
查看>>
windows下mysql备份脚本
查看>>
zabbix专题:第十二章 zabbix proxy分布式监控配置
查看>>
tar 命令的详解
查看>>
Android Studio第二十七期 - RecycleView不同item布局
查看>>
穷人的分布式网络
查看>>
FR-TO-FR本地交换
查看>>
Python内置容器(2)——字典,迭代器,列表解析
查看>>
那年匆匆 -大学
查看>>
Internet 打印提示“打印机安装失败、打印机名称无效”的解决
查看>>
从Powershell ***脚本学到的如何执行后台runspace~
查看>>
SCCM TP4部署Office2013
查看>>