精华内容
下载资源
问答
  • wireshark抓包
    千次阅读
    2021-07-29 11:14:21

    手机抓包

    网络和Internet --> 移动热点 开启移动热点
    在这里插入图片描述在这里插入图片描述
    让自己的手机连接该热点,打开wireshark找到对应网卡,即可抓包;
    如果不知道是哪个网卡,也可以试着在手机上打开网页,看流量


    虚拟机抓包

    我是把虚拟机网络状态改为NAT,然后wireshark选择捕获接口wmnet8和vmnet1都可以检测到虚拟机的流量(比如像我这里以太网3就是wmnet8)。网上还有方法说桥接模式也可以抓包,我没有成功
    在这里插入图片描述在这里插入图片描述

    可以选择取消混杂模式,混杂模式会抓到到所有虚拟机和物理机之间的流量

    混杂模式(英语:promiscuous mode)是电脑网络中的术语。是指一台机器的网卡能够接收所有经过它的数据流,而不论其目的地址是否是它。

    在这里插入图片描述

    更多相关内容
  • RTSP wireshark抓包分析

    2022-03-09 15:25:43
    RTSP wireshark抓包分析
  • wireshark抓包视频教程

    2019-01-31 12:11:54
    wireshark抓包视频教程
  • Wireshark 抓包分析工具

    2019-03-13 17:49:45
    Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。 网络封包分析软件...
  • Wireshark抓包软件.zip

    2021-08-05 14:44:54
    抓包软件
  • npcap,wireshark安装包, 可以正常再虚拟机winserver20078上正常使用
  • WIRESHARK抓包教程[归纳].pdf
  • arduino的MDNS库,开发测试时的wireshark抓包分析,已过滤其他杂包
  • 进行通信,使用Wireshark抓包软件抓取发送的包并分析数据结构,由于涉及到客户端和通信端,可以使用两台电脑,一台电脑编写客户端代码,一台电脑编写服务器端代码,也可以在一台电脑上开两个 VS2019同时编译两个端,...
  • tcp/ip选修课期末大作业,资源内有为分析相关微信功能所抓取的数据包和完整大作业报告(word版),适合Wireshark入门的小伙伴们或者赶期末大作业无从下手的uu们。铁汁们,放心食用
  • wireshark抓包详细图文教程,详细描述快速wireshark抓包方法
  • wireshark抓包合成.doc

    2021-10-13 15:56:18
    使用wireshark工具,进行多个抓包合并
  • wireshark抓包工具

    2018-10-28 11:23:17
    抓包工具,能够分析很多流量,使用方便,价格公道
  • 使用wireshark抓取icmp,udp,ieee802.3,tcp,arp等协议
  • wireshark 抓包

    2022-07-30 20:33:44
    wireshark 抓包
  • Wireshark抓包软件

    2019-03-07 10:12:45
    Wireshark抓包软件给予网络分析以及网络学习提供了基本的内容。
  • Wireshark wireshark抓包结果的统计程序
  • wireshark抓包流程

    2018-08-15 10:49:41
    简单介绍如何使用wireshark抓包 ......................
  • wireshark抓包使用教程

    千次阅读 2022-04-29 16:20:08
    title: wireshark抓包新手使用教程 categories:[简单抓包] tags:[wireshark] date: 2022/04/29 作者:hackett 微信公众号:加班猿 wireshark抓包新手使用教程 Wireshark是非常流行的网络封包分析软件,可以截取各种...

    title: wireshark抓包新手使用教程

    categories:[简单抓包]

    tags:[wireshark]

    date: 2022/04/29

    作者:hackett
    微信公众号:加班猿

    wireshark抓包新手使用教程

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

    1、Wireshark软件下载和安装以及Wireshark主界面介绍。

    2、WireShark简单抓包示例。通过该例子学会怎么抓包以及如何简单查看分析数据包内容。

    3、Wireshark过滤器使用。过滤器包含两种类型,一种是抓包过滤器,就是抓取前设置过滤规则。另外一种是显示过滤器,就是在数据包分析时进行过滤数据使用。通过过滤器可以筛选出想要分析的内容。包括按照协议过滤、端口和主机名过滤、数据包内容过滤。具体规则和实例可以查看正文。

    Wireshark软件安装

    软件下载路径:wireshark官网。按照系统版本选择下载,下载完成后,按照软件提示一路Next安装。

    说明:如果你是Win10系统,安装完成后,选择抓包但是不显示网卡,下载win10pcap兼容性安装包。下载路径:win10pcap兼容性安装包

    Wireshark 开始抓包示例

    先介绍一个使用wireshark工具抓取ping命令操作的示例,让读者可以先上手操作感受一下抓包的具体过程。

    1、打开wireshark 2.6.5,主界面如下:

    img

    2、选择菜单栏上Capture -> Option,勾选WLAN网卡(这里需要根据各自电脑网卡使用情况选择,简单的办法可以看使用的IP对应的网卡)。点击Start。启动抓包。

    img

    3、wireshark启动后,wireshark处于抓包状态中。

    img

    4、执行需要抓包的操作,如在cmd窗口下执行ping www.baidu.com。

    5、操作完成后相关数据包就抓取到了。为避免其他无用的数据包影响分析,可以通过在过滤栏设置过滤条件进行数据包列表过滤,获取结果如下。说明:ip.addr == 119.75.217.26 and icmp 表示只显示ICPM协议且源主机IP或者目的主机IP为119.75.217.26的数据包。说明:协议名称icmp要小写。

    img

    5、wireshark抓包完成,就这么简单。关于wireshark显示过滤条件、抓包过滤条件、以及如何查看数据包中的详细内容在后面介绍。

    Wireshakr抓包界面介绍

    img

    说明:数据包列表区中不同的协议使用了不同的颜色区分。协议颜色标识定位在菜单栏View --> Coloring Rules。如下所示

    img

    WireShark 主要分为这几个界面

    \1. Display Filter(显示过滤器), 用于设置过滤条件进行数据包列表过滤。菜单路径:Analyze --> Display Filters。

    img

    \2. Packet List Pane(数据包列表), 显示捕获到的数据包,每个数据包包含编号,时间戳,源地址,目标地址,协议,长度,以及数据包信息。 不同协议的数据包使用了不同的颜色区分显示。

    img

    \3. Packet Details Pane(数据包详细信息), 在数据包列表中选择指定数据包,在数据包详细信息中会显示数据包的所有详细信息内容。数据包详细信息面板是最重要的,用来查看协议中的每一个字段。各行信息分别为

    (1)Frame: 物理层的数据帧概况

    (2)Ethernet II: 数据链路层以太网帧头部信息

    (3)Internet Protocol Version 4: 互联网层IP包头部信息

    (4)Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP

    (5)Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议

    img

    TCP包的具体内容

    从下图可以看到wireshark捕获到的TCP包中的每个字段。

    img

    \4. Dissector Pane(数据包字节区)。

    Wireshark过滤器设置

    初学者使用wireshark时,将会得到大量的冗余数据包列表,以至于很难找到自己需要抓取的数据包部分。wireshark工具中自带了两种类型的过滤器,学会使用这两种过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。

    (1)抓包过滤器

    捕获过滤器的菜单栏路径为Capture --> Capture Filters。用于在抓取数据包前设置。

    img

    如何使用?可以在抓取数据包前设置如下。

    img

    ip host 60.207.246.216 and icmp表示只捕获主机IP为60.207.246.216的ICMP数据包。获取结果如下:

    img

    (2)显示过滤器

    显示过滤器是用于在抓取数据包后设置过滤条件进行过滤数据包。通常是在抓取数据包时设置条件相对宽泛或者没有设置导致抓取的数据包内容较多时使用显示过滤器设置条件过滤以方便分析。同样上述场景,在捕获时未设置抓包过滤规则直接通过网卡进行抓取所有数据包,如下

    img

    执行ping www.huawei.com获取的数据包列表如下

    img

    观察上述获取的数据包列表,含有大量的无效数据。这时可以通过设置显示器过滤条件进行提取分析信息。ip.addr == 211.162.2.183 and icmp。并进行过滤。

    img

    上述介绍了抓包过滤器和显示过滤器的基本使用方法。**在组网不复杂或者流量不大情况下,使用显示器过滤器进行抓包后处理就可以满足我们使用。**下面介绍一下两者间的语法以及它们的区别。

    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

    src host 192.168.1.104

    dst host 192.168.1.104

    (3)端口过滤

    port 80

    src port 80

    dst port 80

    (4)逻辑运算符&& 与、|| 或、!非

    src host 192.168.1.104 && dst port 80 抓取主机地址为192.168.1.80、目的端口为80的数据包

    host 192.168.1.104 || host 192.168.1.102 抓取主机为192.168.1.104或者192.168.1.102的数据包

    !broadcast 不抓取广播数据包

    2、显示过滤器语法和实例

    (1)比较操作符

    比较操作符有== 等于、!= 不等于、> 大于、< 小于、>= 大于等于、<=小于等于。

    (2)协议过滤

    比较简单,直接在Filter框中直接输入协议名即可。注意:协议名称需要输入小写。

    tcp,只显示TCP协议的数据包列表

    http,只查看HTTP协议的数据包列表

    icmp,只显示ICMP协议的数据包列表

    img

    (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的数据包列表

    img

    (4)端口过滤

    tcp.port ==80, 显示源主机或者目的主机端口为80的数据包列表。

    tcp.srcport == 80, 只显示TCP协议的源主机端口为80的数据包列表。

    tcp.dstport == 80,只显示TCP协议的目的主机端口为80的数据包列表。

    img

    (5) Http模式过滤

    http.request.method==“GET”, 只显示HTTP GET方法的。

    (6)逻辑运算符为 and/or/not

    过滤多个条件组合时,使用and/or。比如获取IP地址为192.168.1.104的ICMP数据包表达式为ip.addr == 192.168.1.104 and icmp

    img

    (7)按照数据包内容过滤。假设我要以IMCP层中的内容进行过滤,可以单击选中界面中的码流,在下方进行选中数据。如下

    img

    右键单击选中后出现如下界面

    img

    选中Select后在过滤器中显示如下

    img

    后面条件表达式就需要自己填写。如下我想过滤出data数据包中包含"abcd"内容的数据流。包含的关键词是contains 后面跟上内容。

    img

    看到这, 基本上对wireshak有了初步了解。

    Wireshark抓包分析TCP三次握手

    (1)TCP三次握手连接建立过程

    Step1:客户端发送一个SYN=1,ACK=0标志的数据包给服务端,请求进行连接,这是第一次握手;

    Step2:服务端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它,可以通讯了,并且让客户端发送一个确认数据包,这是第二次握手;

    Step3:服务端发送一个SYN=0,ACK=1的数据包给客户端端,告诉它连接已被确认,这就是第三次握手。TCP连接建立,开始通讯。

    img

    (2)wireshark抓包获取访问指定服务端数据包

    Step1:启动wireshark抓包,打开浏览器输入www.huawei.com。

    Step2:使用ping www.huawei.com获取IP。

    img

    Step3:输入过滤条件获取待分析数据包列表 ip.addr == 211.162.2.183

    img

    图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接的。

    第一次握手数据包

    客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图。

    img

    数据包的关键属性如下:

    SYN :标志位,表示请求建立连接

    Seq = 0 :初始建立连接值为0,数据包的相对序列号从0开始,表示当前还没有发送数据

    Ack =0:初始建立连接值为0,已经收到包的数量,表示当前没有接收到数据

    第二次握手的数据包

    服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 如下图

    img

    数据包的关键属性如下:

    Seq = 0 :初始建立值为0,表示当前还没有发送数据

    Ack = 1:表示当前端成功接收的数据位数,虽然客户端没有发送任何有效数据,确认号还是被加1,因为包含SYN或FIN标志位。(并不会对有效数据的计数产生影响,因为含有SYN或FIN标志位的包并不携带有效数据)

    第三次握手的数据包

    客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1, 如下图:

    img

    数据包的关键属性如下:

    ACK :标志位,表示已经收到记录

    Seq = 1 :表示当前已经发送1个数据

    Ack = 1 : 表示当前端成功接收的数据位数,虽然服务端没有发送任何有效数据,确认号还是被加1,因为包含SYN或FIN标志位(并不会对有效数据的计数产生影响,因为含有SYN或FIN标志位的包并不携带有效数据)。

    就这样通过了TCP三次握手,建立了连接。开始进行数据交互

    img

    下面针对数据交互过程的数据包进行一些说明:

    img

    数据包的关键属性说明

    Seq: 1

    Ack: 1: 说明现在共收到1字节数据

    img

    Seq: 1
    Ack: 951: 说明现在服务端共收到951字节数据

    在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG。如下

    img

    其中,对于我们日常的分析有用的就是前面的五个字段。它们的含义是:SYN表示建立连接,FIN表示关闭连接,ACK表示响应,PSH表示有DATA数据传输,RST表示连接重置。

    Wireshark分析常用操作

    调整数据包列表中时间戳显示格式。调整方法为View -->Time Display Format --> Date and Time of Day。调整后格式如下:

    img

    参考文档

    (1)wireshark抓包详细图文教程

    展开全文
  • wireshark抓包

    千次阅读 2020-12-19 05:51:23
    wireshark抓包使用wireshark抓包分析-抓包实用技巧前言本文整理一下日常抓包使用的一些方法及抓包分析的一些方法。本文基于wireshark2.2.6版本进行抓包处理。其他版本使用方式大同小异。自定义捕获条件wireshark可以...

    wireshark抓包

    使用wireshark抓包分析-抓包实用技巧

    前言

    本文整理一下日常抓包使用的一些方法及抓包分析的一些方法。

    本文基于wireshark2.2.6版本进行抓包处理。其他版本使用方式大同小异。

    自定义捕获条件

    wireshark可以将抓包数据保存到硬盘上。若需要长时间抓包的话,需要防止内存过大,因此一般需要指定一定大小切包,释放内存。

    在捕获-选项菜单中可以设置捕获包的一些配置。

    输入配置

    在输入选项卡中可以选择抓取指定接口,在下方过滤器中可以输入过滤条件,比如host 172.17.1.100抓取指定ip的包,或tcp port 9055抓取指定端口的包。

    输出配置

    在输出选项卡中可以设置保存的文件路径,包数量分组,文件大小分组,文件个数等配置。

    文件保存路径:需要设置具体的文件名,wireshark会自动在文件名后加上序号和时间戳信息。比如文件名为1.pcapng,则会自动保存为如1_00001_20190625161142.pcapng的文件名。

    自动创建新文件可以通过接收到包的数量和大小以及抓包时间进行设置,通常通过文件大小抓包即可。

    文件个数:通过勾选使用一个唤醒缓冲器来保存最大的文件数量。防止文件过多

    在选项选项卡中还有一些其他的配置,根据实际情况决定是否勾选。

    命令行抓包

    wireshark提供了很强大的GUI界面,但是在生产环境长时间抓包使用GUI界面有以下问题,界面刷新需要消耗资源,且GUI界面相比命令行界面,易出现闪退,卡死等不稳定现象,同时即使配置了切包,也会占用极大的内存,需要将包信息显示在界面,因此必须要等每次切包后才能释放内存。相比命令行将数据持久化到硬盘上会立即释放内存,因为界面上只需要显示简单的抓包数量和文件保存路径等信息。

    下图是通过GUI界面进行抓包的内存占用情况,配置的是100M切一个文件,一般需要占用几百兆的内存。

    下图是通过命令行抓包的内存占用情况,配置的是100M切一个文件,仅仅占用几兆内存。

    在wireshark安装目录除了wireshark用于GUI界面的抓包程序以外还有一些其他的工具,比如reordercap、text2pcap、tshark、rawshark、mergecap、mmdbresolve、capinfos、dumpcap、editcap等,其中tshark和dumpcap是用于命令行抓包的工具。tshark就是命令行版的wireshark,tshark底层使用的即为dumpcap,因此tshark的功能相对强大一些,性能上则弱于dumpcap。

    下图是在传输速率为每秒37244,共传输1000000个825B大小的帧下产生的测试结果。

    具体相关测试可以到Wireshark Packet Capture: Tshark Vs. Dumpcap查看,里面还有更多的不同的基准测试结果。(可能需要FQ)。

    我们可以通过dumpcap抓包,然后通过tshark或wireshark进行包分析。

    通过dumpcap -h查看命令参数。

    -i: 抓取哪个网络接口的包

    -f: 过滤器,只抓取满足过滤器的包。

    -b filesize: 保存文件大小,即切包大小。

    -b files:20: 保存文件个数。

    -w: 保存的文件名。

    在wireshark安装目录有*.html包含各个工具的命令及示例。

    通过以上参数可以实现和GUI界面通过的抓包策略。比如dumpcap -i 1 -f "tcp port 8080" -w D:\1.pcapng -b filesize:100000 -b files:20表示抓取接口1的8080端口的tcp包,将数据保存到D:\1.pcapng路径下,通过100M切一个文件,最多保存20个最新的文件。

    抓取多个接口

    若需要抓取多个接口的包,则通过多个-i参数指定,通过每个-i参数后面可以带上-f配置过滤器。比如dumpcap -i 1 -i 3 -f "tcp port 8080" -w D:\1.pcapng -b表示抓取接口1和接口3的包。

    通常来说我们需要抓取某个ip的包,那么我们需要知道这个ip是那个网络接口。通过dumpcap -D可以获取所有网络接口。

    C:\Users\Dm_ca>dumpcap -D

    1. \Device\NPF_{E78E9C1F-C71D-40E6-A233-BEFE0A59FD3F} (浠ュお缃?3)

    2. \Device\NPF_{50A4BF57-AEF6-42CB-B481-E3BBE16F784A} (鏈湴杩炴帴* 2)

    3. \Device\NPF_{A37B6157-FB22-4FC7-870F-6FB76C950BCE} (vEthernet (Default Switch))

    4. \Device\NPF_{B6BC2FEF-E6A0-4E7F-BCF6-A4CBE39560A0} (鏈湴杩炴帴* 8)

    5. \Device\NPF_{E3B69F06-9D31-4970-B3B1-F7FC29D6F343} (Npcap Loopback Adapter)

    6. \Device\NPF_{B70FF207-6758-49F3-BD8B-1E58EBAAA350} (WLAN)

    7. \Device\NPF_{196071AF-E992-498F-99EE-32D5238EE947} (鏈湴杩炴帴* 10)

    8. \Device\NPF_{4EA95CCE-F4A3-4C1E-884F-033C2A475349} (鏈湴杩炴帴* 9)

    9. \Device\NPF_{2F5E422D-8579-4DA4-BD78-02AE4EAEA836} (浠ュお缃?2)

    10. \Device\NPF_{F4BDE9E1-950B-402B-9CD6-281119917271} (鏈湴杩炴帴* 3)

    最左边的为我们输入的参数-i的编号,右边的乱码的是中文名称本地连接等字样,如果不确定使用哪个网卡,也可以到wireshark中确认一下。在输入选项卡选择接口下拉会有对应的地址。

    命令输入后就会显示正在抓包的一些信息,Packets为抓取的包数,File为保存的文件名,多切了文件之后,则会显示多个File行。

    C:\Users\Dm_ca>dumpcap -i 5 -f "tcp" -w E:\1.pcapng -b filesize:100000 -b files:20

    Capturing on 'Npcap Loopback Adapter'

    File: E:\1_00001_20190629091754.pcapng

    Packets: 4

    抓包分析

    通过dumpcap抓包后我们可以将抓包文件通过wireshark界面打开进行简单分析。

    若需要根据特定条件在大量信息中筛选出想要的信息,则需要通过tshark进行命令行的筛选。

    案例:生产环境中发现时常有丢包现象,通过wireshark进行简单分析发现有许多RST的重置连接包。追踪流查看发现,没有正常建立连接。

    通过tcp.flags.reset == 1筛选出大量的重置连接。大约占比1%的请求数据量。为了确认每个包是不是都是同样的原因。我们需要追踪每个包的流进行查看。

    在wireshark上选择指定的包右键在弹出的菜单中选择追踪流-TCP流追踪完整的流。

    但是如果要追踪大量的流,在wireshark上操作就不太方便了。由于wireshark不支持批量选择包跟踪流,因此只能一个个跟踪。wireshark又不支持上一步历史搜索,追踪流实际wireshark是用了tcp.stream eq XXXX筛选流号。因此我们需要重新在通过前一个筛选指令重新筛选。这样就非常麻烦,尤其是若一个切包比较大的话,处理起来非常的慢。由于上述原因,我们通过tshark命令行筛选出异常连接后批量跟踪每个流并保存到文件进行分析。

    批量分析

    通过tshark -h可以查看命令从参数,由于多命令和dumpcap类似,但是tshark还扩展了其他命令。

    -r: 读取本地的数据包文件。

    -R: 捕获过滤器,可用于捕获符合过滤规则的报文。

    -Y: 显示过滤器,用于过滤已捕获的报文。

    -2: 若此时输入回车,则会将包信息打印到控制台上。

    -w: 通过过滤器删选后的包,保存另存到文件中,比如我们需要从某个包筛选出关键信息保存后进行单独分析。

    -T fields : 格式化输出,输出属性,我们要通过-e筛选包的指定属性,则需要用该参数。

    -e: 获取指定包属性,必须先指定-T fields格式化输出,若有多个属性输出,则使用多个-e,比如-e tcp.stream -e tcp.port。

    捕获过滤器

    捕获过滤器是在捕获菜单中,直接用过滤出指定的条件,不满足条件的是不会被捕获的。

    显示过滤器

    显示过滤器则是在已捕获的包中进行过滤显示。

    捕获过滤器的规则是host 192.168.0.115 and tcp port 8080,而对应的显示过滤器规则是ip.addr eq 192.168.0.115 and tcp.port eq 8080,两者的语法还是不同的。

    实际通过tshark命令过滤时发现,使用的都是显示过滤器筛选。而在通过dumpcap -f抓包时需要使用捕获过滤器的语法。

    在简单了解参数之后,开始使用命令筛选出我们需要的包。

    批量筛选包

    筛选出需要的包。通过tshark -r 172.18.12.1_00085_20190624193404.pcapng -2 -R "tcp.flags.reset == 1" 筛选出我们需要的包。

    PS E:\wiresharkpackage\analysis-20190625> tshark -r 10.1.13.246-14-25.pcapng -2 -R "tcp.flags.reset == 1"

    1 9341.446421 50094 TCP 60 50094 鈫?9055 [RST] Seq=1 Win=0 Len=0

    2 164451.986850 9055 TCP 54 9055 鈫?51707 [RST, ACK] Seq=966 Ack=717 Win=0 Len=0

    3 196000.984728 9055 TCP 54 9055 鈫?55516 [RST, ACK] Seq=762 Ack=717 Win=0 Len=0

    4 206748.235089 21 TCP 54 21 鈫?56839 [RST, ACK] Seq=432 Ack=121 Win=0 Len=0

    5 251344.165367 21 TCP 54 21 鈫?61652 [RST, ACK] Seq=433 Ack=121 Win=0 Len=0

    6 260534.172129 21 TCP 54 21 鈫?62957 [RST, ACK] Seq=433 Ack=121 Win=0 Len=0

    7 271885.709376 21 TCP 54 21 鈫?64407 [RST, ACK] Seq=434 Ack=121 Win=0 Len=0

    ...

    和wireshark界面过滤一样,它会筛选出所有满足过滤条件的包。

    对每个包进行追踪。由于追踪包的命令为tcp.stream eq XXXX,因此我们需要知道tcp.stream值才可以追踪该包。我们上面打印出了相关的包信息。通过-e可以获取指定的包属性,因此在上面的条件加上-T fields -e tcp.stream,表示只需要获取流号。

    powershell PS E:\wiresharkpackage\analysis-20190625> tshark -r 10.1.13.246-14-25.pcapng -2 -R "tcp.flags.reset == 1" -T fields -e tcp.stream 103 1048 1319 1419 1544 1687 ...

    追踪到流号后我们就需要对每个流进行跟踪并保存。将流号保存到变量中,遍历每个流号进行筛选即可,通过>>到文本中。在windows下通过powershell可以很方便的配合tshark命令执行脚本。

    $streams = tshark -r 10.1.13.246-14-25.pcapng -2 -R "tcp.flags.reset == 1" -T fields -e tcp.stream

    $streams | foreach {tshark -r 10.1.13.246-14-25.pcapng -2 -R "tcp.stream eq $_" -t ad >> 20190628.txt}

    若想要保存成pcapng格式,则可以通过拼凑筛选条件进行筛选,然后通过-w 输出为pcapng格式。

    $streams = tshark -r 10.1.13.246-14-25.pcapng -2 -R "tcp.flags.reset == 1" -T fields -e tcp.stream

    $filter=""

    foreach($stream in $streams)

    {

    $filter = "$filter tcp.stream eq $stream or"

    }

    ## 移除最后多余的or

    $filter= $filter.trim("or")

    tshark -r 10.1.13.246-14-25.pcapng -2 -R "tcp.stream eq $filter" -t ad -w 20190628.pcapng

    通过将流号进行拼凑,然后筛选出所有流号的包。

    合并包

    我们可以通过tshark过滤出我们需要的包并保存为文件,有时候我们可能需要把若干个包合并起来一起分析。则可以通过mergecap进行合并。通过Usage: mergecap [options] -w |- [ ...],比如mergecap.exe -w e:\file\Wireshark\port.pcapng e:\file\Wireshark\port*,将port开头的文件合并到port.pcapng

    结论

    通过对抓包文件进行脚本化的处理,可以做许多更为强大的数据分析。比如在软件层面上对网络连接进行异常监控及预警。实时的对包进行分析,有异常连接可以做到即使预警。

    参考文献

    展开全文
  • Wireshark 抓包分析POP3 和SMTP 协议 一 实验目的 1. 初步掌握Wireshark 的使用方法熟悉抓包流程 2. 通过对Wireshark 抓包实例进行分析加强对POP3 协议和 SMTP 协议的理解 3. 培养动手实践能力和自主学习自主探究的...
  • 1、WireShark快速分析数据包技巧 (1)确定 Wireshark的物理位置。如果没有一个正确的位置,启动 Wireshark后会花费很长时问捕获一些与自己无关的数据。“ (2)选择捕获接口。一般都是选择连接到Internet网络的接口,...

    1、WireShark快速分析数据包技巧

    (1)确定 Wireshark的物理位置。如果没有一个正确的位置,启动 Wireshark后会花费很长时问捕获一些与自己无关的数据。“

    (2)选择捕获接口。一般都是选择连接到Internet网络的接口,这样才可以捕获到与网络相关的数据。否则,捕获到的其它数据对自己也没有任何帮助。

    (3)使用捕获过滤器。通过设置捕获过滤器,可以避免产生过大的捕获数据。这样用户在分析数据时,也不会受其它数据干扰。而且,还可以为用户节约大量的时间。”

    (4)使用显示过滤器。通常使用捕获过滤器过滤后的数据,往往还是很复杂。为了使过滤的数据包再更细致,此时使用显示过滤器进行过滤。“

    (5)使用着色规则。通常使用显示过滤器过滤后的数据,都是有用的数据包。如果想更加突出的显示某个会话,可以使用着色规则高亮显示。

    (6)构建图表。如果用户想要更明显的看出一个网络中数据的变化情况,使用图表的形式可以很方便的展现数据分布情况。“

    (7)重组数据。当传输较大的图片或文件时,需要将信息分布在多个数据包中。这时候就需要使用重组数据的方法来抓取完整的数据。Wireshark的重组功能,可以重组一个会话中不同数据包的信息,或者是重组一个完整的图片或文件。

    2、实战:WireShark抓包及快速定位数据包技巧

    2.1常见协议包

    ARP协议

    ICMP协议

    TCP协议

    UDP协议

    DNS协议

    HTTP协议

    2.2使用 WireShark 进行抓包

    启动WireSharke

    2.3 混杂模式介绍

    1)混杂模式概述:混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃

    一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。

    2)关闭和开启混杂模式方法

    打开wireshark,点击capture(捕获)——Options(选项)

    勾选箭头,Enable promiscuous mde on all interfaces(在所有接口上使用混杂模式),这样就开启混杂模式,取消勾选,就变为普通模式

    2.4 WireShark的过滤使用

    开启混杂模式,在捕获过滤器处输入如下指令

    1)host 172.16.12.15 捕获该IP相关的数据包

    2)src 172.16.12.15 捕获该IP发出去的数据包

    3)dst 172.16.12.15 捕获所有发给该IP的数据包

    4)port 80 捕获和80端口有关的数据包

    5)ether host [MAC地址] 捕获该MAC地址相关的数据包

    在显示过滤器下面输入如下指令

    1、tcp/arp/udp/http/dns等 捕获所有tcp数据包

    2、ip.src_host == 172.16.12.15 or ip. dst_host ==172.16.12.2 捕获源地址是15或者目标地址是2的ip

    3、ip.src_host == 172.16.12.15 and ip.dst_host ==172.16.12.2 捕获源地址是15且目标地址是2的ip and可以用&&表示

    4、ip.addr == == 172.16.12.15 and ip.addr ==172.16.12.2

    3 、实战:使用 WireShark 对常用协议抓包并分析原理

    协议分析的时候我们关闭混淆模式,避免一些干扰的数据包存在。

    3.1常用协议分析-ARP协议

    地址解析协议(英语:Address Resolution Protocol,缩写:ARP)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在 IPv4 中极其重要。ARP是通过网络地址来定位 MAC 地址。

    关闭混杂模式,显示过滤器输入arp

    Address Resolution Protocol (reply) #ARP 地址解析协议 reply 表示回复包

    Hardware type: Ethernet (1) #硬件类型

    Protocol type: IPv4 (0x0800 ) #协议类型~

    Hardware size: 6 #硬件地址

    Protocol size: 4 #协议长度

    Opcode: reply(2) #操作码,该值为2 表示ARP回复包 1表示request请求包

    Sender MAC address: XXXXXXXXXXXX(9c:61:21:75:55:50) #源MAC地址Sender IP address: 192.168.1.1 #源IP地址

    Target MAC address: VMware_f1:35:ee (00:0c:29:f1:35:ee) #目标MAC地址Target IP address: 192.168.1.53 #目标 IP地址

    总结:我们可以看到到应答包补全了自己的 MAC 地址,目的地址和源地址做了替换我们再来看两个数据包的请求和过程

    Who has 192.168.1.1? Tell 192.168.1.53

    192.168.1.1 is at 9c:61:21:75:55:50

    192.168.1.53 广播:谁有192.168.1.1的MAC地址?

    192.168.1.1 应答:192.168.1.1的MAC地址是XXXXXXXXXXX

    3.2常用协议分析-ICMP协议

    ICMP请求包

    Internet Control Message Protocol

    Type:8 (Echo (ping) request)

    Code:0 #type0 协议类型8 code 0 代码0 表示请求报文

    Checksum:Oxfd1c [correct] #校验和,用户检查错误的数据

    [Checksum Status:Good] #校验状态:good

    Identifier (BE):63126(Oxf696)

    Identifier (LE):38646(0x96f6) #ID值,在应答包中返回该字段

    Sequence Number (BE):1 (0x0001) #序列号依旧在应答包中返回该字段

    Sequence Number (LE):256 (0x0100)

    [Response frame:654] 响应帧的序列号:654

    Timestamp from icmpdata:Sep 8,202108:54:30.000000000 EDT [Timestamp from icmp data(relative):0.746635014 seconds] Data (48 bytes)

    ICMP响应包

    Internet Control Message Protocol

    Type:0(Echo (ping) reply)

    Code:0 #type0 协议类型0 code 0 代码0 表示回显应答报文

    Checksum:0x051d [correct] #校验和

    「Checksum Status:Goodl

    Identifier (BE):63126(Oxf696)

    Identifier (LE):38646(0x96f6)

    Sequence Number (BE):1 (0×0001)

    Sequence Number (LE):256 (0x0100) #这里的ID和序列号和请求包一样

    [Request frame:653] #请求帧的序列号

    [Response time:60.003 ms] #响应时间

    Timestamp from icmp data: Sep 8,2021 08:54:30.000000000 EDT [Timestamp from icmp data(relative):0.806637645seconds]Data (48 bytes) #填充数据,共48字节

    本机发送一个ICMP Echo Request的包

    接收方返回一个ICMP Echo Reply,包含了接受到数据拷贝和一些其他命令

    3.3 常用协议分析-TCP协议

    三次握手

    三次握手统计图

    到这里三次握手就结束了,下面是三次握手统计图

    四次挥手

    我们分析一下过程,我们在终端输入 EXIT 实际上是在我们Kali上执行的命令,表示我们SSHD的Server 端向客户端发起关闭链接请求。“

    第一次挥手:服务端发送一个[FIN+ACK],表示自己没有数据要发送了,想断开连接,并进入FIN WAIT 1状态

    第二次挥手:客户端收到 FIN 后,知道不会再有数据从服务端传来,发送 ACK 进行确认,确认序号为收到序号+1(与SYN相同,一个 FIN占用一个序号),客户端进入CLOSE_WAIT状态。

    第三次挥手:客户端发送[FIN+ACK]给对方,表示自己没有数据要发送了,客户端进入LAST_ACK 状态,然后直接断开TCP会话的连接,释放相应的资源。+

    第四次挥手:服务户端收到了客户端的 FIN 信令后,进入TIMED_WAIT状态,并发送ACK确认消息。服务端在TIMED_WAIT状态下,等待一段时间,没有数据到来,就认为对面已经收到了自己发送的ACK 并正确关闭了进入CLOSE 状态,自己也断开了TCP连接,释放所有资源。当客户端收到服务端的ACK回应后,会进入CLOSE状态并关闭本端的会话接口,释放相应资源。

    3.4 常用协议分析-GTTP协议

    ┌──(root💀kali)-[~]

    └─# curl -I baidu.com 请求百度头部字段

    HTTP/1.1 200 OK

    Date: Thu, 09 Sep 2021 11:53:50 GMT

    Server: Apache

    Last-Modified: Tue, 12 Jan 2010 13:48:00 GMT

    ETag: "51-47cf7e6ee8400"

    Accept-Ranges: bytes

    Content-Length: 81

    Cache-Control: max-age=86400

    Expires: Fri, 10 Sep 2021 11:53:50 GMT

    Connection: Keep-Alive

    Content-Type: text/html

    第一步:我们我们发送了一个HTTP的HEAD请求

    第二步:服务器收到我们的请求返回了一个Seq/ACK进行确认

    第三步:服务器将 HTTP的头部信息返回给我们客户端 状态码为200 表示页面正常

    第四步:客户端收到服务器返回的头部信息向服务器发送Seq/ACK进行确认

    发送完成之后客户端就会发送FIN/ACK来进行关闭链接的请求。

    4、实战:WireShark抓包解决服务器被黑上不了网

    场景:服务器被黑上不了网,可以ping通网关,但是不能上网。

    模拟场景

    修改主机TTL值为1,下面的方式是我们临时修改内核参数。

    ┌──(root💀kali)-[~]

    └─# cat /proc/sys/net/ipv4/ip_default_ttl

    64

    ┌──(root💀kali)-[~]

    └─# echo "1" > /proc/sys/net/ipv4/ip_default_ttl

    ┌──(root💀kali)-[~]

    └─# cat /proc/sys/net/ipv4/ip_default_ttl

    1

    TTL(time to live): 数据报文的生存周期。每过一个网络设备,TTL值-1

    默认 linux 操作系统值:64,每经过一个路由节点,TTL值减1。TTL值为0时,说明目标地址不可达并返回:Time to live exceeded

    作用:防止数据包,无限制在公网中转发。我们测试结果

    ┌──(root💀kali)-[~]

    └─# ping 192.168.0.1

    PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.

    From 192.168.0.36 icmp_seq=1 Time to live exceeded

    64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=1.99 ms #网关可以ping通

    ┌──(root💀kali)-[~]

    └─# ping baidu.com -c1

    PING baidu.com (220.181.38.148) 56(84) bytes of data.

    From localhost (192.168.0.1) icmp_seq=1 Time to live exceeded

    #出了网关,TTL为0,数据包丢弃,百度ping不通

    我们可以看到提示我们 Time to live exceeded 这表示超过生存时间,

    我们判断和目标之间经过多少个网络设备是根据目标返回给我们的 TTL 值来判断的,因为我们发送的数据包是看不到的。

    开启抓包,过滤ICMP,然后ping百度,抓包结果如下

    我们可以看到第一个包是发送了一个ping 请求包ttl=1

    然后呢我们收到了网关 192.168.1.1 返回给我们的数据包告诉我们超过数据包生存时间,数据包被丢弃。

    那我们把 TTL值修改成2会有什么效果呢?

    ┌──(root💀kali)-[~]

    └─# echo "2" > /proc/sys/net/ipv4/ip_default_ttl

    ──(root💀kali)-[~]

    └─# ping baidu.com -c1 1 ⨯

    PING baidu.com (220.181.38.251) 56(84) bytes of data.

    From localhost (192.168.1.1) icmp_seq=1 Time to live exceeded

    我们对比数据包发现返回我们数据包被丢弃的源地址变成了220.181.38.251,这证明了数据包在网络中已经到达了下一个网络设备才被丢弃,由此我们还判断出我们的运营商网关地址为 220.181.38.251,但是我们并没有到达目标主机。

    那TTL恢复成正常的64,结果如何?

    ┌──(root💀kali)-[~]

    └─# echo "64" > /proc/sys/net/ipv4/ip_default_ttl

    ┌──(root💀kali)-[~]

    └─# ping baidu.com -c1

    PING baidu.com (220.181.38.148) 56(84) bytes of data.

    64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=50 time=16.9 ms

    目标返回给我们的TTL值为50,这表示我们的TTL值需要大于64-50=14才可以访问百度

    下载mtr 路由跟踪工具进行查看

    ┌──(root💀kali)-[~/Desktop]

    └─# apt install mtr --fix-missing

    检测到达www.baidu.com的所有节点的通信质量

    ┌──(root💀kali)-[~/Desktop]

    └─# mtr www.baidu.com

    如图,主机连接到百度需要经过13个设备(13跳),100%表示丢包严重,可能是被防火墙过滤、

    展开全文
  • 能够使用抓包工具捕获网络中的数据包,对捕获的数据包进行筛选分析,分析网络流量是否正常。 通过抓包分析应用层协议,客户端软件和服务端软件通信,交互过程。 通过抓包工具分析传输层协议如何建立TCP连接,如何...
  • wireshark抓包中的rtp inband dtmf频谱分析.doc
  • Wireshark抓包教程

    2018-09-13 15:41:10
    Wireshark抓包教程
  • 学习sip的基础知识以及如何抓取sip的方法
  • wireshark抓包实验

    2018-07-09 02:40:08
    wireshark网络抓包,TCP,UDP的抓包,包括三次握手,四次挥手。
  • dnp3 wireshark抓包.zip

    2019-08-06 17:07:14
    dnp3 协议通讯过程中使用wireshark抓取传输报文,包括连接,读操作,写操作等等基本交互操作

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,336
精华内容 15,734
关键字:

wireshark抓包

友情链接: cifar10.rar