wireshark抓包简单流程介绍

  • A+
所属分类:首页

第一章:抓包前准备

1:数据包嗅探器工作原理

第一步:收集,数据包嗅探器从网络线缆上收集原始二进制数据。通常情况下,通过将选定的网卡设置成混杂模式来完成抓包。在这种模式下,网卡将抓取一个网段上所有的网络通信流量,而不仅是发往它的数据包。

第二部:转换,将捕捉的二进制数据转换成可读形式。

第三部:分析,需要我们运用网络知识对捕让获的数据包进行深入分析,wireshark提供了一些分析工具以及图形工具可以帮助我们分析,最终解决故障问题。

2:网络通信原理

1) 协议:现代网络是由多种在不同平台上的异构系统组成的。为了使它们之间能够相互通信,我们使用了一套共同的网络语言,并称之为协议。常见的网络协议包括传输控制协议(TCP)、互联网协议(IP)、地址解析协议(ARP)和动态主机配置协议(DHCP)。

2) 七层OSI参考模型:是按网络通信过程分的7个不同层次。

应用层→表示层→会话层→传输层→网络层→数据链路层→物理层

OSI参考模型各个层次上的典型网络协议
层次: 主要协议:
应用层 HTTP、SMTP、FTP、Telnet
表示层 ASCII、JPEG、MPEG
会话层 NetBIOS、SDP、SAP
传输层 TCP、UDP
网络层 IP
数据链路层 Ethernet、FDDI

3:根据网络环境选择抓包方式

1) 集线器式网络

集线器是工作在0si中的物理层的转发设备,它从一个端口接受到的数据包会转发到设备上的其他每个端口。在这种环境中我们只需将wireshark连接到集线器的任意一个空闲端口上,就能捕获所有这个区域的数据包。

2) 交换式网络

与集线器相同,交换机也是用来中继数据包的。但与集线器不同的是,交换机并不是将数据广播到每一个端口,而是将数据发送到目的计算机所连接的端口上。

所以当你将嗅探器连接到交换机的一个端口时,你只能看到广播数据包和自己电脑的流量。这时想在一个交换式网络中从一个目标设备捕获网络流量的基本方法有如下4种:端口镜像、集线器接出、使用网络分流器、ARP欺骗攻击。

重点讲下arp欺骗:在同一网段内通信都是先查找自己计算机的arp缓存,查看对方的mac地址,如果不存在,它会发一个arp广播的请求报文,请求对方的mac地址。(由于arp报文是无需请求验证的,所以任意一台主机发出的arp消息无需验证都会被记录到缓存中,这就给arp欺骗成为了可能。不像tcp三次握手)

 

第二章:抓包流程

一.输入

1:选择需要抓包的网卡

1)本地:捕获—选项—选择接口

2)远程:捕获—选项—管理接口—远程接口—添加远程主机地址及端口

注意:此种方式要求远程主机开启抓包服务

2:自定义捕获过滤器

1) 捕获过滤器应用于WinPcap,并使用BPF语法。这个语法被广泛用于多种数据包嗅探软件,主要因为大部分嗅探软件都是依赖于使用BPF是libpcap/WinPcap库。

2) BPF限定词:

① Type(host,net,port)   指出名字或数字所代表的意义

② Dir(src,dst)          指明传输的方向

③ Proto(ether,ip,arp,udp,tcp) 指出所要匹配的协议

三种逻辑运算符:连接运算符与(&&) 、选择运算符或(||) 、否定运算符非(!)

重点提下协议域过滤器:BPF语法提供给我们的一项强大功能,就是我们可以通过检查协议头中的每一字节来创建基于那些数据的特殊过滤器。

①基于icmp协议域过滤:icmp[0]==0 表示过滤出echo回复报文

Icmp[0]==8 表示过滤出echo请求报文

②基于tcp协议域过滤:  tcp[13]&32==32 表示过滤出设置了URG位的tcp数据包

Tcp[13]&16==16 表示过滤出设置了ACK位的tcp数据包

tcp[13]&8==8   表示过滤出设置了PSH位的tcp数据包

tcp[13]&4==4   表示过滤出设置了RST位的tcp数据包

tcp[13]&2==2   表示过滤出设置了SYN位的tcp数据包

tcp[13]&1==1   表示过滤出设置了FIN位的tcp数据包

二.输出

1.设置文件输出路径,可以是单一文件也可以是文件集

2.可以根据捕获的文件大小和捕获时间来自动创建文件

3.可以使用环形缓冲器控制输出文件的数量

三.选项

1.显示选项:最好关闭实时更新和自动滚屏选项,除非你一定需要实时查看或者

实时流量小

2.可以根据需求自定义捕获停止条件

3.MAC地址解析:这种类型的名字解析使用ARP协议,将数据链路层MAC地址,                         例如 D0-7E-35-B7-E6-88,转换到网络层地址,如 10.1.1.2。

4:解析网络名称:这种类型的名字解析将一个网络层地址,如 111.13.101.208这  个IP地址,转换到易读的DNS名称如www.baidu.com

5:解析传输层名称:这种类型的名字解析是将一个端口号转换成一个与其相关的    名字。如将端口80显示位Http。

第三章:工具栏详解

1:wireshark主窗口

共有三个面板:Packet List(数据包列表)、Packet Details(数据包细节)、Packet Bytes(数据包字节)

2:文件

1)文件—合并:某些类型的工作需要能够合并多个捕获文件,一般在比较两个数据流或者合并单独捕获的同一数据流量时比较常见

合并的方法:先打开一个想要合并的文件—文件—合并

合并有三种方式:第一种,将所选文件添加到当前文件的前面。第二种,将所选文件放在

当前文件的后面。第三种,根据时间戳的先后来合并

2)文件----导出特定分组

当捕获的文件很大时,这是一个很好变瘦的方法。你可以根据需要选择只保存一定序号 范围的数据包、经过 过滤器筛选出来的数据包、标记了的数据包

4:编辑----首选项

共有7个主要部分

⑴外观:这些选项决定了wireshark将如何显示数据,可以根据个人爱好自行选择调整 。

比如主窗口的布局、列字段选取、字体与颜色等

⑵捕获:这些选项可以让你对你捕获数据包的方式进行特使的设定。比如默认接口的选择、是否使用混杂模式、是否实时更新分组列表等

⑶过滤器表达式:

⑷Name Resolution

⑸Protocols

⑹Statistics

⑺高级

5:⑴视图----着色分组列表:着色分组列表

⑵视图----着色规则:可以自定义自己的着色规则或者修改已定义规则。这样可以让你在处理某些协议时更高效。

6:统计

1)统计—端点:这里给出了每个端点的许多有用统计数据,包括每个端点的地址    传输发送的数据包数量和字节数。你可以将特定的数据包过滤出来,也可以进       行着色

2)统计—会话:以地址A和地址B显示了会话中端点的地址,以及每个设备发送

或接收到的数据包数和字节数。

3)统计—协议分级:当在与特别大的捕获文件打交道时,通过查看这个窗口你可    以很清楚地知道这些流量的协议分布情况,从而定位问题。

4)统计—分组长度:从数据包的大小可以得到很多信息。在正常情况下,一个以    太网上的帧最大长度为1518字节,除去以太网、IP以及TCP头,还剩下1460    字节以供应用层协议的头或者数据使用。正常情况下,以太网头是14字节,IP    头最小20字节,没有数据和选项的TCP头20字节。

5)统计—I/O图表:I/O图表可以让流量以图形的方式展示出来,让你对网络的吞    吐量有个更直观的了解。你可以利用这些找到数据流量吞吐的峰值,也可以自    定义找出所关心的数据流量图。

6)统计—TCP流图形:

①往返时间:就是确认一个数据包已被成功接收所需的时间。通常被用来找到      通信中的慢点或者瓶颈,以确定是否存在延迟。

②:

③:

7)统计—流量图:流量图是以列的方式将主机之间的连接显示出来,并将流量组    织到一起,以便直观解读。

7.分析

分析—追踪流:它能够将TCP流重组成容易阅读的格式。这在查看HTTP、FTP等纯 文本应用层协议时非常好用。窗口中的文字以两种颜色显示,其中红 色表示从地址前往目标地址的流量,蓝色相反。一般红色代表客户端, 蓝色代表服务器端。

3) 分析—专家信息:

①错误:数据包中的错误,或者解析器解析时是错误

②警告:不是正常通信中的异常数据包

③注意:正常通信中的异常数据包

④对话:关于通信的基本信息

第四章:常见底层协议

4.1.Arp地址解析协议:

1)两种地址:网络上的通信会使用到逻辑地址(IP)和物理地址(MAC),逻辑地址使得不同网络以及没有直连的设备之间能够进行通信。物理地址则是用来在单一网段中交换机直接连接的设备之间进行通信。在大多数情况下,正常通信是需要这两种地址协同工作的。

2)当不同网络中的两台主机想要通信时,若已知对方ip,那还需要对方主机的mac地址就能正常通信了。这时就用到arp地址解析协议了,它可以将某ip解析成对应的mac地址。

3)arp头部:

硬件类型 协议类型 硬件地址长度 协议地址长度 Op 发送方硬件地址 发送方协议地址 目标硬件地址 目标协议地址
2 2 1 1 2 6 4 6 4

 

4.2. IP协议:

1)ip协议工作在OSI模型的第3层,主要目的是使不同网络间能互联通信。

2)IPv4头部:

版本号:IP所使用的版本

首部长度:IP头长度

服务类型:优先级标志位和服务类型标志位,被路由器用来进行流量的优先排序

总长度:IP头与数据包的长度

标识符:一个唯一的标识数字,用来识别一个数据报或者被分片数据包的次序。

标志位:用来标记一个数据包是否是一组分片数据包的一部分

MF=0 表示是最后一个分片 MF=1表示后面还有分片

DF:只有当DF=0时才允许分片

分片偏移:一个数据包是一个分片,这个域中的值就会被用来将数据包以正确的     顺序重新组装

存活时间:用来定义数据包的生存周期

协议:用来识别在数据包序列中上层协议数据包的类型

首部校验和:一个错误检测机制,用来确认ip头的内容没有被损坏或者篡改

选项:保留作额外的ip选项,它包含着源站选路和时间戳的一些选项

数据:使用IP传递的实际数据

4.3 TCP协议

1)tcp提供的是可靠的端到端传输,工作在OSI的第4层。它能够处理数据的顺序和错误恢复,并且最终能保证数据能够到达目的地。很多应用层协议都是依赖于TCP和IP进行传输的。如:………..

2)TCP头部

TCP
偏移位 0-3 4-7 8-15 16-31
0 源端口 目的端口
32 序号
64 确认号
96 数据偏移 保留 标记 窗口大小
128 校验和 紧急指针
160 选项

源端口:用来传输数据包的端口。

目的端口:数据包将要被发送的端口。

序号:这个数字用来表示一个TCP分段。这个域用来保证数据流中的数据没有缺失

确认号:表示期望收到对方下次发送的数据的序号。

数据偏移位:表示数据开端处离TCP报文段的偏移量,实际上就是TCP报文头的长度。 因为TCP首部长度是可变的,所以这个字段是必须要的。

标记:W:CWR 拥塞窗口减少。

E:ECE 显示拥塞提醒回应

U:URG 紧急指针

A:ACK  应答

P:PUSH 推送,数据包立即发送,不需要等到缓存满了再发

R:RST  复位,中断一个连接

S:SYN  同步,表示开始会话请求

F:FIN   结束,结束会话

窗口大小:表示TCP接收者缓冲区的字节大小。

校验和:用来保证TCP头部和数据的内容在抵达目的地时的完整性。

紧急指针:如果设置了URG位,这个域将被检查作为额外的指令,告诉CPU从数据包   的哪里开始读取数据。

选项:各种可选的域,可以在TCP数据包中进行指定。

实例:TCP三次握手

TCP重置:理想情况下,每个连接都会以TCP终止来正常结束,但在现实中,连接可能会突然断掉。这可能是遇到了攻击者的端口扫描,或者是主机配置错误。在这些情况下就需要使用设置了RST标志的TCP包,用来中止或者拒绝连接请求

4.4 UDP协议

1)UDP是一种尽力服务,通常被称为无连接协议,工作在OSI的第4层。

如果说TCP是为了满足带有内在错误检测的可靠性数据传输,那么UDP主要是为了提供高速的传输。但高速是以牺牲可靠为代价的,但依赖于UDP的协议通常都会有其内置的可靠性服务。举例说,应用层协议DNS和DHCP需要依赖数据包在网络上传输的速度,其使用UDP作为它们的传输层协议,但是它们自己会进行错误检查及重传计时。

UDP头
偏移位 0-15 16-31
0 源端口 目的端口
32 数据包长度 校验和

3) UDP报文头:

4.5 ICMP协议

1)ICMP是Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。我们在网络中经常会使用到ICMP协议,比如我们经常使用的用于检查网络通不通的Ping命令,这个"Ping"的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。

2)ICMP报文头

ICMP头
偏移位 0-15 16-31
0 类型 代码 校验和
32 可变域

类型:ICMP消息基于RFC规范的类型或分类

代码:ICMP消息基于RFC规范的子类型

校验和:用来保证ICMP头和数据在抵达目的地时的完整性

可变域:依赖于类型和代码域的部分

常见的是:type 8 code 0,表示回显请求(ping)

附录:ICMP类型列表

管理员

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: