Wireshark协议分析
另外一个方法就是使用wlan.fc.type_subtype == 0x0c过滤器取消验证数据包。
这将会返回很多与失败验证不相关的多余结果,因此为了验证数据包与此相关,你将需要深入挖掘,并创建另一个围绕WAP和无线客户端间所有数据包的过滤器。

(wlan.fc.type_subtype ==0xb || wlan.fc.type_subtype ==0xc) && (wlan.addr a4:04:50:8a:f8:5d || wlan.addra4:04:50:8a:f9:14 )

ARP协议
一个数据包必要必先要有Eth头,然后才是IP头、TCP头,单纯只有IP+端口是无法完成网络通信的。Eth最重要的就是MAC地址,而MAC地址的获取或者叫学习就是使用ARP协议。
ARP是一种同子网内以IP地址找MAC地址的协议。(RARP是以MAC地址找ip地址的协议)
1)场景:x.x.x.x(IP)要向y.y.y.y(IP)的http服务发起访问,ip地址和端口都是很明确的所以ip头和tcp头构造没有问题,那如何获取Mac地址构造Eth头呢

x.x.x.x主机先看y.y.y.y是否是同子网ip
同:查找本地MAC地址表中是否有y.y.y.y对应的MAC地址
有:则直接使用
没有:则对y.y.y.y发起ARP
ARP查看本地MAC地址表中是否有给定的ip对应的mac地址
  有则:向该MAC地址发送ARP查询包,
  没有:则向ff:ff:ff:ff:ff:ff广播ARP查询包 ( ff:ff:ff:ff:ff:ff通常是向服务器广 播询问IP对应的MAC。)
不同:不同子网则查找本地MAC地址表中是否有网关ip对应的MAC地址
有则直接使用
没有则对网关ip发起ARP

过滤:eth.type ==0x0806

Oneplus手机开热点(移动数据关闭状态),电脑连接oneplus热点

Oneplus 热点发ARP请求问ip为192,168,43.61的Mac地址是多少?

电脑回复ARP说我的ip就是192.168.43.61,我的MAC地址是ac:ed:5c:a3:fd:77

wireshark抓dns包 wireshark抓包dns解析_域名服务器

Opcode为1表示这是一个请求。

指向性查询包是MAC地址表中记录的mac,广播性查询包是00:00:00:00:00:00。(注意区分ARP头和Eth头,指向性查询包Eth头的dst mac是MAC地址表中记录的mac,而广播性查询包是ff:ff:ff:ff:ff:ff

wireshark抓dns包 wireshark抓包dns解析_DNS_02

opcode现在是2表示这是一个响应而不是请求。

wireshark抓dns包 wireshark抓包dns解析_DNS_03

也就是说我们现在有了192.168.43.61主机的MAC地址
有一种情况是:这个数据包的目的地址是ff:ff:ff:ff:ff:ff,这是一个广播地址,会发送到当前网段的所有的设备,这个数据包中以太网的源地址就是我们的MAC地址。这个ARP数据包列出了发送方的ip地址和MAC地址 ,以及接收方的ip地址,但接收方的MAC地址是未知的,所以是00:00:00:00:00:00;
补充说明
Arp -a //ARP缓存列表
可以查看mac地址表(IP地址-MAC地址”的对照表)

ARP只有三类数据包但他们共用一个数据包格式:指向性查询包,广播性查询包和响应包。
指向性查询包Target hardware address(THA)字段是原来记录的Mac地址,而广播性查询包是00:00:00:00:00:00;
查询包与响应包的区别是查询包Operation字段值为1响应包中Operation字段值为2。
{不管是指向应查询还是广播查询,响应包都是指向性的而不是广播,使用wireshark你可以截获各个地址发出的广播查询包但只能截获自己地址的响应包}

无偿的ARP (发送方的IP地址和目标IP地址是相同的)

大多数情况下,一个设备的IP地址是可以改变的。当这样的改变发生后,网络主机中缓存的IP和MAC地址映射就不再有效了。为了防止造成通信错误,无偿的ARP请求会被发送到网络中,强制所有收到它的设备去用新的IP和MAC地址映射更新缓存。(于这个ARP数据包时未经请求的,却导致客户端更新ARP缓存,所以会称之为无偿。)

这个数据包是以广播的形式发送,以便网络上的所有主机都能收到它

特点就是发送方的IP地址和目标IP地址是相同

这个数据包被网络中的其他主机接收到之后,它会让这些主机更新映射表

ARP协议组成

wireshark抓dns包 wireshark抓包dns解析_域名服务器_04

DNS协议

  简单理解DNS功能是把域名转成IP地址,我们先发送一个NDS请求数据包到本地域名服务器去找,找不到我们就去根域名服务器去找,根域名找不到我们再把顶级域名服务器地址回复给本地域名服务器,然后本地域名服务器到顶级域名服务器去查询,如果依然找不到,同理,再到权限域名服务器去找

过滤:dns

  最后面的Address是表示解析到的IP地址,这里我们看到是的194.66.233.215我们还看到了Type,也就是资源记录的类型,一般A说明主机是IPv4,AAAA说明主机是IPv6

域名解析过程

wireshark抓dns包 wireshark抓包dns解析_IP_05


查询类型 A:ipv4 AAAA:ipv6

wireshark抓dns包 wireshark抓包dns解析_域名服务器_06

DNS出错例子

手机开热点,中途把数据开关关闭

wireshark抓dns包 wireshark抓包dns解析_DNS_07

DNS请求

wireshark抓dns包 wireshark抓包dns解析_域名服务器_08

DNS响应

wireshark抓dns包 wireshark抓包dns解析_IP_09

UDP or TCP ??

wireshark抓dns包 wireshark抓包dns解析_IP_10

域名概念
因特网在命名的时候采用了层次结构的命名方法,
每一个域名(本文只讨论英文域名)都是一个标号序列(labels),用字母(A-Z,a-z,大小写等价)、数字(0-9)和连接符(-)组成,标号序列总长度不能超过255个字符,
它由点号分割成一个个的标号(label),每个标号应该在63个字符之内,每个标号都可以看成一个层次的域名。
级别最低的域名写在左边,级别最高的域名写在右边。
域名服务主要是基于UDP实现的,服务器的端口号为53。
比如:本网站的域名 jocent.me,由点号分割成了两个域名jocent 和 me,