Wireshark 的基本使用

Wireshark 是一款功能强大的抓包工具,可以让我们了解网络传输的细节,比如用于了解经典的三次握手四次握手,化抽象为具体。本文将介绍 Wireshark的简单使用。

直通车

Wireshark 对 https 请求抓包并展示为明文

安装 Wireshark

官网下载地址 https://www.wireshark.org/#download

Wireshark 可以做什么?

Wireshark 可以截取指定 host、协议 的信息流,并且可以按照协议类型、IP、端口、不同编码格式对信息流进行查看,而且可以追踪某一个信息流。可以讲获取的信息流保存以便于以后再次查看。

Wireshark 的操作步骤
  • 打开 Wireshark

选择 Wireshark Legacy

一个典型的命令
ip.dst == 192.168.1.1 and tcp.port==80 and tcp.seq==0

这里写图片描述

选择监听 127.0.0.1

在Wireshark的主界面中,选择“Interface”(接口)下拉列表中的lo或loopback接口。如果你看不到这些选项,可能是因为Wireshark没有被配置为可以访问环回接口。
在这里插入图片描述

选择监听的网卡

这个要看你计算机的联网方式,比如是通过有线网卡或者无线网卡,这里我使用无线网卡。如果你想监听多个网卡,则点击Interface List

这里写图片描述

设置 Capture Filter,设置捕获条件

在选择好要监听的网卡之后,我们有两种方式开始捕获网络上的信息流,如上图所示,一种是 Start,一种是Capture Options。前者会直接开始捕获信息流,你可以先点进去体验一下,在不启用任何过滤措施的情况下,信息显得有些乱。后者可以对捕获的信息有一个基本设置,点击确定之后,进入的页面和前者一样,然后可以对捕获的结果做进一步的过滤。
点击 Capture Options

Mac:
在这里插入图片描述
或者
在这里插入图片描述
在这里插入图片描述

Windows:
这里写图片描述

你可以直接在后面输入过滤命令,如果格式正确输入框将会变成绿色,你也可以使用后面的按钮Compile selected BPFs,会得到一些有效信息,这个按钮不是必须的。
如果你还不熟悉命令,可以点击 Capture Filter按钮,从中选择一个作为模板。比如下图,捕获过滤条件是 ip地址 192.0.2.1 的信息流(192.0.2.1 发出的或者接收到的信息流)
Windows:
这里写图片描述

设置 Display Filters (对捕获到的数据包进行筛选)

在捕获选项对话框中,你可以找到一个叫做“Capture Filter”的设置。然而,“Capture Filter”是用来限制哪些数据包会被实际捕获,而“Display Filter”是在捕获的数据包中筛选出你想要查看的部分。
虽然你不能直接在“Capture Filter”中使用http,因为这不适用于libpcap语法,但是你可以使用更具体的过滤条件来达到类似的效果,例如tcp port 80或tcp port 443来分别捕获HTTP或HTTPS流量。
然而,由于HTTP可以在任意端口上运行,最全面的方法还是使用“Display Filter”中的http过滤器。

Mac:
在这里插入图片描述
在这里插入图片描述
在捕获的过程中,你可以直接在Wireshark的顶部找到一个名为“Display Filter”的文本框。
在这个文本框中输入http作为过滤条件,然后按Enter键或者点击旁边的放大镜图标应用过滤器。
在这里插入图片描述

点击 Start 开始捕获

点击 Start 将进入到下面的页面
1 是刷新的作用,他左边的红色按钮可以终止捕获;
2是对捕获结果进行二次过滤;
3是捕获到的具体的一条信息流,或者你也可以叫做报文,尽管这个名称并不适合于所有协议。

这里写图片描述

设置 Filter 并点击确认

比如我想知道来自ip 192.168.1.106 的访问,或者目标地址为 192.168.1.106 的访问,则需要在2添加过滤命令。
ip.src192.168.1.106 会对捕获结果进行再次过滤,将发起请求ip地址为 192.168.1.106 的信息流留下
ip.dst
192.168.1.106 会对捕获结果进行再次过滤,将请求访问目标ip地址为 192.168.1.106 的信息流留下
会有自动提示哦,写完命令如果正确输入框会变为绿色,然后按一下标注为2 的按钮更新一下

这里写图片描述

  • Mac 版的写 ip.dst == 有提示点击 ->在这里插入图片描述
跟踪某一条访问

网络访问有时候存在重试的情况,这对于我们分析信息流来说是一种干扰,所以我们可以选择跟踪一个连续的信息流,而不是多个。右键 点击 Foller 协议名字(如TCP) Stream

这里写图片描述

保存新文件和打开已保存文件

关闭窗口会提示你保存
至于打开新文件,停止当前捕获,然后左上角 File->open 你保存的文件即可

标记和含义
"eth"   Ethernet addresses
  "fc"    Fibre Channel addresses
  "fddi"  FDDI addresses
  "ip"    IPv4 addresses
  "ipv6"  IPv6 addresses
  "ipx"   IPX addresses
  "tcp"   TCP/IP socket pairs   Both IPv4 and IPv6 are supported
  "tr"    Token Ring addresses
  "udp"   UDP/IP socket pairs   Both IPv4 and IPv6 are supported
留个悬念-网络分层

下图对应 网络协议分层,含义是>>>
参考 https://blog.csdn.net/hguisu/article/details/12521597
https://blog.csdn.net/sd4567855/article/details/81152050

这里写图片描述

常用的过滤命令
  • ip.addr==127.0.0.1 ,客户端IPv4 的地址为 127.0.0.1
  • ip.dst==127.0.0.1,服务端的IPv4 地址为 127.0.0.1
  • and 或者 && ,并且,比如 ip.addr127.0.0.1 and ip.dst127.0.0.1,表示客户端和服务端的IPv4 地址都是 127.0.0.1
  • tcp.seq==0,表示,TCP协议的seq值为0
  • tcp.ack==1,表示 TCP 协议的ack值为1
  • or 或者 ||,或者,比如 ip.addr127.0.0.1 || ip.addr192.168.1.10
  • (),括号,可以使用括号,比如 (ip.addr127.0.0.1 and ip.dst == 192.168.1.10) || (ip.addr 192.168.1.10 and ip.dst == 127.0.0.1)
  • tls,表示tls协议,用于捕获https的不二选择
  • tcp,限定为 tcp 协议
  • dns.qry.name == img.alicdn.com ,域名为img.alicdn.com
  • tcp dst port 3128,显示目的TCP端口为3128的封包。
  • ip src host 10.1.1.1 显示来源IP地址为10.1.1.1的封包。
  • host 10.1.2.3 显示目的或来源IP地址为10.1.2.3的封包。
  • src portrange 2000-2500 显示来源为UDP或TCP,并且端口号在2000至2500范围内的封包。
  • not imcp 显示除了icmp以外的所有封包。(icmp通常被ping工具使用)
  • src host 10.7.2.12 and not dst net 10.200.0.0/16 显示来源IP地址为10.7.2.12,但目的地不是10.200.0.0/16的封包。
  • (src host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8 显示来源IP为10.4.1.12或者来源网络为10.6.0.0/16,目的地TCP端口号在200至10000之间,并且目的位于网络10.0.0.0/8内的所有封包。
  • http.host==magentonotes.com http.host contains xxx.com
    过滤经过指定域名的http数据包,这里的host值不一定是请求中的域名
  • http.response.code==302 过滤http响应状态码为302的数据包
  • http.response==1 过滤所有的http响应包
  • http.request==1 过滤所有的http请求,貌似也可以使用http.request
  • http.request.method==POST wireshark过滤所有请求方式为POST的http请求包,注意POST为大写
  • http.cookie contains guid 过滤含有指定cookie的http数据包
  • http.request.uri==”/online/setpoint” 过滤请求的uri,取值是域名后的部分
  • http.request.full_uri==” http://task.browser.360.cn/online/setpoint”
    过滤含域名的整个url则需要使用http.request.full_uri
  • http.server contains “nginx”
    过滤http头中server字段含有nginx字符的数据包
  • http.content_type == “text/html”
    过滤content_type是text/html的http响应、post包,即根据文件类型过滤http数据包
  • http.content_encoding == “gzip”
    过滤content_encoding是gzip的http包
  • http.transfer_encoding == “chunked”
    根据transfer_encoding过滤
  • http.content_length == 279
    http.content_length_header == “279″
    根据content_length的数值过滤
  • http.server
    过滤所有含有http头中含有server字段的数据包
  • http.request.version == “HTTP/1.1″
    过滤HTTP/1.1版本的http包,包括请求和响应
  • http.response.phrase == “OK”
    过滤http响应中的phrase
参考链接

[1].http://blog.jobbole.com/70907/
[2].https://blog.csdn.net/howeverpf/article/details/40743705
[3].https://blog.csdn.net/hzhsan/article/details/43453251
[4].https://jingyan.baidu.com/article/b87fe19e7603b75218356825.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值