1. 简介

Wireshark 是一款世界范围最广,最好用的网络封包分析软件,功能强大,界面友好直观,操作起来非常方便。它的创始人是 Gerald Combs,前身是 Ethereal,作为开源项目经过众多开发者的完善它已经成为使用量最大的安全工具之一。在CTF中也经常会使用 wireshark 进行流量数据包分析,可以快速检测网络通讯数据,获取最为详细的网络封包资料。Wireshark使用 WinPCAP 作为接口,直接与网卡进行数据报文交换。用户将在图形界面中浏览这些数据,实时监控TCP、session等网络动态,轻松完成网络管理工作。

2. 当前软件版本


WireShark-V3.4.6

3. 数据包分析

数据包嗅探或协议分析:指捕获和解析网络上传输的数据的过程,以便更好地了解网络上正在发生的事情。

4. 界面介绍

  • Display Filter (显示过滤器) 用于显示过滤
  • Packet List Pane(封包列表)显示捕获到的封包,有序号、时间、源IP、目标IP、协议、长度、基本信息等,使用不同颜色来代表
  • Packet Details Pane(封包详细信息)显示封包中的字段
  • Dissector Pane(16进制原始数据)
  • Miscellanous(地址栏,杂项)

5. 捕获选项设置

捕获设置菜单,点击这个菜单就可以得到下方的三个窗口

input选项卡


接口 电脑端口列表
Enable promisecuous mode on all interfaces 所有端口开启混杂模式
Manage Interfaces 管理网卡
Capture filter for selected interfaces 抓包过滤器输入栏

output选项卡


Capture to a permanent file 把抓包的数据保存到指定的路径,在Brower…中选择文件路径和文件名
Output formate 抓包数据输出的文件格式
create a new file automatically… 自动创建一个文件,以下是满足以下条件之一就会自动生成一个文件
例如:选择第一个after后,把100000改成1后,意思是在每产生一个数据包后自动生成一个文件 第二个after是按字节大小来划分文件,第三个 after 按时间秒数来分

选项


Update list of packets in real-time 勾选后,抓包主窗口将会实时显示提取到的所有数据包
Automatically scroll during live capture 勾选后,抓包主窗口将会实时自动滚屏
Resolve MAC Address 勾选后,在主窗口显示抓包的数据时,将MAC地址中的网络设置制造商ID解析为相对应的厂商名称
Resolve network names 勾选后,在主窗口显示抓包数据时,将IP地址解析为相对应的DNS名称
Resolve transport names 勾选后,在主窗口显示数据时,将第四层协议端口号解析为相应的应用程序名称
Stop capture aut omatically after… 自动停止捕获,以下是满足以下条件之一就会自动停止捕获

6. 过滤

6.1. 过滤器分类

显示过滤器:即主界面所显示的,用于在捕获的记录中找到所需要的记录
捕获过滤器:用来过滤捕获的封包,以免捕获太多的记录,扰乱我们搜索。

6.2. 过滤表达式编写规则

我们可以通过编写表达式的方式来定制我们需要的过滤规则。

IP地址过滤

ip.src == x,过滤出源 IP 地址为 x 的数据包
例如 ip.src == 192.168.0.1,对源地址为192.168.0.1的包的过滤,即抓取源地址满足要求的包
ip.dst == x,过滤出目标 IP 地址为 x 的数据包
例如 ip.dst == 192.168.0.1,对目标地址为192.168.0.1的包的过滤,即抓取源地址满足要求的包
ip.addr == x 过滤出满足源或者目的地址的ip地址是 x 的包
例如 ip.addr == 192.168.0.1 过滤出满足源或者目的地址的ip地址是 192.168.0.1 的包
!(ip.src == x) 排除的源IP为 x 的数据包
例如 !(ip.src == 192.168.0.1) 排除源IP为 192.168.0.1 的数据包

协议过滤

http 过滤出 http 协议的数据包
tcp 过滤出 tcp 协议的数据包
udp 过滤出 udp 协议的数据包
arp 过滤出 arp 协议的数据包
icmpv6 过滤出 icmpv6 协议的数据包
http or telnet 要捕获多种协议的数据包,也只需对协议进行逻辑组合即可
not tcp!tcp 排除 某种协议的数据包,这里排除的是 tcp 协议
当然协议并不只上面列出的部分

端口过滤

tcp.port == x udp.port == x 过滤出某个端口的数据包,这里还有协议上的区分
tcp.port >= x udp.port >= x 过滤出大于某个端口的数据包,这里还有协议上的区分

长度和内容过滤

udp.length < 30 http.content_length <=20 过滤出某个长度范围的数据包
http.request.uri matches "vipscu" 过滤出 http 请求中含有vipscu字段的请求信息的数据包

7. 数据包详细信息分析


Frame: 物理层的数据帧概况
Ethernet II: 数据链路层以及以太网头部信息
Internet Protocol Version 4: 网络层IP包头部信息
Transmission Control Protocol:运输层T的数据段头部信息,此处是TCP
Hypertext Transfer Protocol:应用层信息,此处是HTTP协议

这是某一次抓包中抓取的某数据 TCP 报文,主要存在4行数据详细信息:

1. Frame 9: 54 bytes on wire (432 bits), 54 bytes captured (432 bits) on interface \Device\NPF_{7B569D3D-0E8F-456E-AEC1-AC74E1E8284D}, id 0
2. Ethernet II, Src: Micro-St_58:61:80 (00:d8:61:58:61:80), Dst: RuijieNe_72:d3:e2 (80:05:88:72:d3:e2)
3. Internet Protocol Version 4, Src: 192.168.3.79, Dst: 112.34.111.108
4. Transmission Control Protocol, Src Port: 10443, Dst Port: 80, Seq: 1, Ack: 1, Len: 0

第一行,帧Frame 9指的是要发送的数据块,其中,所抓帧的序号为9,捕获字节数等于传送字节数:54字节
第二行,以太网,有线局域网技术,是数据链路层。源Mac地址为00:d8:61:58:61:80,目标Mac地址为80:05:88:72:d3:e2
第三行,IPV4协议,也称网际协议,是网络层,源IP地址为192.168.3.79;目标IP地址为112.34.111.108
第四行,TCP协议,也称传输控制协议,是传输层,源端口(80),目标端口(52066),序列号(15585403);ACK是TCP数据包首部中的确认标志,对已接收到的TCP报文进行确认,值为1表示确认号有效;长度为0

这4行信息展开后是这样的,注意前面的标号是个人添加的,便于可读性:

1. Frame 9: 54 bytes on wire (432 bits), 54 bytes captured (432 bits) on interface \Device\NPF_{7B569D3D-0E8F-456E-AEC1-AC74E1E8284D}, id 01.1. Interface id: 0 (\Device\NPF_{7B569D3D-0E8F-456E-AEC1-AC74E1E8284D})1.1.1. Interface name: \Device\NPF_{7B569D3D-0E8F-456E-AEC1-AC74E1E8284D}1.1.2. Interface description: 以太网1.2. Encapsulation type: Ethernet (1)1.3. Arrival Time: Jun 19, 2021 23:50:04.258836000 中国标准时间1.4. [Time shift for this packet: 0.000000000 seconds]1.5. Epoch Time: 1624117804.258836000 seconds1.6. [Time delta from previous captured frame: 0.421582000 seconds]1.7. [Time delta from previous displayed frame: 0.421582000 seconds]1.8. [Time since reference or first frame: 1.118163000 seconds]1.9. Frame Number: 91.10. Frame Length: 54 bytes (432 bits)1.11. Capture Length: 54 bytes (432 bits)1.12. [Frame is marked: False]1.13. [Frame is ignored: False]1.14. [Protocols in frame: eth:ethertype:ip:tcp]1.15. [Coloring Rule Name: TCP RST]1.16. [Coloring Rule String: tcp.flags.reset eq 1]
2. Ethernet II, Src: Micro-St_58:61:80 (00:d8:61:58:61:80), Dst: RuijieNe_72:d3:e2 (80:05:88:72:d3:e2)2.1. Destination: RuijieNe_72:d3:e2 (80:05:88:72:d3:e2)2.1.1. Address: RuijieNe_72:d3:e2 (80:05:88:72:d3:e2).... ..0. .... .... .... .... = LG bit: Globally unique address (factory default).... ...0 .... .... .... .... = IG bit: Individual address (unicast)2.2. Source: Micro-St_58:61:80 (00:d8:61:58:61:80)2.2.1. Address: Micro-St_58:61:80 (00:d8:61:58:61:80).... ..0. .... .... .... .... = LG bit: Globally unique address (factory default).... ...0 .... .... .... .... = IG bit: Individual address (unicast)2.3. Type: IPv4 (0x0800)
3. Internet Protocol Version 4, Src: 192.168.3.79, Dst: 112.34.111.1080100 .... = Version: 4.... 0101 = Header Length: 20 bytes (5)3.1. Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)0000 00.. = Differentiated Services Codepoint: Default (0).... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)3.2. Total Length: 403.3. Identification: 0x6bed (27629)3.4. Flags: 0x40, Don't fragment0... .... = Reserved bit: Not set.1.. .... = Don't fragment: Set..0. .... = More fragments: Not set3.5. Fragment Offset: 03.6. Time to Live: 1283.7. Protocol: TCP (6)3.8. Header Checksum: 0xeb5c [validation disabled]3.9. [Header checksum status: Unverified]3.10. Source Address: 192.168.3.793.11. Destination Address: 112.34.111.108
4. Transmission Control Protocol, Src Port: 10443, Dst Port: 80, Seq: 1, Ack: 1, Len: 04.1. Source Port: 104434.2. Destination Port: 804.3. [Stream index: 1]4.4. [TCP Segment Len: 0]4.5. Sequence Number: 1    (relative sequence number)4.6. Sequence Number (raw): 4066458774.7. [Next Sequence Number: 1    (relative sequence number)]4.8. Acknowledgment Number: 1    (relative ack number)4.9. Acknowledgment number (raw): 2303755470101 .... = Header Length: 20 bytes (5)4.10. Flags: 0x014 (RST, ACK)000. .... .... = Reserved: Not set...0 .... .... = Nonce: Not set.... 0... .... = Congestion Window Reduced (CWR): Not set.... .0.. .... = ECN-Echo: Not set.... ..0. .... = Urgent: Not set.... ...1 .... = Acknowledgment: Set.... .... 0... = Push: Not set4.10.1. .... .... .1.. = Reset: Set4.10.1.1. [Expert Info (Warning/Sequence): Connection reset (RST)]4.10.1.1.1. [Connection reset (RST)]4.10.1.1.2. [Severity level: Warning]4.10.1.1.3. [Group: Sequence].... .... ..0. = Syn: Not set.... .... ...0 = Fin: Not set4.10.2. [TCP Flags: ·······A·R··]4.11. Window: 04.12. [Calculated window size: 0]4.13. [Window size scaling factor: -1 (unknown)]4.14. Checksum: 0x9047 [unverified]4.15. [Checksum Status: Unverified]4.16. Urgent Pointer: 04.17. [Timestamps]4.17.1. [Time since first frame in this TCP stream: 0.000000000 seconds]4.17.2. [Time since previous frame in this TCP stream: 0.000000000 seconds]

对上方的数据按标题归类
Frame

Arrival Time: Jun 19, 2021 23:50:04.258836000 中国标准时间
[Time shift for this packet: 0.000000000 seconds]
Epoch Time: 1624117804.258836000 seconds
[Time delta from previous captured frame: 0.421582000 seconds]
[Time delta from previous displayed frame: 0.421582000 seconds]
[Time since reference or first frame: 1.118163000 seconds]
Frame Number: 9
Frame Length: 54 bytes (432 bits)
Capture Length: 54 bytes (432 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: eth:ethertype:ip:tcp]
[Coloring Rule Name: TCP RST]
[Coloring Rule String: tcp.flags.reset eq 1]

Ethernet II

Destination: RuijieNe_72:d3:e2 (80:05:88:72:d3:e2)
Source: Micro-St_58:61:80 (00:d8:61:58:61:80)
Type: IPv4 (0x0800)

Internet Protocol Version 4

Version: 4
Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
Flags: 0x40, Don’t fragment
Fragment Offset: 0
Time to Live: 128
Protocol: TCP (6)
Header Checksum: 0xeb5c [validation disabled]
[Header checksum status: Unverified]
Source Address: 192.168.3.79
Destination Address: 112.34.111.108

Transmission Control Protocol

Source Port: 10443
Destination Port: 80
[Stream index: 1]
[TCP Segment Len: 0]
Sequence Number: 1 (relative sequence number)
Sequence Number (raw): 406645877
[Next Sequence Number: 1 (relative sequence number)]
Acknowledgment Number: 1 (relative ack number)
Acknowledgment number (raw): 230375547
Header Length: 20 bytes (5)
Flags: 0x014 (RST, ACK)
Window: 0
[Calculated window size: 0]
[Window size scaling factor: -1 (unknown)]
Checksum: 0x9047 [unverified]
[Checksum Status: Unverified]
Urgent Pointer: 0

TCP数据报的所有详细信息都展示在上面了,但是,注意并不是所有的网络协议都以上面的数据格式呈现,不同的协议其数据格式不同,比如有些协议它不止三行内容,它可以是四行,五行等等

8. 图标

wireshark 抓包使用教程相关推荐

  1. WireShark 抓包使用教程--详细

    WireShark 抓包使用教程--详细 Wireshark是非常流行的网络封包分析软件,可以截取各种网络数据包,并显示数据包详细信息.常用于开发测试过程各种问题定位.本文主要内容包括: 1.Wire ...

  2. wireshark抓包使用教程,适合新手

    版本更新至:Wireshark 3.4.5 Wireshark软件安装 Wireshark 3.4.5 绿色便携版(访问密码:1112)(最终支持 Windows XP 或更高版的版本) 如果你是Wi ...

  3. Wireshark抓包工具使用教程以及常用抓包规则

    Wireshark是一个非常好用的抓包工具,当我们遇到一些和网络相关的问题时,可以通过这个工具进行分析,不过要说明的是,这只是一个工具,用法是非常灵活的,所以今天讲述的内容可能无法直接帮你解决问题,但 ...

  4. Fiddler 和 Wireshark抓包教程合集

    本教程包括: 一:Wireshark专区 [1Wireshark网络分析实践] [2Wireshark视频教程(基础设置)] [3Wireshark协议分析从入门到精通] [4网络数据包分析协议分析 ...

  5. 【Wireshark系列十】wireshark怎么抓包、wireshark抓包详细图文教程

    wireshark怎么抓包.wireshark抓包详细图文教程 wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必 ...

  6. WireShark抓包新手入门教程1

    Wireshark是非常流行的网络封包分析软件,可以截取各种网络数据包,并显示数据包详细信息.常用于开发测试过程各种问题定位.本文主要内容包括: 1.Wireshark软件下载和安装以及Wiresha ...

  7. wireshark抓包分析数据怎么看 wireshark使用教程

    大家都知道Wireshark是非常流行且知名的网络抓包数据分析工具,可以截取各种网络数据包,并显示数据包详细信息,常用于开发测试过程各种问题定位.网络故障排查等情况.但是很多网友不清楚如何使用Wire ...

  8. Wireshark抓包iOS入门教程

    本文来自简书,原文地址:http://www.jianshu.com/p/c67baf5fce6d 网络抓包是个基础技能,对于网络协议的掌握有一定的要求.iOS上实现网络抓包可以用Charles(针对 ...

  9. 【工具-WireShark】网络HTTP抓包使用教程

    目录 WireShark抓包使用 一.WireShark简介 1.什么是WireShark? 2.WireShark的用途 二.WireShark的基础使用 使用须知 如何抓包 方式一:服务器命令 方 ...

最新文章

  1. 修复计算机怎么操作系统,如何巧妙恢复被误删的操作系统分区
  2. 诺顿360“偷偷”挖矿被怒喷,杀毒软件手伸向GPU,官方:都是为了用户好
  3. 穿上就能凉快近5°C,华中大浙大夏日“避暑神器”登Science
  4. js调用ios和安卓方法
  5. Android OpenGL ES 离屏渲染(offscreen render)
  6. Linux-目录结构说明
  7. 吴恩达深度学习笔记10-Course4-Week1【卷积神经网络】
  8. 动态链接库的创建和调用方法
  9. 【note】fill函数和memset函数的区别和使用
  10. 1.3 安装Oracle遇到的问题-yum更新配置
  11. 一个应用被部署到SAP云平台后,启动时打印的日志
  12. JavaScript-严格检查模式
  13. sqlserver编号
  14. WinAPI: MoveWindow - 改变窗口的位置与大小
  15. 解决导入Beautifulsoup 报错 AttributeError: 'module' object has no attribute '_base'的问题
  16. c语言课程信息系统排序学分_您可以免费访问具有实际大学学分的400多种在线课程
  17. 前端零基础入门: 用css设置文字样式
  18. Unity 随机生成中文名字
  19. ap计算机知识点总结,AP统计学考试知识点汇总
  20. html页面国际化之谷歌翻译js实践,支持通过判断浏览器语言自动将中文翻译成英文

热门文章

  1. 微信小程序——video视频全屏展示
  2. win10使用python的strftime有错误_win10系统提示werfault.exe应用程序错误如何解决
  3. 软件测试公司折扣政策,@软件企业看,这些税收优惠政策请收下
  4. 中国的电子商务新时代
  5. 《MFC如何添加子对话框》
  6. 一回生,二回熟,三回巧
  7. Windows10记一次去掉桌面图标箭头引发的血案:该文件没有与之关联的应用来执行操作,请安装一个程序,若已安装程序,请在默认程序控制面板中创建关联。
  8. Python 实现 GIF 动态图片分解 , 多帧动态图分解成多张静态图片
  9. 好东西大家分享: 怎么画数据流图
  10. C语言中的二分查找法