sec集训 Day 5
学习内容
- wireshark的使用
- wireshark流量分析
详情
wireshark使用与流量分析
wireshark一款强大的网络封包分析软件。不仅可以进行抓包,还可以对获取的数据进行筛选。
wireshark流量分析
在流量分析前我们先看一下网络模型
再来看看具体的流量分析
网络分包数据主要有这么几部分:序列号;来源ip;目的地ip;协议;大小;信息。
主要来看一下信息中的内容
这段信息包含的内容有:
- 端口信息:由客户端(57678)指向服务端(80)
- 标志位字段:各字段含义如下:
SYN:同步⽐特(Synchronous),SYN置为1,就表示这是⼀个连接请求或连接接受报⽂,通常带有 SYN 标
志的封包表示『主动』要连接到对⽅的意思。。
ACK:确认⽐特(Acknowledge)。只有当ACK=1时确认号字段才有效,代表这个封包为确认封包。当 ACK=0时,确认号⽆效。
FIN:终⽌⽐特(Final),⽤来释放⼀个连接。当FIN=1时,表明此报⽂段的发送端的数据已发送完毕,并要
求释放运输连接。
PSH:(Push function)若为1时,代表要求对⽅⽴即传送缓冲区内的其他对应封包,⽽⽆需等缓冲满了
才送。
RST:复位⽐特(Reset) ,当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必 须释放连接,然后再重新建⽴运输连接。 SYN:同步⽐特(Synchronous),SYN置为1,就表示这是⼀个连接请求或连接接受报⽂,通常带有 SYN 标
志的封包表示『主动』要连接到对⽅的意思。
URG:紧急⽐特(urgent),当URG=1时,表明紧急指针字段有效,代表该封包为紧急封包。它告诉系统此 报⽂段中有紧急数据,应尽快传送(相当于⾼优先级的数据), 且上图中的 Urgent Pointer 字段也会被启⽤。
实例分析
三次握手开始连接
在一次文件传输前都会有三个包表示着传输的开始:
- 由客户端发向服务端的“请求”文件【SYN】
- 由服务端发向客户端的“确认和询问”文件【SYN,ACK】
- 由客户端发向服务端的“确认”【ACK】
这三次的信息交流称为:三次握手连接
之后HTTP GET请求的包带有实际内容。
四次挥手断开连接
TCP 的连接的拆除需要发送四个包,因此称为四次挥⼿(Four-way handshake),也叫做改进的三次 握⼿。客户端或服务器均可主动发起挥⼿动作,在 socket 编程中,任何⼀⽅执⾏ close() 操作即可产 ⽣挥⼿操作。
- 第⼀次挥⼿(FIN=1,seq=x) 假设客户端想要关闭连接,客户端发送⼀个 FIN 标志位置为1的包,表示⾃⼰已经没有数据可以发送
,但是仍然可以接受数据。 - 第⼆次挥⼿(ACK=1,ACKnum=x+1) 服务器端确认客户端的 FIN 包,发送⼀个确认包,表明⾃⼰接受到了客户端关闭连接的请求,但还没有准备好关闭连接。
- 第三次挥⼿(FIN=1,seq=y) 服务器端准备好关闭连接时,向客户端发送结束连接请求,FIN 置为1。
- 第四次挥⼿(ACK=1,ACKnum=y+1) 客户端接收到来⾃服务器端的关闭请求,发送⼀个确认包,并进⼊ TIME_WAIT 状态,等待可能出现 的要求重传的 ACK 包。 服务器端接收到这个确认包之后,关闭连接,进⼊ CLOSED 状态。 客户端等待了某个固定时间(两个最⼤段⽣命周期,2MSL,2 Maximum Segment Lifetime)之 后,没有收到服务器端的 ACK ,认为服务器端已经正常关闭连接,于是⾃⼰也关闭连接,进⼊ CLOSED 状态。
数据过滤
表达式规则:
-
协议过滤:只显示要求的格式
-
ip过滤:
ip.src 192.168.1.102 显示源地址192.168.1.102的包
ip.dst192.168.1.102, ⽬标地址为192.168.1.102的包 -
端口过滤:tcp.port ==80, 显示端口80的包
tcp.strport ==80,源端口80
tcp.dstport ==80,目的地端口80 -
HTTP模式过滤:http.request.method==“GET”, 只显示HTTP GET⽅法的。
总结
今天的学习内容大部分还是要靠自主学习,除了wireshark的流量分析,其他的内容都是需要靠自己自学。