当前位置: 星创客 > 学习资源 > 讲师博文 > wireshark抓包工具如何使用
wireshark抓包工具如何使用 时间:2018-01-15     来源:星创客

Wireshark 是网络包分析工具,是今天能使用的好的开源网络分析软件。网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。Wireshark是开源软件项目,用GPL协议发行,所有的源代码在GPL框架下都可以免费使用。因为以上原因,人们可以很容易在Wireshark上添加新的协议,或者将其作为插件整合到您的程序里,这种应用十分广泛。

1.1主要应用

网络管理员用来解决网络问题

网络安全工程师用来检测安全隐患

开发人员用来测试协议执行情况

用来学习网络协议

1.2.特性

支持UNIX和Windows平台 

在接口实时捕捉包

能详细显示包的详细协议信息 

可以打开/保存捕捉的包

可以导入导出其他捕捉程序支持的包数据格式

可以通过多种方式过滤包

多种方式查找包

通过过滤以多种色彩显示包

创建多种统计分析

1.3适合人群

网络管理员

网络工程师

安全工程师

IT运维人员…

1.4 平台支持

Windows,linux,unix

 

1.5相关软件

Sniffer,omnipeek,fiddler,httpwatch,科学网络分析系统

 

抓包原理

(1) 网络原理

a) 本机环境:直接抓本机网卡进出流量

b) 集线器环境:流量防洪,同一冲突域

c) 交换机环境:

端口镜像

arp欺骗

mac泛洪

(2) 底层原理

Win/libcap:wireshark抓包时依赖的库文件

Capture:抓包引擎,利用Win/libcap从底层抓取网络数据包,Win/libcap提供通用生物抓包借口,能从不同类型的网络接口获取数据包;

Wiretap:格式支持,从抓包文件中读取数据包,支持多种格式

Core:核心引擎,通过函数调用将其他模块连接在一起,起到联动调度的作用

GTK 1/2:图形处理工具,处理用户的输入输出显示

 

2.wireshark使用

2.1安装流程

参考:https://jingyan.baidu.com/article/bad08e1e87d68209c9512153.html

2.2界面分析

2.3 Wireshark 主界面的操作菜单

File  打开文件

    Open           打开文件

    Open Recent    打开近期访问过的文件

    Merge…         将几个文件合并为一个文件

    Close          关闭此文件

    Save As…       保存为…

    File Set       文件属性

    Export         文件输出

    Print…         打印输出

    Quit           关闭

Edit  编辑

    Find Packet…   搜索数据包

    Find Next       搜索下一个

    Find Previous   搜索前一个

    Mark Packet (toggle)  对数据包做标记(标定)

    Find Next Mark        搜索下一个标记的包

    Find Previous Mark     搜索前一个标记的包

    Mark All Packets       对所有包做标记

    Unmark All Packets     去除所有包的标记

    Set Time Reference (toggle) 设置参考时间 (标定)

    Find Next Reference         搜索下一个参考点

    Find Previous Reference     搜索前一个参考点

    Preferences                 参数选择

View 视图

    Main Toolbar       主工具栏

    Filter Toolbar     过滤器工具栏

    Wireless Toolbar   无线工具栏

    Statusbar          运行状况工具栏

    Packet List        数据包列表

    Packet Details     数据包细节

    Packet Bytes       数据包字节

    Time Display Format        时间显示格式

    Name resolution    名字解析(转换:域名/IP地址,厂商名/MAC地址,端口号/端口名)

    Colorize Packet List        颜色标识的数据包列表

    Auto Scroll in Live Capture 现场捕获时实时滚动

    Zoom In                     放大显示

    Zoom Out                    缩小显示

    Normal Size                 正常大小

    Resize All Columns          改变所有列大小

    Expand Sub trees            扩展开数据包内封装协议的子树结构

    Expand All                  全部扩展开

    Collapse All                全部折叠收缩

    Coloring Rules…            对不同类型的数据包用不同颜色标识的规则

    Show Packet in New Window   将数据包显示在一个新的窗口

    Reload                      将数据文件重新加

Go  运行

    Back                        向后运行

    Forward                     向前运行

    Go to packet…              转移到某数据包

    Go to Corresponding Packet  转到相应的数据包

    Previous Packet             前一个数据包

    Next Packet                 下一个数据包

    First Packet                第一个数据包

    Last Packet                 后一个数据包

Capture 捕获网络数据

    Interfaces…                选择本机的网络接口进行数据捕获

    Options…                   捕获参数选择

    Start                       开始捕获网络数据

    Stop                        停止捕获网络数据

    Restart                     重新开始捕获

    Capture Filters…           选择捕获过滤器

Analyze 对已捕获的网络数据进行分析

    Display Filters…           选择显示过滤器

    Apply as Filter             将其应用为过滤器

    Prepare a Filter            设计一个过滤器

    Firewall ACL Rules          防火墙ACL规则

    Enabled Protocols…         已可以分析的协议列表

    Decode As…                 将网络数据按某协议规则解码

    User Specified Decodes…    用户自定义的解码规则

    Follow TCP Stream  跟踪TCP传输控制协议的通信数据段,将分散传输的数据组装还原

    Follow SSL stream           跟踪SSL 安全套接层协议的通信数据流

    Expert Info                 专家分析信息

    Expert Info Composite       构造专家分析信息

Statistics对已捕获的网络数据进行统计分析

    Summary                     已捕获数据文件的总统计概况

    Protocol Hierarchy          数据中的协议类型和层次结构

    Conversations               会话

    Endpoints                   定义统计分析的结束点

    IO Graphs                   输入/输出数据流量图

    Conversation List           会话列表

    Endpoint List               统计分析结束点的列表

    Service Response Time       从客户端发出请求至收到服务器响应的时间间隔

    ANSI                        按照美国标准协会的ANSI协议分析

    Fax T38 Analysis...         按照T38传真规范进行分析

    GSM                         全球移动通信系统GSM的数据

    H.225                       H.225协议的数据

    MTP3                        MTP3协议的数据

    RTP                         实时传输协议RTP的数据

    SCTP                        数据流控制传输协议SCTP的数据

    SIP...                      会话初始化协议SIP的数据

    VoIP Calls                  互联网IP电话的数据

    WAP-WSP                     无线应用协议WAP和WSP的数据

    BOOTP-DHCP                  引导协议和动态主机配置协议的数据

    Destinations…              通信目的端

    Flow Graph…                网络通信流向图

    HTTP                        超文本传输协议的数据

    IP address…                互联网IP地址

    ISUP Messages…             ISUP协议的报文

    Multicast Streams           多播数据流

    ONC-RPC Programs 

    Packet Length               数据包的长度

    Port Type…                 传输层通信端口类型

    TCP Stream Graph            传输控制协议TCP数据流波形图

Help 帮助

    Contents Wireshark          使用手册

    Supported Protocols         Wireshark支持的协议清单

    Manual Pages                使用手册(HTML网页)

    Wireshark Online            Wireshark 在线

About Wireshark             关于Wireshark

 

2.4 基本使用

(1) 选择网络接口,并双击选择的网卡启动抓包,如:双击以太网2

(2) 点击红框的按钮以结束

(3)保存

(3) 数据解析

3实时捕捉数据包

3.1介绍

实时捕捉数据包时Wireshar的特色之一

Wiershark捕捉引擎具备以下特点

支持多种网络接口的捕捉(以太网,令牌环网,ATM...)

支持多种机制触发停止捕捉,例如:捕捉文件的大小,捕捉持续时间,捕捉到包的数量...

捕捉时同时显示包解码详情

设置过滤,减少捕捉到包的容量。长时间捕捉时,可以设置生成多个文件。对于特别长时间的捕捉,可以设置捕捉文件大小罚值,设置仅保留后的N个文件等手段。

Wireshark捕捉引擎在以下几个方面尚有不足

从多个网络接口同时实时捕捉,(但是您可以开始多个应用程序实体,捕捉后进行文件合并)

根据捕捉到的数据停止捕捉(或其他操作)

3.2 准备工作

第一次设置Wireshark捕捉包可能会遇到一些小麻烦

  提示

关于如何进行捕捉设置的较为全面的向导可以在:

//wiki.wireshark.org/CaptureSetup.

 

这里有一些常见需要注意的地方

你必须拥有root/Administrator特权以开始捕捉[12]

必须选择正确的网络接口捕捉数据

如果您想捕捉某处的通信,你必须作出决定:在什么地方可以捕捉到

……以及许多

如果你碰到设置问题,建议看看前面的那个向导,或许会有所帮助

3.3开始捕捉

可以使用下任一方式开始捕捉包

使用 打开捕捉接口对话框,浏览可用的本地网络接口,选择您需要进行捕捉的接口启动捕捉

你也可以使用" 捕捉选项"按钮启动对话框开始捕捉,如果您前次捕捉时的设置和现在的要求一样,您可以点击" 开始捕捉"按钮或者是菜单项立即开始本次捕捉。

如果你已经知道捕捉接口的名称,可以使用如下命令从命令行开始捕捉: 

wireshark -i eth0 -k

上述命令会从eht0接口开始捕捉。 

3.4捕捉接口对话框

如果您从捕捉菜单选择"Interface...",将会弹出如“"Capture Interfaces"捕捉接口对话框”所示的对话框

  警告

打开"Capture Interfaces"/捕捉对话框时 同时正在显示捕捉的数据,这将会大量消耗您的系统资源。尽快选择您需要的接口以结束该对话框。避免影响系统性能 

  注意

这个对话框只显示本地已知的网络接口,Wireshark可能无法检测到所有的本地接口,Wireshark不能检测远程可用的网络接口,Wireshark只能使用列出可用的网络接口 

"Capture Interfaces"捕捉接口对话框

描述 

从操作系统获取的接口信息 

IP 

Wireshark能解析的第一个IP地址,如果接口未获得IP地址(如,不存在可用的DHCP服务器),将会显示"Unkow",如果有超过一个IP的,只显示第一个(无法确定哪一个会显示). 

Packets 

打开该窗口后,从此接口捕捉到的包的数目。如果一直没有接收到包,则会显示为灰度 

Packets/s 

近一秒捕捉到包的数目。如果近一秒没有捕捉到包,将会是灰度显示 

Stop 

停止当前运行的捕捉 

Capture 

从选择的接口立即开始捕捉,使用后一次捕捉的设置。 

Options 

打开该接口的捕捉选项对话框,见 第 4.5 节 “捕捉选项对话框” 

Details(仅Win32系统) 

打开对话框显示接口的详细信息 

Close 

关闭对话框 

3.5捕捉选项对话框

如果您从捕捉菜单选择"start..."按钮(或者从主工具栏选择对应的项目),Wireshark弹出"Capture Option/捕捉选项"对话框。如图 4.2 “"Capture Option/捕捉选项"对话框”所示

"Capture Option/捕捉选项"对话框

  提示

如果你不了解各项设置的意义,建议保持默认。 

你可以用对话框中的如下字段进行设置

3.5.1.捕捉桢

Interface 

该字段指定你想用于进行捕捉的借口。一次只能使用一个接口。这是一个下拉列表,简单点击右侧的按钮,选择你想要使用的接口。默认第一是支持捕捉的non-loopback(非环回)接口,如果没有这样的接口,第一个将是环回接口。在某些系统中,回借口不支持捕捉包(windows平台下的环回接口就不支持。)

在命令行使用-i <interface>参数可以替代该选项

IP address 

表示选择接口的IP地址。如果系统未指定IP地址,将会显示为"unknown" 

Link-layer header type 

除非你有些特殊应用,尽量保持此选项默认。 

Buffer size: n megabyte(s) 

输入用于捕捉的缓层大小。该选项是设置写入数据到磁盘前保留在核心缓存中捕捉数据的大小,如果你发现丢包。尝试增大该值。

  注意

该选项仅适用于Windows平台

Capture packets in promiscuous mode 

指定Wireshark捕捉包时,设置接口为杂收模式(有些人翻译为混杂模式)。如果你未指定该选项,Wireshark 将只能捕捉进出你电脑的数据包(不能捕捉整个局域网段的包)[13]

  注意

如果其他应用程序将网卡设置为杂收模式,即使不选中该选项,也会工作于杂收模式下。

  注意

即使在杂收模式下,你也未必能够接收到整个网段所有的网络包。详细解释见//www.wireshark.org/faq.html#promiscsniff

 

Limit each packet to n bytes 

指定捕捉过程中,每个包的大字节数。在某些地方被称为。"snaplen".[14]如果禁止该选项,默认值为65535,这适用于大多数协议,下面是一些大多数情况下都适用的规则(这里又出现了拇指规则,第一章,系统需求时提到过。这里权且翻译作普适而非绝对的规则))

如果你不确定,尽量保持默认值

如果你不需要包中的所有数据。例如:如果您仅需要链路层、IP和TCP包头,您可能想要选择一个较小的快照长度。这样只需要较少的cpu占用时间用于复制包,包需要的缓存也较少。如此在繁忙网络中捕捉时丢失的包也可能会相应少一点。

如果你没有捕捉包中的所有数据(适用snpaplen截断了包),你可能会发现有时候你想要的包中的数据部分被截断丢弃了。或者因为缺少重要的部分,想对某些包进行重组而发现失败。

Capture Filter 

指定捕捉过滤。捕捉过滤器将会在有 “捕捉时过滤”详细介绍,默认情况下是空的。

同样你也可以点击捕捉按钮,通过弹出的捕捉过滤对话框创建或选择一个过滤器,详见“定义,保存过滤器”

3.5.2.捉数据帧为文件。

捕捉文件设置的使用方法的详细介绍见 “捕捉文件格式、模式设置”

File 

指定将用于捕捉的文件名。该字段默认是空白。如果保持空白,捕捉数据将会存储在临时文件夹。详见第3.6节 “捕捉文件格式、模式设置”

你可以点击右侧的按钮打开浏览窗口设置文件存储位置

Use multiple files 

如果指定条件达到临界值,Wireshark将会自动生成一个新文件,而不是适用单独文件。

Next file every n megabyte(s) 

仅适用选中Use multiple files,如果捕捉文件容量达到指定值,将会生成切换到新文件

Next file every n minutes(s) 

仅适用选中Use multiple files,如果捕捉文件持续时间达到指定值,将会切换到新文件。

Ring buffer with n files 

仅适用选中Use multiple files,仅生成制定数目的文件。

Stop caputure after n file(s) 

仅适用选中Use multiple files,当生成指定数目文件时,在生成下一个文件时停止捕捉(生成n个还是n+1个文件?)

3.5.3.停止捕捉桢

... after n packet(s) 

在捕捉到指定数目数据包后停止捕捉

... after n megabytes(s) 

在捕捉到指定容量的数据(byte(s)/kilobyte(s)/megabyte(s)/gigabyte(s) )后停止捕捉。如果没有适用"user multiple files",该选项将是灰色

... after n minute(s) 

在达到指定时间后停止捕捉

3.5.4.显示桢选项

Update list of packets in real time 

在包列表面板实时更新捕捉数据。如果未选定该选项,在Wireshark捕捉结束之前将不能显示数据。如果选中该选项,Wireshark将生成两个独立的进程,通过捕捉进程传输数据给显示进程。

Automatic scrolling in live capture 

指定Wireshark在有数据进入时实时滚动包列表面板,这样您将一直能看到近的包。反之,则新数据包会被放置在行末,但不会自动滚动面板。如果未设置"update list of packets in real time",该选项将是灰色不可选的。

Hide capture info dialog 

选中该选项,将会隐藏捕捉信息对话框

3.5.5.名称解析设置

Enable MAC name resolution 

设置是否让Wireshark翻译MAC地址为名称

Enable network name resolution 

是否允许Wireshark对网络地址进行解析

3.5.6.按钮

进行完上述设置以后,你可以点击start按钮进行捕捉,也可以点击Cancel退出捕捉.

开始捕捉以后,在你收集到足够的数据时你可以停止捕捉。

3.6.捕捉文件格式、模式设置

在 捕捉时,libpcap 捕捉引擎(linux环境下)会抓取来自网卡的包存放在(相对来说)较小的核心缓存内。这些数据由Wireshark读取并保存到用户指定的捕捉文件中。

保存包数据到捕捉文件时,可采用差异模式操作。

  提示

处理大文件(数百兆)将会变得非常慢。如果你计划进行长时间捕捉,或者

处于一个高吞吐量的网络中,考虑使用前面提到的"Multiple files/多文件"

选项。该选项可以将捕捉包分割为多个小文件。这样可能更适合上述环境。

  注意

使用多文件可能会切断上下文关联信息。Wireshark保留载入包的上下文信息,

所以它会报告上下文关联问题(例如流问题)和关联上下文协议信息(例如:何处

数据产生建立阶段,必须查找后续包)。这些信息仅能在载入文件中显示,使用

多文件模式可能会截断这样的上下文。如果建立连接阶段已经保存在一个文件中

,你想要看的在另一个文件中,你可能无法看到可用的上下文关联信息。

Single named file 

使用单独文件,如果你想放到指定目录,选择此模式

Multiple files,continuous 

与single name file模式类似,不同点在于,当捕捉达到多文件切换临界条件时之一时,会创建一个新文件用于捕捉

Multiple files,ring buffer 

与"multiple files continuous"模式类似,不同之处在于,创建的文件数目固定。当达到ring buffer with n值时,会替换掉第一个文件开始捕捉,如此循环往复。

该模式可以限制大磁盘空间使用量,即使未限制捕捉数据输入,也只能保留后几个捕捉数据。

3.7.链路层包头类型

在通常情况下,你不需要选择链路层包头类型。下面的段落描述了例外的情况,此时选择包头类型是有必要的,所以你需要知道怎么做:

如果你在某种版本BSD操作系统下从某种802.11 设备(无线局域网设备)捕捉数据,可能需要在"802.11"和"Ethernet"中做出选择。"Ethernet"将会导致捕捉到的包带有伪以太网帧头(不知道是不是应该叫伪首部更准确些);"802.11"将会导致他们带有802.11帧头。如果捕捉时的应用程序不支持"802.11帧头",你需要选择"802.11"

如果你使用Endace DAG card(某种网络监视卡)连接到同步串口线(译者注:E文为synchronous serial line,权且翻译作前文吧,未接触过此卡、未熟稔此线名称),可能会出现"PPP over serial" 或 "Cisco HDLC"(自己google去)供选择。根据你自己的情况选择二者中的一个。

如果你使用Endace DAG card(同上)连接到ATM网络,将会提供"RFC 1483 IP-over-ATM"、"Sun raw ATM"供选择。如果捕捉的通信是RFC 1483封装IP(RFC 1483 LLC-encapsulated IP,不翻译为妙),或者需要在不支持SunATM帧头的应用程序下捕捉,选择前者。反之选择后者。

如果你在以太网捕捉,将会提供"Ethernet"、"DOCSIS"供选择,如果您是在Cisco Cable Modem Termination System(CMTS是思科同轴电缆终端调制解调系统?)下捕捉数据。它会将DOCSIS(同轴电缆数据服务接口)通信放置到以太网中,供捕捉。此时需要选择"DOCSIS",反之则反之。

3.8.捕捉时过滤

Wireshark使用libpcap过滤语句进行捕捉过滤(what about winpcap)。在tcpdump主页有介绍,但这些只是过于晦涩难懂。

 [src|dst] host <host> 

此基本单元允许你过滤主机ip地址或名称。你可以优先指定src|dst关键词来指定你关注的是源地址还是目标地址。如果未指定,则指定的地址出现在源地址或目标地址中的包会被抓取。

ether [src|dst] host <ehost> 

此单元允许你过滤主机以太网地址。你可以优先指定关键词src|dst在关键词ether和host之间,来确定你关注的是源地址还是目标地址。如果未指定,同上。

gateway host<host> 

过滤通过指定host作为网关的包。这就是指那些以太网源地址或目标地址是host,但源ip地址和目标ip地址都不是host的包

[src|dst] net <net> [{mask<mask>}|{len <len>}] 

通过网络号进行过滤。你可以选择优先指定src|dst来确定你感兴趣的是源网络还是目标网络。如果两个都没指定。指定网络出现在源还是目标网络的都会被选择。另外,你可以选择子网掩码或者CIDR(无类别域形式)。

[tcp|udp] [src|dst] port <port] 

过滤tcp,udp及端口号。可以使用src|dst和tcp|udp关键词来确定来自源还是目标,tcp协议还是udp协议。tcp|udp必须出现在src|dst之前。

less|greater <length> 

选择长度符合要求的包。(大于等于或小于等于)

ip|ether proto <protocol> 

选择有指定的协议在以太网层或是ip层的包

ether|ip broadcast|multicast 

选择以太网/ip层的广播或多播

<expr> relop <expr> 

创建一个复杂过滤表达式,来选择包的字节或字节范围符合要求的包。请参考//www.tcpdump.org/tcpdump_man.html 

3.8.1.自动过滤远程通信

如果Wireshark是使用远程连接的主机运行的(例如使用SSH,X11 Window输出,终端服务器),远程连接必须通过网络传输,会在你真正感兴趣的通信中产生大量数据包(通常也是不重要的)

想要避免这种情况,wireshark可以设置为如果发现有远程连接(通过察看指定的环境变量),自动创建一个过滤器来匹配这种连接。以避免捕捉Wireshark捕捉远程连接通信。

下列环境变量可以进行分析

SSH——CONNECTION(ssh) 

<remote IP> <remote port> <local IP> <local port>

SSH_CLIENT (ssh) 

<remote IP> <remote port> <local port>

REMOTEHOST (tcsh, others?) 

<remote name>

DISPLAY (x11) 

[remote name]:<display num>

SESSIONNAME (terminal server) 

<remote name>

3.9.在捕捉过程中

捕捉时,会出现下面的对话框

捕捉信息对话框

上述对话框会向你显示捕捉到包的数目,捕捉持续时间。选择的被统计的协议无法更改(什么鸟意思?)

  提示

这个对话框可以被隐藏,在前次的捕捉选项对话框设置"Hide capture info 

dialog box"即可。

3.9.1.停止捕捉

运行中的捕捉线程可以用下列方法停止:

1. 使用捕捉信息对话框上的" stop"按钮停止。

  注意

捕捉信息对话框有可能被隐藏,如果你选择了"Hide capture info dialog"

2. 使用菜单项"Capture/  Stop"

3. 使用工具栏项"  Stop"

4. 使用快捷键:Ctrl+E

5. 如果设置了触发停止的条件,捕捉达到条件时会自动停止。

3.9.2.重新启动捕捉

运行中的捕捉进程可以被重新启动。这将会移出上次捕捉的所有包。如果你捕捉到一些你不感兴趣的包,你不想保留它,这个功能十分有用。

重新启动是一项方便的功能,类似于停止捕捉后,在很短的时间内立即开始捕捉。以下两种方式可以实现重新启动捕捉:

1. 使用菜单项"Capture/  Restart"

2. 使用工具栏项"  Restart"

前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2018 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号,京公海网安备11010802025203号
返回

讲师博文

星创客 - 华清远见旗下高端IT培训品牌

当前位置: 星创客 > 学习资源 > 讲师博文 >

wireshark抓包工具如何使用
来源: 星创客 作者: 星创客 时间:2018-01-15

Wireshark 是网络包分析工具,是今天能使用的好的开源网络分析软件。网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。Wireshark是开源软件项目,用GPL协议发行,所有的源代码在GPL框...

Wireshark 是网络包分析工具,是今天能使用的好的开源网络分析软件。网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。Wireshark是开源软件项目,用GPL协议发行,所有的源代码在GPL框架下都可以免费使用。因为以上原因,人们可以很容易在Wireshark上添加新的协议,或者将其作为插件整合到您的程序里,这种应用十分广泛。

1.1主要应用

网络管理员用来解决网络问题

网络安全工程师用来检测安全隐患

开发人员用来测试协议执行情况

用来学习网络协议

1.2.特性

支持UNIX和Windows平台 

在接口实时捕捉包

能详细显示包的详细协议信息 

可以打开/保存捕捉的包

可以导入导出其他捕捉程序支持的包数据格式

可以通过多种方式过滤包

多种方式查找包

通过过滤以多种色彩显示包

创建多种统计分析

1.3适合人群

网络管理员

网络工程师

安全工程师

IT运维人员…

1.4 平台支持

Windows,linux,unix

 

1.5相关软件

Sniffer,omnipeek,fiddler,httpwatch,科学网络分析系统

 

抓包原理

(1) 网络原理

a) 本机环境:直接抓本机网卡进出流量

b) 集线器环境:流量防洪,同一冲突域

c) 交换机环境:

端口镜像

arp欺骗

mac泛洪

(2) 底层原理

Win/libcap:wireshark抓包时依赖的库文件

Capture:抓包引擎,利用Win/libcap从底层抓取网络数据包,Win/libcap提供通用生物抓包借口,能从不同类型的网络接口获取数据包;

Wiretap:格式支持,从抓包文件中读取数据包,支持多种格式

Core:核心引擎,通过函数调用将其他模块连接在一起,起到联动调度的作用

GTK 1/2:图形处理工具,处理用户的输入输出显示

 

2.wireshark使用

2.1安装流程

参考:https://jingyan.baidu.com/article/bad08e1e87d68209c9512153.html

2.2界面分析

2.3 Wireshark 主界面的操作菜单

File  打开文件

    Open           打开文件

    Open Recent    打开近期访问过的文件

    Merge…         将几个文件合并为一个文件

    Close          关闭此文件

    Save As…       保存为…

    File Set       文件属性

    Export         文件输出

    Print…         打印输出

    Quit           关闭

Edit  编辑

    Find Packet…   搜索数据包

    Find Next       搜索下一个

    Find Previous   搜索前一个

    Mark Packet (toggle)  对数据包做标记(标定)

    Find Next Mark        搜索下一个标记的包

    Find Previous Mark     搜索前一个标记的包

    Mark All Packets       对所有包做标记

    Unmark All Packets     去除所有包的标记

    Set Time Reference (toggle) 设置参考时间 (标定)

    Find Next Reference         搜索下一个参考点

    Find Previous Reference     搜索前一个参考点

    Preferences                 参数选择

View 视图

    Main Toolbar       主工具栏

    Filter Toolbar     过滤器工具栏

    Wireless Toolbar   无线工具栏

    Statusbar          运行状况工具栏

    Packet List        数据包列表

    Packet Details     数据包细节

    Packet Bytes       数据包字节

    Time Display Format        时间显示格式

    Name resolution    名字解析(转换:域名/IP地址,厂商名/MAC地址,端口号/端口名)

    Colorize Packet List        颜色标识的数据包列表

    Auto Scroll in Live Capture 现场捕获时实时滚动

    Zoom In                     放大显示

    Zoom Out                    缩小显示

    Normal Size                 正常大小

    Resize All Columns          改变所有列大小

    Expand Sub trees            扩展开数据包内封装协议的子树结构

    Expand All                  全部扩展开

    Collapse All                全部折叠收缩

    Coloring Rules…            对不同类型的数据包用不同颜色标识的规则

    Show Packet in New Window   将数据包显示在一个新的窗口

    Reload                      将数据文件重新加

Go  运行

    Back                        向后运行

    Forward                     向前运行

    Go to packet…              转移到某数据包

    Go to Corresponding Packet  转到相应的数据包

    Previous Packet             前一个数据包

    Next Packet                 下一个数据包

    First Packet                第一个数据包

    Last Packet                 后一个数据包

Capture 捕获网络数据

    Interfaces…                选择本机的网络接口进行数据捕获

    Options…                   捕获参数选择

    Start                       开始捕获网络数据

    Stop                        停止捕获网络数据

    Restart                     重新开始捕获

    Capture Filters…           选择捕获过滤器

Analyze 对已捕获的网络数据进行分析

    Display Filters…           选择显示过滤器

    Apply as Filter             将其应用为过滤器

    Prepare a Filter            设计一个过滤器

    Firewall ACL Rules          防火墙ACL规则

    Enabled Protocols…         已可以分析的协议列表

    Decode As…                 将网络数据按某协议规则解码

    User Specified Decodes…    用户自定义的解码规则

    Follow TCP Stream  跟踪TCP传输控制协议的通信数据段,将分散传输的数据组装还原

    Follow SSL stream           跟踪SSL 安全套接层协议的通信数据流

    Expert Info                 专家分析信息

    Expert Info Composite       构造专家分析信息

Statistics对已捕获的网络数据进行统计分析

    Summary                     已捕获数据文件的总统计概况

    Protocol Hierarchy          数据中的协议类型和层次结构

    Conversations               会话

    Endpoints                   定义统计分析的结束点

    IO Graphs                   输入/输出数据流量图

    Conversation List           会话列表

    Endpoint List               统计分析结束点的列表

    Service Response Time       从客户端发出请求至收到服务器响应的时间间隔

    ANSI                        按照美国标准协会的ANSI协议分析

    Fax T38 Analysis...         按照T38传真规范进行分析

    GSM                         全球移动通信系统GSM的数据

    H.225                       H.225协议的数据

    MTP3                        MTP3协议的数据

    RTP                         实时传输协议RTP的数据

    SCTP                        数据流控制传输协议SCTP的数据

    SIP...                      会话初始化协议SIP的数据

    VoIP Calls                  互联网IP电话的数据

    WAP-WSP                     无线应用协议WAP和WSP的数据

    BOOTP-DHCP                  引导协议和动态主机配置协议的数据

    Destinations…              通信目的端

    Flow Graph…                网络通信流向图

    HTTP                        超文本传输协议的数据

    IP address…                互联网IP地址

    ISUP Messages…             ISUP协议的报文

    Multicast Streams           多播数据流

    ONC-RPC Programs 

    Packet Length               数据包的长度

    Port Type…                 传输层通信端口类型

    TCP Stream Graph            传输控制协议TCP数据流波形图

Help 帮助

    Contents Wireshark          使用手册

    Supported Protocols         Wireshark支持的协议清单

    Manual Pages                使用手册(HTML网页)

    Wireshark Online            Wireshark 在线

About Wireshark             关于Wireshark

 

2.4 基本使用

(1) 选择网络接口,并双击选择的网卡启动抓包,如:双击以太网2

(2) 点击红框的按钮以结束

(3)保存

(3) 数据解析

3实时捕捉数据包

3.1介绍

实时捕捉数据包时Wireshar的特色之一

Wiershark捕捉引擎具备以下特点

支持多种网络接口的捕捉(以太网,令牌环网,ATM...)

支持多种机制触发停止捕捉,例如:捕捉文件的大小,捕捉持续时间,捕捉到包的数量...

捕捉时同时显示包解码详情

设置过滤,减少捕捉到包的容量。长时间捕捉时,可以设置生成多个文件。对于特别长时间的捕捉,可以设置捕捉文件大小罚值,设置仅保留后的N个文件等手段。

Wireshark捕捉引擎在以下几个方面尚有不足

从多个网络接口同时实时捕捉,(但是您可以开始多个应用程序实体,捕捉后进行文件合并)

根据捕捉到的数据停止捕捉(或其他操作)

3.2 准备工作

第一次设置Wireshark捕捉包可能会遇到一些小麻烦

  提示

关于如何进行捕捉设置的较为全面的向导可以在:

//wiki.wireshark.org/CaptureSetup.

 

这里有一些常见需要注意的地方

你必须拥有root/Administrator特权以开始捕捉[12]

必须选择正确的网络接口捕捉数据

如果您想捕捉某处的通信,你必须作出决定:在什么地方可以捕捉到

……以及许多

如果你碰到设置问题,建议看看前面的那个向导,或许会有所帮助

3.3开始捕捉

可以使用下任一方式开始捕捉包

使用 打开捕捉接口对话框,浏览可用的本地网络接口,选择您需要进行捕捉的接口启动捕捉

你也可以使用" 捕捉选项"按钮启动对话框开始捕捉,如果您前次捕捉时的设置和现在的要求一样,您可以点击" 开始捕捉"按钮或者是菜单项立即开始本次捕捉。

如果你已经知道捕捉接口的名称,可以使用如下命令从命令行开始捕捉: 

wireshark -i eth0 -k

上述命令会从eht0接口开始捕捉。 

3.4捕捉接口对话框

如果您从捕捉菜单选择"Interface...",将会弹出如“"Capture Interfaces"捕捉接口对话框”所示的对话框

  警告

打开"Capture Interfaces"/捕捉对话框时 同时正在显示捕捉的数据,这将会大量消耗您的系统资源。尽快选择您需要的接口以结束该对话框。避免影响系统性能 

  注意

这个对话框只显示本地已知的网络接口,Wireshark可能无法检测到所有的本地接口,Wireshark不能检测远程可用的网络接口,Wireshark只能使用列出可用的网络接口 

"Capture Interfaces"捕捉接口对话框

描述 

从操作系统获取的接口信息 

IP 

Wireshark能解析的第一个IP地址,如果接口未获得IP地址(如,不存在可用的DHCP服务器),将会显示"Unkow",如果有超过一个IP的,只显示第一个(无法确定哪一个会显示). 

Packets 

打开该窗口后,从此接口捕捉到的包的数目。如果一直没有接收到包,则会显示为灰度 

Packets/s 

近一秒捕捉到包的数目。如果近一秒没有捕捉到包,将会是灰度显示 

Stop 

停止当前运行的捕捉 

Capture 

从选择的接口立即开始捕捉,使用后一次捕捉的设置。 

Options 

打开该接口的捕捉选项对话框,见 第 4.5 节 “捕捉选项对话框” 

Details(仅Win32系统) 

打开对话框显示接口的详细信息 

Close 

关闭对话框 

3.5捕捉选项对话框

如果您从捕捉菜单选择"start..."按钮(或者从主工具栏选择对应的项目),Wireshark弹出"Capture Option/捕捉选项"对话框。如图 4.2 “"Capture Option/捕捉选项"对话框”所示

"Capture Option/捕捉选项"对话框

  提示

如果你不了解各项设置的意义,建议保持默认。 

你可以用对话框中的如下字段进行设置

3.5.1.捕捉桢

Interface 

该字段指定你想用于进行捕捉的借口。一次只能使用一个接口。这是一个下拉列表,简单点击右侧的按钮,选择你想要使用的接口。默认第一是支持捕捉的non-loopback(非环回)接口,如果没有这样的接口,第一个将是环回接口。在某些系统中,回借口不支持捕捉包(windows平台下的环回接口就不支持。)

在命令行使用-i <interface>参数可以替代该选项

IP address 

表示选择接口的IP地址。如果系统未指定IP地址,将会显示为"unknown" 

Link-layer header type 

除非你有些特殊应用,尽量保持此选项默认。 

Buffer size: n megabyte(s) 

输入用于捕捉的缓层大小。该选项是设置写入数据到磁盘前保留在核心缓存中捕捉数据的大小,如果你发现丢包。尝试增大该值。

  注意

该选项仅适用于Windows平台

Capture packets in promiscuous mode 

指定Wireshark捕捉包时,设置接口为杂收模式(有些人翻译为混杂模式)。如果你未指定该选项,Wireshark 将只能捕捉进出你电脑的数据包(不能捕捉整个局域网段的包)[13]

  注意

如果其他应用程序将网卡设置为杂收模式,即使不选中该选项,也会工作于杂收模式下。

  注意

即使在杂收模式下,你也未必能够接收到整个网段所有的网络包。详细解释见//www.wireshark.org/faq.html#promiscsniff

 

Limit each packet to n bytes 

指定捕捉过程中,每个包的大字节数。在某些地方被称为。"snaplen".[14]如果禁止该选项,默认值为65535,这适用于大多数协议,下面是一些大多数情况下都适用的规则(这里又出现了拇指规则,第一章,系统需求时提到过。这里权且翻译作普适而非绝对的规则))

如果你不确定,尽量保持默认值

如果你不需要包中的所有数据。例如:如果您仅需要链路层、IP和TCP包头,您可能想要选择一个较小的快照长度。这样只需要较少的cpu占用时间用于复制包,包需要的缓存也较少。如此在繁忙网络中捕捉时丢失的包也可能会相应少一点。

如果你没有捕捉包中的所有数据(适用snpaplen截断了包),你可能会发现有时候你想要的包中的数据部分被截断丢弃了。或者因为缺少重要的部分,想对某些包进行重组而发现失败。

Capture Filter 

指定捕捉过滤。捕捉过滤器将会在有 “捕捉时过滤”详细介绍,默认情况下是空的。

同样你也可以点击捕捉按钮,通过弹出的捕捉过滤对话框创建或选择一个过滤器,详见“定义,保存过滤器”

3.5.2.捉数据帧为文件。

捕捉文件设置的使用方法的详细介绍见 “捕捉文件格式、模式设置”

File 

指定将用于捕捉的文件名。该字段默认是空白。如果保持空白,捕捉数据将会存储在临时文件夹。详见第3.6节 “捕捉文件格式、模式设置”

你可以点击右侧的按钮打开浏览窗口设置文件存储位置

Use multiple files 

如果指定条件达到临界值,Wireshark将会自动生成一个新文件,而不是适用单独文件。

Next file every n megabyte(s) 

仅适用选中Use multiple files,如果捕捉文件容量达到指定值,将会生成切换到新文件

Next file every n minutes(s) 

仅适用选中Use multiple files,如果捕捉文件持续时间达到指定值,将会切换到新文件。

Ring buffer with n files 

仅适用选中Use multiple files,仅生成制定数目的文件。

Stop caputure after n file(s) 

仅适用选中Use multiple files,当生成指定数目文件时,在生成下一个文件时停止捕捉(生成n个还是n+1个文件?)

3.5.3.停止捕捉桢

... after n packet(s) 

在捕捉到指定数目数据包后停止捕捉

... after n megabytes(s) 

在捕捉到指定容量的数据(byte(s)/kilobyte(s)/megabyte(s)/gigabyte(s) )后停止捕捉。如果没有适用"user multiple files",该选项将是灰色

... after n minute(s) 

在达到指定时间后停止捕捉

3.5.4.显示桢选项

Update list of packets in real time 

在包列表面板实时更新捕捉数据。如果未选定该选项,在Wireshark捕捉结束之前将不能显示数据。如果选中该选项,Wireshark将生成两个独立的进程,通过捕捉进程传输数据给显示进程。

Automatic scrolling in live capture 

指定Wireshark在有数据进入时实时滚动包列表面板,这样您将一直能看到近的包。反之,则新数据包会被放置在行末,但不会自动滚动面板。如果未设置"update list of packets in real time",该选项将是灰色不可选的。

Hide capture info dialog 

选中该选项,将会隐藏捕捉信息对话框

3.5.5.名称解析设置

Enable MAC name resolution 

设置是否让Wireshark翻译MAC地址为名称

Enable network name resolution 

是否允许Wireshark对网络地址进行解析

3.5.6.按钮

进行完上述设置以后,你可以点击start按钮进行捕捉,也可以点击Cancel退出捕捉.

开始捕捉以后,在你收集到足够的数据时你可以停止捕捉。

3.6.捕捉文件格式、模式设置

在 捕捉时,libpcap 捕捉引擎(linux环境下)会抓取来自网卡的包存放在(相对来说)较小的核心缓存内。这些数据由Wireshark读取并保存到用户指定的捕捉文件中。

保存包数据到捕捉文件时,可采用差异模式操作。

  提示

处理大文件(数百兆)将会变得非常慢。如果你计划进行长时间捕捉,或者

处于一个高吞吐量的网络中,考虑使用前面提到的"Multiple files/多文件"

选项。该选项可以将捕捉包分割为多个小文件。这样可能更适合上述环境。

  注意

使用多文件可能会切断上下文关联信息。Wireshark保留载入包的上下文信息,

所以它会报告上下文关联问题(例如流问题)和关联上下文协议信息(例如:何处

数据产生建立阶段,必须查找后续包)。这些信息仅能在载入文件中显示,使用

多文件模式可能会截断这样的上下文。如果建立连接阶段已经保存在一个文件中

,你想要看的在另一个文件中,你可能无法看到可用的上下文关联信息。

Single named file 

使用单独文件,如果你想放到指定目录,选择此模式

Multiple files,continuous 

与single name file模式类似,不同点在于,当捕捉达到多文件切换临界条件时之一时,会创建一个新文件用于捕捉

Multiple files,ring buffer 

与"multiple files continuous"模式类似,不同之处在于,创建的文件数目固定。当达到ring buffer with n值时,会替换掉第一个文件开始捕捉,如此循环往复。

该模式可以限制大磁盘空间使用量,即使未限制捕捉数据输入,也只能保留后几个捕捉数据。

3.7.链路层包头类型

在通常情况下,你不需要选择链路层包头类型。下面的段落描述了例外的情况,此时选择包头类型是有必要的,所以你需要知道怎么做:

如果你在某种版本BSD操作系统下从某种802.11 设备(无线局域网设备)捕捉数据,可能需要在"802.11"和"Ethernet"中做出选择。"Ethernet"将会导致捕捉到的包带有伪以太网帧头(不知道是不是应该叫伪首部更准确些);"802.11"将会导致他们带有802.11帧头。如果捕捉时的应用程序不支持"802.11帧头",你需要选择"802.11"

如果你使用Endace DAG card(某种网络监视卡)连接到同步串口线(译者注:E文为synchronous serial line,权且翻译作前文吧,未接触过此卡、未熟稔此线名称),可能会出现"PPP over serial" 或 "Cisco HDLC"(自己google去)供选择。根据你自己的情况选择二者中的一个。

如果你使用Endace DAG card(同上)连接到ATM网络,将会提供"RFC 1483 IP-over-ATM"、"Sun raw ATM"供选择。如果捕捉的通信是RFC 1483封装IP(RFC 1483 LLC-encapsulated IP,不翻译为妙),或者需要在不支持SunATM帧头的应用程序下捕捉,选择前者。反之选择后者。

如果你在以太网捕捉,将会提供"Ethernet"、"DOCSIS"供选择,如果您是在Cisco Cable Modem Termination System(CMTS是思科同轴电缆终端调制解调系统?)下捕捉数据。它会将DOCSIS(同轴电缆数据服务接口)通信放置到以太网中,供捕捉。此时需要选择"DOCSIS",反之则反之。

3.8.捕捉时过滤

Wireshark使用libpcap过滤语句进行捕捉过滤(what about winpcap)。在tcpdump主页有介绍,但这些只是过于晦涩难懂。

 [src|dst] host <host> 

此基本单元允许你过滤主机ip地址或名称。你可以优先指定src|dst关键词来指定你关注的是源地址还是目标地址。如果未指定,则指定的地址出现在源地址或目标地址中的包会被抓取。

ether [src|dst] host <ehost> 

此单元允许你过滤主机以太网地址。你可以优先指定关键词src|dst在关键词ether和host之间,来确定你关注的是源地址还是目标地址。如果未指定,同上。

gateway host<host> 

过滤通过指定host作为网关的包。这就是指那些以太网源地址或目标地址是host,但源ip地址和目标ip地址都不是host的包

[src|dst] net <net> [{mask<mask>}|{len <len>}] 

通过网络号进行过滤。你可以选择优先指定src|dst来确定你感兴趣的是源网络还是目标网络。如果两个都没指定。指定网络出现在源还是目标网络的都会被选择。另外,你可以选择子网掩码或者CIDR(无类别域形式)。

[tcp|udp] [src|dst] port <port] 

过滤tcp,udp及端口号。可以使用src|dst和tcp|udp关键词来确定来自源还是目标,tcp协议还是udp协议。tcp|udp必须出现在src|dst之前。

less|greater <length> 

选择长度符合要求的包。(大于等于或小于等于)

ip|ether proto <protocol> 

选择有指定的协议在以太网层或是ip层的包

ether|ip broadcast|multicast 

选择以太网/ip层的广播或多播

<expr> relop <expr> 

创建一个复杂过滤表达式,来选择包的字节或字节范围符合要求的包。请参考//www.tcpdump.org/tcpdump_man.html 

3.8.1.自动过滤远程通信

如果Wireshark是使用远程连接的主机运行的(例如使用SSH,X11 Window输出,终端服务器),远程连接必须通过网络传输,会在你真正感兴趣的通信中产生大量数据包(通常也是不重要的)

想要避免这种情况,wireshark可以设置为如果发现有远程连接(通过察看指定的环境变量),自动创建一个过滤器来匹配这种连接。以避免捕捉Wireshark捕捉远程连接通信。

下列环境变量可以进行分析

SSH——CONNECTION(ssh) 

<remote IP> <remote port> <local IP> <local port>

SSH_CLIENT (ssh) 

<remote IP> <remote port> <local port>

REMOTEHOST (tcsh, others?) 

<remote name>

DISPLAY (x11) 

[remote name]:<display num>

SESSIONNAME (terminal server) 

<remote name>

3.9.在捕捉过程中

捕捉时,会出现下面的对话框

捕捉信息对话框

上述对话框会向你显示捕捉到包的数目,捕捉持续时间。选择的被统计的协议无法更改(什么鸟意思?)

  提示

这个对话框可以被隐藏,在前次的捕捉选项对话框设置"Hide capture info 

dialog box"即可。

3.9.1.停止捕捉

运行中的捕捉线程可以用下列方法停止:

1. 使用捕捉信息对话框上的" stop"按钮停止。

  注意

捕捉信息对话框有可能被隐藏,如果你选择了"Hide capture info dialog"

2. 使用菜单项"Capture/  Stop"

3. 使用工具栏项"  Stop"

4. 使用快捷键:Ctrl+E

5. 如果设置了触发停止的条件,捕捉达到条件时会自动停止。

3.9.2.重新启动捕捉

运行中的捕捉进程可以被重新启动。这将会移出上次捕捉的所有包。如果你捕捉到一些你不感兴趣的包,你不想保留它,这个功能十分有用。

重新启动是一项方便的功能,类似于停止捕捉后,在很短的时间内立即开始捕捉。以下两种方式可以实现重新启动捕捉:

1. 使用菜单项"Capture/  Restart"

2. 使用工具栏项"  Restart"

相关推荐

全国咨询热线:400-611-6270

?2004-2018华清远见教育科技集团 版权所有 京ICP备16055225号 京公海网安备11010802025203号