蓝队监测必备技能--wireshark流量分析

发布时间:2022-02-09 03:01:32 作者:Potato 阅读量:7030

<h4 style="margin-top:30px;margin-bottom:15px;color:#000000;font-weight:bold;padding:0px;font-family:Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "" content"=""> 这篇文章主要针对新手蓝队做监测的小伙伴们。很多小伙伴在做监测的时候只会单纯的看告警,封ip,而对告警的流量包并不太会分析。这篇文章就带你彻底解决不会分析流量包的烦恼。

OSI网络模型

1、OSI模型的划分

关于OSI网络模型的由来,这里不过多解释,感兴趣的小伙伴可自行学习。这里仅针对数据包中常见的TCP/IP 5层模型的数据包进行分析。

2、数据段封装与解封装

上图表示一个数据包从上层到下层封装的完整结构。

OSI详解

1、数据链路层

1.1、数据链路层概述

数据链路层是网络模型中的第二层!

数据链路层的传输单元:帧

数据帧主要负责在(以太网Ethernet == 局域网LAN == 内网)中进行通信。

1.2、帧结构

数据链路层的协议:MAC子层协议

MAC子层协议:封装帧头和帧尾

帧结构的构成:MAC子层+上三层数据+FCS

MAC子层头部包含:目标MAC地址(6字节) 源MAC地址(6字节) 类型(2字节)

类型的值:作用是区分上层协议的! 0x0800-->IP协议  0x0806-->ARP协议

类型字段的作用:区分上层协议,0806代表上层协议是ARP协议,0800代表上层是IP协议

帧尾:FCS(Frame Checksum Sequence)=帧校验序列,长度4个字节 FCS作用:对整个帧进行序列校验,可以检测帧在传输过程中是否发送错误 一个帧是有最大承载能力限制的。一个帧的最大承受能力叫MTU值=1500
帧结构最终效果图:

2、网络层

IP协议分析

2.1、IP包结构

首部长度:来标识IP包头的长度,20-60字节

TTL:Time To Live

生存时间,单位为跳数,作用是防止数据包再网络中永久的循环。TTL范围:1-255 windows系统TTL一般为128 linux系统一般为1-128之间,如56,64 如果返回地址是255/254,说明这个地址是在企业级的路由器上,也就是网关

协议号:作用是区分上层协议的,6代表TCP,17代表UDP,1代表同层的ICMP协议

总长度:上三层的总长度/IP包的总长度 当总长度超过1500字节,需要进行IP分片

标识符:区分不同的IP分片数据流!

标志:xxx共3位。第一个x,国际组织没有启用该位功能,保留位。 第二个X,为0代表进行了IP分片 为1代表没有分片 ·· 第三个x,为1代表还有后续数据,0代表最后一个数据了! 段偏移量:决定了IP分片的先后顺序!

3、传输层

3.1、TCP协议分析

TCP协议概述
TCP协议属于4层传输层协议! 传输层包括两大协议:TCP 和 UDP
TCP与UDP协议的区别
TCP协议:面向连接的服务(重传机制)、可靠传输数据、速度慢 UDP协议:无连接服务、不可靠、速度快· TCP与UDP的共同作用:通过源与目标端口号,来完成进程到进程的通信
TCP段结构

源端口号:一般客户机的源端口号都是随机的,且一般都是50000以上!

目标端口号:一般服务器上的目标端口号都是固定,如80、443、23、53

端口号范围:0-65535 0与65535有特殊用途、一般1-65534可用 1-1024区间基本被国际标准组织占用分配给了固定的服务器、如20、21、80、443、53、67、68等等

序号:seq,对每个报文字节的编号

确认号:ack,确认对方的报文

六位控制位:

SYN:请求建立连接位!!

FIN:请求断开连接位!!

RST:(Reset)重置位!!(强制断开位!!)

ACK:确认控制位!当ACK=1时,ack有效,当ACK=0,ack无效

PSH:push,推送位!当PSH=1时,代表有上层数据,需要推送数据到上层,反之为没有!

URG:urgen,紧急位!URG=1时,代表紧急数据需要第一时间推送给应用层,需要配合紧急指针完成工作!

窗口大小windows:用来做流量控制!类似与水龙头!

校验和:校验4+5层数据,也就是校验数据段!!!
TCP三次握手

3.2、UDP协议分析

UDP段结构

UDP包头长度:8个字节
UDP长度字段:代表4+5层数据的总长度
UDP校验和:校验4+5层数据,也就是校验数据段!!!也可能本字段是是UDP协议唯一的可靠机制!

wireshare进行流量包分析

1、使用Wireshark打开流量包

通过查看流量包,发现开头很多arp协议的流量。通过info字段查看,这似乎是一个扫描的数据包。不熟悉ARP协议的可以在网上自行学习。

2、通过Wireshark的筛选出攻击者扫描到在线的主机

通过arp.opcode==2筛选出攻击者扫描到在线的主机
在arp的数据包中,应答包的opcode字段为2。 我们发现有三台主机进行了应答,分别为192.168.43.128、192.168.43.130、192.168.43.254.

3、通过Wireshark的筛选出攻击者扫描到的开放端口

因为tcp进行连接的时候会有一个tcp三次握手,tcp三次握手为客户端先向目标发送一个syn=1,如果目标收到后则会回复一个syn=1和ack=1,然后客户端收到后回复一个ack=1。通过这一点,我们可以利用目标机的回复包进行筛选, tcp.flag.ack==1 && tcp.flags.syn==1。

4、继续查看流量包,发现里面有ftp的流量

5、分析ftp有没有登陆成功,ctrl+f进行全局搜索

选择字符串搜索,可以搜索关键字password活着user或者Success等。 我这里搜索230,在ftp中,如果登陆成功,服务器会返回230状态码

向上查找数据包,查看是用什么用户名和密码登录的。注意:ftp为明文传输,所以能够查看。

通过数据包发现,ftp登录的用户名为test,密码为test123.

6、继续查看流量包,发现攻击者下载了一个test.tar.gz

7、右键数据包,跟踪tcp流

8、设置查看原始数据

9、另存到电脑

本篇文章简单的介绍了一下wireshark的使用,和一些简单的流量分析方法,希望大家有所收获。


Potato

专注渗透测试技术

全球最新网络攻击技术

支付宝打赏 微信打赏

我要评论

Catfish(鲶鱼) Blog V 4.7.3