《Wireshark数据包分析实战》读书笔记

1、OSI参考模型中的特殊功能:

表示层(第六层):进行用来保护数据的多种加密和解密操作。

会话层(第五层):负责以全双工或者半双工的方式来创建会话和关闭连接。

传输层(第四层):提供面向连接和无连接的网络协议,某些防火墙和代理服务器也工作在这一层。

网络层(第三层):数据在物理网络中的路由转发,路由器工作在这一层。

数据链路层(第二层):提供通过物理网络传输数据的方法,网桥和交换机工作在这一层。

2、基本概念

    OSI中的每一层只能和直接的上层和下层进行通信

协议栈中的每层协议都负责在传输数据上增加/剥离一个协议头或者协议尾

协议数据单元(PDU)=正在发送的网络数据+增加的头部协议信息+增加的尾部协议信息

数据包指的是完整的PDU,包括所有层次协议信息

路由器在网络间引导数据包流向的过程叫做路由

3、流量分类

广播数据包会被发送到一个网段上的所有端口,第二层中MAC地址为FF: FF: FF: FF: FF: FF是保留的广播地址,第三层中一个IP网络范围中最大的IP地址是被保留作为广播地址使用

多播将单一来源数据包同时传输给多个目标的通信方式,通过避免数据包的大量复制来减少网络带宽

单播数据包从一台计算机直接传输到另一台计算机

4、混杂模式

允许网卡能够查看到所有流经网络线路数据包的驱动模式

可视范围是数据包嗅探器中能够看到通信流量的主机的范围

5、交换式网络

在一个交换式网络中从一个目标设备捕获网络流量的基本方法有四种

(1)端口镜像

必须可以访问目标设备所连接的交换机,这个交换机也必须支持端口镜像的功能,以及一个空闲的端口,把端口镜像复制到另外一个端口

(2)集线器接出

将目标设备和分析系统分段到同一网络段中,然后把他们直接插在一个集线器上

连上两台电脑,看这两台电脑是否能嗅探对方与网络其他设备之间的网络通信

(3)使用网络分流器

    在目标设备和交换机中间加一个网络分流器

(4)ARP欺骗攻击

Cain&Abel软件

利用这项技术来对网络流量进行重路由的时候,素有的流量都必须经过你的嗅探分析系统,所以你的嗅探分析系统就是整个链路的瓶颈,这种流量重路由会对你的系统造成一种拒绝服务攻击式的影响

6、着色规则

    View-ColoringRules可以调整着色规则

7、查找数据包

找到满足条件的数据包,Ctrl-N找到下一个匹配的数据包,Ctrl-B找到上一个匹配的数据包

用Ctrl-M标记数据包,再摁Ctrl-M就可以取消

View-TimeDisplayFormat

8、数据包的相对参考时间

将一个数据包设为时间参考,要先选定这个数据包,然后选择Edit-SetTimeReference,取消选择也是

9、修改内核缓冲区大小

    Capture-Options可以设定在写入磁盘之前可以存储在内核缓冲区内所捕获数据的大小

10、捕获文件设定

把数据储存在文件集中需要勾选MultipleFiles选项

勾选Next File Every选项,上面是基于文件大小的触发器,下面的是基于时间的触发器,输入条件就可以设定捕获文件的触发器

11、显示选项

    Update List ofPackets in Real Time和AutomaticScrolling in Live Capture都被选中并且捕获一定数据包时,将会对处理器产生相当大的负担,除非一定要实时查看数据包,否则将这两个选项都取消

12、显示过滤器

逻辑操作符:and(两个条件同时满足)、or(其中一个条件被满足)、xor(有且仅有一个条件被满足)、not(没有条件被满足)

13、常用显示过滤器

排除RDP流量→!tcp.port==3389

排除ARP流量→!arp

所有HTTP流量→http

文本email流量→smtp||pop||imap

文本管理流量→tcp.port==23||tcp.port==21

具有SYN标志位的TCP数据包→tcp.flags.syn==1

具有RST标志位的TCP数据包→tcp.flags.rst==1

14、保存过滤器

(保存捕获过滤器规则)Capture→Capture Filters→New→在FiltersString中输入一个实际的过滤器表达式→Save

(保存显示过滤器规则)Analyze→DisplayFilter→New→在FiltersString中输入一个实际的过滤器表达式→Save

15、查看端点

    Statistics→Endpoints给出每个端点的统计数据,可以把列表缩小到某一协议上,勾选Name resolution可以在端点窗口开启名字解析功能

16、查看网络会话

    Statistics→Conversations打开会话窗口,右键单击一个特定的会话,可以创建一些过滤器

17、基于协议分层统计的数据

    Statistics→Protocol Hierarchy打开协议分层统计窗口,可以提供一个网络中活动类型的直观快照。IT部门网段的流量中通常有管理协议,例如ICMP或SNMP的数据,订单管理部门通常有着大量的SMTP流量。

18、名字解析

Capture→Options开启名字解析,一共有三种类型的名字解析可以使用

MAC地址解析:将数据链路层MAC地址转换到网络层地址,如果转换失败会将前三个字节转换到设备的IEEE指定制造商的名字

网络名字解析:解析一个网络层地址,转换成一个易读的DNS名字

传输名字解析:尝试将端口号转换成一个与其相关的名字(例:端口80转换成http)

19、强制解码

选择其中一个你认为解码错误的数据包,选择DecodeAs,在其中选择destination(端口号),并选择要修正的协议

DecodeAs对话框中单机ShowCurrent可以显示到目前为止所有进行的强制解码操作,可用Clear按钮清除

20、跟踪TCP流

选择任何一个TCP或者HTTP数据包,右键单击选择Follow TCP Stream,TCP流就会被单独列出

红色标明源地址发往目标地址的流量,蓝色标明相反的方向,即从目的地址发往源地址的流量,颜色标记以哪方先开始通信为准

21、数据包长度

较大的数据包是用来传输数据的,较小的数据包是协议控制序列

以太网头是14字节(包含4字节的CRC)、IP头最小20字节,没有数据以及选项的TCP数据包也是20字节。典型的TCP控制数据包,例如TCP、ACK、RST、FIN数据包,大约是54字节。

22、IO图

任选一个数据包然后选择Statistics→IO Graphs就可以看见电脑从互联网下载文件时IO图的样子

下方的配置选项可以配置过滤器,只显示固定流量

23、数据流图

    数据流图用于将连接可视化,以及将一段时间内的数据流显示出来,一般以列的方式将主机之间的连接显示出来,并将流量组织到一起。

    选择Statistics→FlowGraph就可以创建一个数据流图

24、ARP

    TCP/IP网络(基于IPv4)中用来将IP地址解析为MAC地址的过程叫地址解析协议(AddressResolutionProtocol)。这个解析过程只使用两种数据包,一个ARP请求与一个ARP响应

25、ARP头

硬件类型

协议类型

硬件地址长度

协议长度

操作类型

发送方的硬件地址(0-3字节)

源物理地址(4-5字节)

源IP地址(0-1字节)

源IP地址(2-3字节)

目标硬件地址(0-1字节)

目标硬件地址(2-5字节)

目标IP地址(0-3字节)

    数据包中操作码(Opcode)用1表示请求,2表示响应

26、互联网协议(IP)

IP地址是一串32位的地址,用点分四组表示

每个IP地址都包含着两个部分:网络地址和主机地址,网络地址用来标识设备所连接的局域网,主机地址标识这个网络中的设备本身

子网掩码用来标识IP地址中哪一部分属于网络地址,哪一部分属于主机地址。子网掩码也是32位长,设为1的每一位都标识着IP地址的对应部分是属于网络地址的,设为0的部分则标识着主机地址

    为了简化IP地址和子网掩码,通常写成无类型域间选路的形式,一个完整的IP地址后面加一个/后面是标识IP地址中网络部分位数的数字

27、IP报头

版本(4位)

头长度(4位)

服务类型(8位)

封包总长度(16位)

封包标识(16位)

标志(3位)

片断偏移地址(13位)

存活时间(8位)

协议(8位)

校验和(16位)

来源IP地址(32位)

目的IP地址(32位)

选项(可选)

填充(可选)

数据

存活时间Time to live,标识数据包能够经过的最大路由数量

一个数据包的分片主要基于第二层数据链路协议所使用的最大传输单元(MTU)的大小。大多数情况下第二层使用的数据链路协议是以太网,以太网的默认MTU是1500字节

28、传输控制协议(TCP)

来源端口(2字节)

目的端口(2字节)

序号(4字节)

确认序号(4字节)

头长度(4位)

保留(6位)

URG

ACK

PSH

RST

SYN

PIN

窗口大小(2字节)

校验和(16位)

紧急指针(16位)

选项(可选)

数据

TCP的目的是为数据提供可靠的端到端的传输

TCP三次握手,第一次发送SYN标志,并包含了在通信过程中会用到的初始序列号和最小分段大小,目标主机回复一个类似于设置了SYN和ACK标志以及包含了它初始序列号的数据包,最后再发送一个仅设置了ACK标志的数据包

取消TCP数据包序列号相对值的显示,改为绝对值,Edit→Preferences展开Protocols并选择TCP,然后取消勾选RelativeSequenceNumbers andWindowScaling框,点击OK即可

29、基于SSL协议的名称是TLSv1

    加密后传输的数据在Secure Sockets Layer-TLSv1Record Layer – Encrypted Application Data中可以看到密文

30、GET请求与结束

    Info中GET / HTTP/1.1表示向服务器的请求开始,传输结束后,HTTP/1.0 200 OK表示服务器结束传输。

31、统计会话

    Statistics→Conversations的标签页中,每种协议后面的数字都是有几个这种协议的会话。

32、查看HTTP请求

    Statistics→HTTP→Requests,可以看到DNS请求代表的所有域名

33、TCP连接的标志位

    RST标志的数据包是用来结束TCP连接的。

34、UDP环境掺杂TCP

    DNS通常会使用UDP,但当效应超过一定大小时就使用TCP,在这种情况下,我们会看到一些触发TCP流量的UDP流量。另外TCP也用于DNS的区域传送过程,使资源记录在DNS服务器之间传递。

35、TCP重传

每当使用TCP传输数据包时,就启动重传计时器,从发送数据包到接收的ACK确认之间的时间被称为往返时间(RTT),将若干个这样的时间平均下来,就得到重传超时(RTO)。

最大重传次数取决于主机配置,Windows主机最多重传5次,Linux主机最多重传15次。

36、ARP地址解析协议

    TCP/IP网络(基于IPv4)中用来将IP地址解析为MAC地址的过程称为地址解析协议。其解析过程只使用两种数据包,一个ARP请求和一个ARP响应。

37、ARP报头结构

硬件类型

协议类型

硬件地址长度

协议长度

操作类型

发送方的硬件地址(0-3字节)

源物理地址(4-5字节)

源IP地址(0-1字节)

源IP地址(2-3字节)

目标硬件地址(0-1字节)

目标硬件地址(2-5字节)

目标IP地址(0-3字节)

38、TCP终止

TCP握手终止时,主机通过发送设置了FIN和ACK标志的TCP数据包,告诉另一台主机通信的完成,这台主机以一个ACK数据包响应,随后传输自己的FIN/ACK数据包,主机响应一个ACK数据包,然后结束通信过程

39、TCP重置

    RST标志用来指出连接被异常终止或拒绝连接请求

40、用户数据报协议(UDP)

    无连接协议意味着不可靠服务,依赖于UDP的协议通常都会有其内置的可靠性服务,或者使用ICMP的一些功能来保证可靠性。DNS和DHCP高度依赖数据包在网络上传输的速度,使用UDP作为它们的传输层协议,但是它们自己进行错误检查和重传计时。

41、ICMP类型

    ICMP数据包的结构取决于它由Type和Code域中的值所定义的用途。Ping命令用来检测一个设备的可连接性,基于ICMP。有些防火墙会限制设备对ICMP数据包的响应,以防止攻击者用ping命令判断主机是否可达。Ping只是一个工具的名字,用来发送ICMP请求数据包。Echo请求所用的随机文本可用来推测设备所使用的操作系统。

42、路由跟踪

    Tracert [IP地址] 就会列出所跳转经过路由的信息

43、DHCP续租

    DHCP主要的任务是在续租过程中向客户端分配IP地址,续租过程通常被称为DORA过程,因为其使用了4种类型的DHCP数据包,发现(Discover)、提供(Offer)、请求(Request)、确认(Acknowledge)

44、域名系统DNS

    DNS服务器需要查找一个IP地址时,它会代表发出请求的客户端向另一个DNS服务器查询,这个过程叫做递归查询。

    在拥有多个DNS服务器的组织中,管理员通常都会配置一台备用DNS服务器,来维护一份主服务器DNS信息的拷贝,以防止主DNS服务器不可用,主要存在两种区域传送:完整区域传送(AXFR)、增量区域传送(IXFR)

    通过枚举一个DNS服务器,可以得出整个网络的基础结构

45、HTTP

    302响应码是一个常用的重定向手段,这个数据包的Location域知名了客户端被重定向的位置,最后服务器传送一个状态码200。

46、快速重传

    当传输主机收到3个来自接收方的重复ACK时,它假设这个数据包确实在传输中丢失了,并立刻发送一个快速重传。一旦触发快速重传,其他所有正在传输的数据包都要靠边,直到把快速重传的数据包发出去为止。

47、重复的ACK数据包

黑底红字呈现的数据包,展开标题注明了是哪个数据包的重复ACK

当接收到乱序数据包时才触发重复ACK。

48、接收窗口

    接收窗口是数据接收方指定的值,存储在TCP头部中,它告诉发送设备自己希望在TCP缓冲空间中存储多少数据。这个缓冲空间是数据在可以向上传递到等待处理数据的应用层协议之前的临时存储空间。发送发一次只能发送Window Size域指定的数据量。为了传输更多数据,必须清空缓冲区,这就需要接收方发送确认来清理TCP缓冲空间占用。

49、零窗口

    当服务器无法处理客户机发送来的消息时,服务器就会发送一个数据包,指明窗口大小是零。当客户端收到这个数据包时,它会停止所有数据传输,但仍通过传输“保活数据包”保持与服务器的连接。客户端周期性发送保活数据包,以检查服务器接收窗口的状态。一旦服务器能再次处理数据,它会响应一个非零窗口大小以恢复通信。

50、延迟定位框架


51、SYN

    目标端口为113的SYN数据包,通常和Ident协议有关,经常用于IRC的身份识别和验证服务。

52、识别开放和关闭的端口

    在Conversations窗口内,通过对数据包编号排序TCP会话,可以看到,会话中包含5个数据包的端口是开放的,包含两个数据包的端口是关闭的,只有一个数据包的端口不能确定是关闭还是传输过程中丢失。

53、跳频

    传统的无线嗅探只能同时处理一个信道,利用Kismet可以每秒跳跃十个信道,高效嗅探多个信道

你可能感兴趣的:(读书笔记,网络协议,wireshark,Sockets)