还在靠抓包工具吭哧吭哧分析网络问题?OUT啦!今天就来聊聊网络安全界的“显微镜”—— Wireshark。这玩意儿可不是简单的抓包工具,它能把网络世界的数据包扒得底裤都不剩,让你看得明明白白!无论是定位网络故障,还是分析恶意流量,Wireshark 都是你居家旅行、摸鱼必备之良品。
本文将用最通俗易懂的语言,带你玩转 Wireshark,主要内容包括:
1、Wireshark 主界面大揭秘。别再对着一堆按钮发呆了,秒懂每个区域的功能!
2、手把手教你 WireShark 抓包。从入门到入土,啊不,是入门!学会抓包,才能开始分析嘛。
3、Wireshark 过滤器骚操作。数据包太多?不存在的!用过滤器精准定位你想分析的内容,效率提升 N 倍!包括按照协议、端口、主机名,甚至数据包内容进行过滤。
废话不多说,咱们直接上干货!先来认识一下 Wireshark 这款“神器”的庐山真面目。
没错,就是这个界面,是不是感觉有点眼花缭乱?淡定,看完这篇文章,你也能把它玩成俄罗斯方块!
这就是传说中的 Wireshark 主界面!
想开始抓包?So easy!
点击菜单栏的 Capture -> Option,然后勾选你的 WLAN 网卡(具体选哪个,看你电脑用哪个网卡上网,最简单的方法是看你当前 IP 对应的网卡)。 选好之后,点击 Start,Wireshark 就开始帮你“偷窥”网络上的数据啦!
Wireshark 一旦启动,就进入了亢奋的抓包模式,疯狂地捕获着网络中的各种数据包。
接下来,就是见证奇迹的时刻:
1、 执行你想抓包的操作,比如在命令行里 ping 一下 www.baidu.com。
2、 操作完成后,相关的数据包就被 Wireshark 抓取到了。为了避免被其他乱七八糟的数据包干扰,我们可以在过滤栏里设置过滤条件,只看我们关心的内容。比如,输入ip.addr == 119.75.217.26 and icmp
,意思就是:只显示 ICMP 协议,并且源 IP 或目标 IP 是 119.75.217.26 的数据包。
3、 搞定!Wireshark 抓包就是这么简单粗暴!至于更高级的过滤技巧,以及如何查看数据包的详细内容,咱们后面慢慢聊。
Wireshark 抓包界面,信息量有点大!
注意:在数据包列表区,不同的协议会用不同的颜色来区分。想知道这些颜色都代表啥?可以点击菜单栏的 View --> Coloring Rules,里面有详细的说明。
WireShark 的界面主要分为以下几个部分:
- Display Filter (显示过滤器), 顾名思义,就是用来设置过滤条件的,可以帮你快速筛选出想要的数据包。菜单路径:Analyze --> Display Filters。
- Packet List Pane (数据包列表), 这里会显示所有抓取到的数据包,包括编号、时间戳、源地址、目标地址、协议、长度以及数据包信息。不同协议的数据包会用不同的颜色区分显示。
- Packet Details Pane (数据包详细信息), 这个面板是最重要的,选中某个数据包后,这里会显示该数据包的详细信息,包括协议中的每一个字段。
各行信息分别代表:
(1)Frame: 物理层的数据帧概况
(2)Ethernet II: 数据链路层以太网帧头部信息
(3)Internet Protocol Version 4: 互联网层 IP 包头部信息
(4)Transmission Control Protocol: 传输层 TCP 的数据段头部信息,此处是 TCP
(5)Hypertext Transfer Protocol: 应用层的信息,此处是 HTTP 协议
来,仔细看看 TCP 包里都有些啥:
从下图可以看到,Wireshark 捕获到的 TCP 包,每个字段都安排得明明白白。
- Dissector Pane (数据包字节区)。 顾名思义,就是显示数据包的原始字节数据的区域。
Wireshark 过滤器,网络世界的“放大镜”!
刚开始用 Wireshark 的时候,你可能会被海量的数据包淹没,根本找不到自己想要的信息。这时候,过滤器就派上大用场了!它可以帮你从茫茫数据中,快速定位到目标,就像给网络世界装了个“放大镜”。
Wireshark 自带两种类型的过滤器:抓包过滤器和 显示过滤器。
(1)抓包过滤器
菜单路径:Capture --> Capture Filters。 这种过滤器是在抓包之前设置的,可以让你只捕获特定类型的数据包,减少后续分析的压力。
怎么用呢?很简单!在抓包前,设置如下:
ip host 60.207.246.216 and icmp
表示:只捕获主机 IP 为 60.207.246.216 的 ICMP 数据包。效果如下:
(2)显示过滤器
这种过滤器是在抓取数据包之后设置的,可以让你在已有的数据包列表中,根据条件筛选出想要的信息。
举个栗子,如果你在抓包时没有设置任何过滤规则,直接抓取了所有数据包,就像这样:
然后,你 ping 了一下 www.huawei.com,得到的数据包列表是这样的:
可以看到,里面夹杂着各种各样的“噪音”数据包。这时候,就可以使用显示过滤器来提取我们想要的信息。比如,输入ip.addr == 211.162.2.183 and icmp
,然后点击 Apply,就能得到过滤后的结果:
总的来说,如果网络环境比较简单,流量不大,用显示过滤器就足够了。但如果网络环境复杂,流量巨大,最好还是在抓包前设置好抓包过滤器,避免捕获过多的无用数据。
下面我们来详细看一下这两种过滤器的语法和区别。
Wireshark 过滤器表达式,语法是关键!
1、抓包过滤器语法和实例
抓包过滤器的语法由以下几个部分组成:
- Type(类型):host、net、port
- Dir(方向):src、dst
- Proto(协议):ether、ip、tcp、udp、http、icmp、ftp 等
- 逻辑运算符:&& (与)、|| (或)、! (非)
(1)协议过滤
最简单的过滤方式,直接输入协议名即可。
- TCP:只显示 TCP 协议的数据包
- HTTP:只显示 HTTP 协议的数据包
- ICMP:只显示 ICMP 协议的数据包
(2)IP 过滤
host 192.168.1.104
: 过滤所有与主机 192.168.1.104 通信的数据包src host 192.168.1.104
:只过滤源地址为 192.168.1.104 的数据包dst host 192.168.1.104
:只过滤目标地址为 192.168.1.104 的数据包
(3)端口过滤
port 80
: 过滤所有与端口 80 通信的数据包src port 80
:只过滤源端口为 80 的数据包dst port 80
:只过滤目标端口为 80 的数据包
(4)逻辑运算符
src host 192.168.1.104 && dst port 80
: 抓取源地址为 192.168.1.104,且目标端口为 80 的数据包host 192.168.1.104 || host 192.168.1.102
: 抓取主机为 192.168.1.104 或 192.168.1.102 的数据包!broadcast
: 不抓取广播数据包
2、显示过滤器语法和实例
(1)比较操作符
显示过滤器支持的比较操作符有:
==
(等于)!=
(不等于)>
(大于)<
(小于)>=
(大于等于)<=
(小于等于)
(2)协议过滤
和抓包过滤器一样,直接输入协议名即可,注意要小写。
- tcp:只显示 TCP 协议的数据包
- http:只显示 HTTP 协议的数据包
- icmp:只显示 ICMP 协议的数据包
(3) IP 过滤
ip.src ==192.168.1.104
: 显示源地址为 192.168.1.104 的数据包ip.dst==192.168.1.104
: 显示目标地址为 192.168.1.104 的数据包ip.addr == 192.168.1.104
: 显示源 IP 地址或目标 IP 地址为 192.168.1.104 的数据包
(4)端口过滤
tcp.port ==80
: 显示源主机或目标主机端口为 80 的数据包tcp.srcport == 80
: 只显示 TCP 协议的源主机端口为 80 的数据包tcp.dstport == 80
: 只显示 TCP 协议的目标主机端口为 80 的数据包
(5) HTTP 模式过滤
http.request.method=="GET"
: 只显示 HTTP GET 方法的数据包
(6)逻辑运算符
过滤多个条件组合时,使用 and
/or
/not
。
比如,获取 IP 地址为 192.168.1.104 的 ICMP 数据包,表达式为:ip.addr == 192.168.1.104 and icmp
(7)按照数据包内容过滤
如果你想根据数据包的内容进行过滤,可以先选中界面中的码流,然后在下方选中你想要过滤的数据,如下图:
右键单击选中内容,选择 Select,就会在过滤器中显示相应的表达式,如下:
然后,你就可以根据自己的需求,修改这个表达式。比如,你想过滤出 data 数据包中包含 "abcd" 内容的数据流,可以使用 contains
关键词,表达式如下:
看到这里,相信你对 Wireshark 已经有了初步的了解。
Wireshark 实战:TCP 三次握手分析
光说不练假把式,接下来我们来用 Wireshark 分析一下 TCP 三次握手的过程。
(1)TCP 三次握手连接建立过程
Step1:客户端发送一个 SYN=1,ACK=0 标志的数据包给服务端,请求建立连接,这是第一次握手;
Step2:服务端收到请求并且允许连接的话,就会发送一个 SYN=1,ACK=1 标志的数据包给客户端,告诉客户端可以通信了,并且要求客户端发送一个确认数据包,这是第二次握手;
Step3:客户端发送一个 SYN=0,ACK=1 的数据包给服务端,告诉服务端连接已被确认,这就是第三次握手。TCP 连接建立,开始通信。
(2)Wireshark 抓包获取访问指定服务端数据包
Step1:启动 Wireshark 抓包,打开浏览器输入 www.huawei.com。
Step2:使用 ping www.huawei.com 获取 IP 地址。
Step3:输入过滤条件 ip.addr == 211.162.2.183
获取待分析的数据包列表。
从图中可以看到,Wireshark 截获到了三次握手的三个数据包。第四个包才是 HTTP 的,这说明 HTTP 确实是使用 TCP 建立连接的。
第一次握手数据包
客户端发送一个 TCP 包,标志位为 SYN,序列号为 0,代表客户端请求建立连接。如下图。
数据包的关键属性如下:
- SYN:标志位,表示请求建立连接
- Seq = 0:初始建立连接值为 0,数据包的相对序列号从 0 开始,表示当前还没有发送数据
- Ack =0:初始建立连接值为 0,表示当前没有接收到数据
第二次握手的数据包
服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户端的 I S N 加 1,即 0+1=1, 如下图
数据包的关键属性如下:
- [SYN + ACK]: 标志位,同意建立连接,并回送 SYN+ACK
- Seq = 0:初始建立值为 0,表示当前还没有发送数据
- Ack = 1:表示当前端成功接收的数据位数,虽然客户端没有发送任何有效数据,确认号还是被加 1,因为包含 SYN 或 FIN 标志位。(并不会对有效数据的计数产生影响,因为含有 SYN 或 FIN 标志位的包并不携带有效数据)
第三次握手的数据包
客户端再次发送确认包(ACK) SYN 标志位为 0,ACK 标志位为 1.并且把服务器发来 ACK 的序号字段+1,放在确定字段中发送给对方.并且在数据段写 ISN 的+1, 如下图:
数据包的关键属性如下:
- ACK:标志位,表示已经收到记录
- Seq = 1:表示当前已经发送 1 个数据
- Ack = 1:表示当前端成功接收的数据位数,虽然服务端没有发送任何有效数据,确认号还是被加 1,因为包含 SYN 或 FIN 标志位(并不会对有效数据的计数产生影响,因为含有 SYN 或 FIN 标志位的包并不携带有效数据)。
就这样,通过了 TCP 三次握手,建立了连接,开始进行数据交互。
下面针对数据交互过程的数据包进行一些说明:
数据包的关键属性说明
- Seq: 1
- Ack: 1: 说明现在共收到 1 字节数据
- Seq: 1
- Ack: 951: 说明现在服务端共收到 951 字节数据
在 TCP 层,有个 FLAGS 字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG。如下
其中,对于我们日常的分析有用的就是前面的五个字段。它们的含义是:SYN表示建立连接,FIN表示关闭连接,ACK表示响应,PSH表示有DATA数据传输,RST表示连接重置。
Wireshark 分析常用操作,效率提升 N 倍!
调整数据包列表中时间戳显示格式。调整方法为 View -->Time Display Format --> Date and Time of Day。调整后格式如下:
以上就是 Wireshark 的常用操作了。
一般来说,Wireshark 软件也可以与各主流厂家的模拟器一起使用,更适合于项目准确配置。
黑客/网络安全学习包
资料目录
-
成长路线图&学习规划
-
配套视频教程
-
SRC&黑客文籍
-
护网行动资料
-
黑客必读书单
-
面试题合集
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
1.成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
2.视频教程
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
3.SRC&黑客文籍
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦!
4.护网行动资料
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
5.黑客必读书单
**
**
6.面试题合集
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
更多内容为防止和谐,可以扫描获取~
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*********************************