文档章节

利用WireShark进行DNS协议分析

Micooz
 Micooz
发布于 2014/07/15 13:09
字数 1346
阅读 5654
收藏 174
点赞 14
评论 9

一.准备工作

系统是Windows 8.1Pro

分析工具是WireShark1.10.8 Stable Version

使用系统Ping命令发送ICMP报文.

二.开始工作

打开CMD.exe键入:

ping www.oschina.net

将自动进行域名解析,默认发送4个ICMP报文.

启动Wireshark,选择一个有效网卡,启动抓包.

在控制台回车执行完毕后停止监控.

三.分析阶段

截获的所有报文如下:

总得来看有两个DNS包(一次域名解析),和8个ICMP包(四次ping)

下面开始分析DNS的工作过程:

打开第一个包:

可以发现DNS为应用层协议,下层传输层采用UDP,再下层网络层是IP协议,然后是数据链路层的以太网帧.

需要关注的是应用层的实现也即DNS协议本身.

在此之前,可以从下层获得一些必要信息:

UDP(User Datagram Protocol)报文中:DNS的目的端口(Dst Port)是53

IPv4(Internet Protocol Version 4)报文中目的IP是192.168.1.1(局域网路由器)

由于IP报文在网络层进行路由选择,他会依次送给路由器而不是直接送给DNS服务器,这一点也十分容易理解,

第一个包是请求包,不可能直接包含DNS服务器地址.

展开DNS数据:

第一个是Transaction ID为标识字段,2字节,用于辨别DNS应答报文是哪个请求报文的响应.

第二个是Flags标志字段,2字节,每一位的含义不同,具体可以参考上面那个图,也可以看下面这个图:

QR: 查询/响应,1为响应,0为查询

Opcode: 查询或响应类型,这里0表示标准,1表示反向,2表示服务器状态请求

AA: 授权回答,在响应报文中有效,待会儿再看

TC: 截断,1表示超过512字节并已被截断,0表示没有发生截断

RD: 是否希望得到递归回答

RA: 响应报文中为1表示得到递归响应

zero: 全0保留字段

rcode: 返回码,在响应报文中,各取值的含义:

    0 - 无差错

    1 - 格式错误

    2 - 域名服务器出现错误

    3 - 域参照问题

    4 - 查询类型不支持

    5 - 被禁止

    6 ~ 15 保留

紧接着标志位的是

Quetions(问题数),2字节,通常为1

Answer RRs(资源记录数),Authority RRs(授权资源记录数),Additional RRs(额外资源记录数)通常为0

字段Queries为查询或者响应的正文部分,分为Name Type Class

Name(查询名称):这里是ping后的参数,不定长度以0结束

Type(查询类型):2字节,这里是主机A记录.其各个取值的含义如下:

    值        助记符         说明

     1         A                 IPv4地址。

     2         NS               名字服务器。

     5         CNAME        规范名称。定义主机的正式名字的别名。

     6         SOA             开始授权。标记一个区的开始。

     11       WKS             熟知服务。定义主机提供的网络服务。

     12       PTR               指针。把IP地址转化为域名。

     13       HINFO          主机信息。给出主机使用的硬件和操作系统的表述。

     15       MX               邮件交换。把邮件改变路由送到邮件服务器。

     28       AAAA           IPv6地址。

     252     AXFR            传送整个区的请求。

     255     ANY             对所有记录的请求。

Class(类):2字节,IN表示Internet数据,通常为1


下面是截获的第二个DNS包:

可以看到和第一个请求包相比,响应包多出了一个Answers字段,同时Flags字段每一位都有定义.

关注一下Flags中Answer RRs 为4 说明对应的Answers字段中将会出现4项解析结果.

Answers字段可以看成一个List,集合中每项为一个资源记录,除了上面提到过的Name,Type,Class之外,还有Time to 

Live,Data length,Addr.

Time to Live(生存时间TTL):表示该资源记录的生命周期,从取出记录到抹掉记录缓存的时间,以秒为单位.这里是0x00 00 00 fd 合计253s.

Data length(资源数据长度):以字节为单位,这里的4表示IP地址的长度为4字节.也就是下面Addr字段的长度.

Addr(资源数据): 返回的IP地址,就是我们想要的结果.


可以发现有4条资源记录,4个不同的IP地址,说明域名 www.oschina.net  对应有4个IP地址,分别是:

112.124.5.74

219.136.249.194

61.145.122.155

121.9.213.124

CMD中显示的是第一条IP地址.我试了下直接访问上面各个地址的80端口(http),

第一个和第二个显示403 Forbidden

第三个和第四个显示404 Not Found

还有每个地址哦Server都不一样oscali,oscdb,liubc,ep2,第一个像阿里云服务器,第二个看起来像数据库的服务器,其他就不知道了...

Web服务器貌似是Tengine,

不知道为什么通过IP地址无法直接访问web站点,以后感兴趣再研究下哈哈


关于ICMP协议的报文分析将在之后的文章中给出.今天先到这吧.

最后,欢迎大家评论交流~特别是OSC在搞什么鬼.


© 著作权归作者所有

共有 人打赏支持
Micooz
粉丝 41
博文 33
码字总数 51094
作品 1
其它
其他
加载中

评论(9)

马博文
马博文

引用来自“站着说话也腰疼”的评论

直接用”nslookup www.oschina.net“命令不行吗?
dig 不是更好么?
站着说话也腰疼
站着说话也腰疼
直接用”nslookup www.oschina.net“命令不行吗?
marsITman
marsITman
因為IP訪問你就拋開審查了……!
fkkeee
fkkeee
了解 Nginx的 server_name ,就知道为什么
purely
purely
我觉得不能ip直接访问可能是nginx反向代理的原因。
Micooz
Micooz

引用来自“zdxgdl”的评论

不能使用ip地址访问网站是信产部的规定,只能使用备案过的域名访问。设置跳转都不行,我曾经因为这个被所谓上级主管部门关站三天,勒令整改。技术实现再web服务器中设置default 虚拟主机为拒绝即可。

这也,...太奇葩了
zdxgdl
zdxgdl
不能使用ip地址访问网站是信产部的规定,只能使用备案过的域名访问。设置跳转都不行,我曾经因为这个被所谓上级主管部门关站三天,勒令整改。技术实现再web服务器中设置default 虚拟主机为拒绝即可。
www_znb_cc
www_znb_cc
解析得挺清楚的。
夲仒無道
夲仒無道
挺好的,顶一个。
关于蹭网检查的原理及实现

引言 网络十分普及的现在,几乎每家每户都用上了无线局域网, 但也时常因为路由器密码泄露或破解被别人蹭网,加之WiFi 万能钥匙等软件的流行, 越来越多人加入了蹭网大军, 也给不少小型局域网用户...

Micooz ⋅ 2014/08/02 ⋅ 19

手机数据抓包入门教程

手机数据抓包入门教程 试读地址:http://pan.baidu.com/s/1hqf9N9a 介绍:本教程从专业的角度讲解手机抓包的各种方式,同时也对常见的UDP、TCP通信模式详细讲解。最后针对HTTP协议类应用,本...

大学霸 ⋅ 2015/04/16 ⋅ 1

Wireshark 2.0.3 发布下载

Wireshark 是世界上最流行的开源、免费跨平台网络协议分析软件,它经常被网络专家用户排错、部署、分析和教育活动中。目前 Wireshark 2.0.3 已经发布下载,升级日志显示该版本修复 Bug 超 40...

linuxprobe ⋅ 2016/04/27 ⋅ 5

CTF---安全杂项入门第二题 A记录

A记录分值:20 来源: sammie 难度:中 参与人数:2255人 Get Flag:566人 答题人数:621人 解题通过率:91% 他在看什么视频,好像很好看,不知道是什么网站的。 还好我截取了他的数据包,找...

angel_kitty ⋅ 2017/10/26 ⋅ 0

Wireshark数据抓包教程之认识捕获分析数据包

Wireshark数据抓包教程之认识捕获分析数据包 认识Wireshark捕获数据包 当我们对Wireshark主窗口各部分作用了解了,学会捕获数据了,接下来就该去认识这些捕获的数据包了。Wireshark将从网络中...

大学霸 ⋅ 2015/07/16 ⋅ 0

Wireshark基本用法

按照国际惯例,从最基本的说起。 作者当前的操作系统为:Windows 10 专业版 抓包软件为:Wireshark2.0.4 WinPcap版本:4.1.3 抓取报文: 下载和安装好Wireshark之后,启动Wireshark并且在接口...

hongliang_liu ⋅ 2017/04/14 ⋅ 0

基于Web方式的数据包捕获实践

基于Web方式的数据包捕获实践 抓包是运维的必备技能,很多网络故障需要靠抓包来解决,如常见的ARP欺骗和广播风暴。另外还有一些网线或光纤接触不好的故障,不抓包也很难分析出来,例如两个公司...

李晨光 ⋅ 2016/03/22 ⋅ 0

wireshark过滤语法总结

做应用识别这一块经常要对应用产生的数据流量进行分析。 抓包采用wireshark,提取特征时,要对session进行过滤,找到关键的stream,这里总结了wireshark过滤的基本语法,供自己以后参考。(脑...

linhao_214 ⋅ 2013/02/28 ⋅ 0

基于Web方式的数据包捕获实践

基于Web方式的数据包捕获实践 实验环境:下文基于 OSSIM 4.15.2 平台得出实验结论。 抓包是运维的必备技能,很多网络故障需要靠抓包来解决,如常见的ARP欺骗和广播风暴。另外还有一些网线或光...

OSSIM ⋅ 2016/03/22 ⋅ 0

DNS & CDN & HTTPDNS 原理简析

DNS & CDN & HTTPDNS 原理简析 背景: 作为域名和 IP 地址相互映射的一个分布式数据库,通过 DNS 可以将域名迅速解析为对应的 IP 地址,从而方便我们访问 Internet 上的任意一台主机(或网站...

new_chaos ⋅ 03/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周日乱弹 —— 这么好的姑娘都不要了啊

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @TigaPile :分享曾惜的单曲《讲真的》 《讲真的》- 曾惜 手机党少年们想听歌,请使劲儿戳(这里) @首席搬砖工程师 :怎样约女孩子出来吃饭,...

小小编辑 ⋅ 25分钟前 ⋅ 1

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部