• 抓包


    抓取时过滤 

    捕获——>捕获过滤器,这是wireshark默认的一些捕获过滤器,我们可以参照他的语法,自己在左下角自己添加或者删除捕获过滤器

     

    然后如果我们想抓取时对数据包过滤,捕获——>选择,然后选择我们要抓取数据包的网卡,在下面选择我们的过滤器。绿色的话表示语法没有问题,设置好了之后点击开始就可以抓取数据包了

     抓取后的过滤 

    我们一般都是抓取完数据包后进行过滤的,在上方输入我们的过滤语法

    过滤地址
    ip.addr==192.168.10.10  或  ip.addr eq 192.168.10.10  #过滤地址
    ip.src==192.168.10.10     #过滤源地址
    ip.dst==192.168.10.10     #过滤目的地址
     
    过滤协议,直接输入协议名
    icmp 
    http
     
    过滤协议和端口
    tcp.port==80
    tcp.srcport==80
    tcp.dstport==80
     
    过滤http协议的请求方式
    http.request.method=="GET"
    http.request.method=="POST"
    http.request.uri contains admin   #url中包含admin的
    http.request.code==404    #http请求状态码的
     
    连接符
    &&  
    ||
    and
    or
     
    通过连接符可以把上面的命令连接在一起,比如:
    ip.src==192.168.10.10 and http.request.method=="POST"
    

      

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

      

    下面分别介绍下在图1.48中,帧、包和段内展开的内容。如下所示:

    (1物理层的数据帧概况

    Frame 5: 268 bytes on wire (2144 bits), 268 bytes captured (2144 bits) on interface 0      #5号帧,线路268字节,实际捕获268字节
        Interface id: 0           #接口id
        Encapsulation type: Ethernet (1)           #封装类型
        Arrival Time: Jun 11, 2015 05:12:18.469086000 中国标准时间     #捕获日期和时间
        [Time shift for this packet: 0.000000000 seconds]
        Epoch Time: 1402449138.469086000 seconds
        [Time delta from previous captured frame: 0.025257000 seconds]   #此包与前一包的时间间隔
        [Time since reference or first frame: 0.537138000 seconds]              #此包与第一帧的时间间隔
        Frame Number: 5               #帧序号
        Frame Length: 268 bytes (2144 bits)          #帧长度
        Capture Length: 268 bytes (2144 bits)    #捕获长度
        [Frame is marked: False]   #此帧是否做了标记:否
        [Frame is ignored: False]      #此帧是否被忽略:否
        [Protocols in frame: eth:ip:tcp:http]      #帧内封装的协议层次结构
        [Number of per-protocol-data: 2]           #
        [Hypertext Transfer Protocol, key 0]
        [Transmission Control Protocol, key 0]
        [Coloring Rule Name: HTTP]     #着色标记的协议名称
    [Coloring Rule String: http || tcp.port == 80]  #着色规则显示的字符串
     
    

      

    (2数据链路层以太网帧头部信息

     

    Ethernet II, Src: Giga-Byt_c8:4c:89 (1c:6f:65:c8:4c:89), Dst: Tp-LinkT_f9:3c:c0 (6c:e8:73:f9:3c:c0)
    Destination: Tp-LinkT_f9:3c:c0 (6c:e8:73:f9:3c:c0)   #目标MAC地址
        Source: Giga-Byt_c8:4c:89 (1c:6f:65:c8:4c:89)    #源MAC地址
        Type: IP (0x0800)
    

      

    (3互联网层IP包头部信息

     

    Internet Protocol Version 4, Src: 192.168.0.104 (192.168.0.104), Dst: 61.182.140.146 (61.182.140.146)
    Version: 4         #互联网协议IPv4
        Header length: 20 bytes         #IP包头部长度
        Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))                                                                                                                                   #差分服务字段
        Total Length: 254        #IP包的总长度
        Identification: 0x5bb5 (23477)       #标志字段
        Flags: 0x02 (Don't Fragment)         #标记字段
        Fragment offset: 0        #分的偏移量
        Time to live: 64          #生存期TTL
        Protocol: TCP (6)         #此包内封装的上层协议为TCP
        Header checksum: 0x52ec [validation disabled]    #头部数据的校验和
        Source: 192.168.0.104 (192.168.0.104)            #源IP地址
        Destination: 61.182.140.146 (61.182.140.146)     #目标IP地址
    

      

    (4传输层TCP数据段头部信息

    Transmission Control Protocol, Src Port: 51833 (51833), Dst Port: http (80), Seq: 1, Ack: 1, Len: 214
    Source port: 51833 (51833)          #源端口号
        Destination port: http (80)           #目标端口号
        Sequence number: 1    (relative sequence number)       #序列号(相对序列号)
        [Next sequence number: 215    (relative sequence number)]      #下一个序列号
        Acknowledgment number: 1    (relative ack number)        #确认序列号
        Header length: 20 bytes           #头部长度
        Flags: 0x018 (PSH, ACK)           #TCP标记字段
        Window size value: 64800             #流量控制的窗口大小
        Checksum: 0x677e [validation disabled]        #TCP数据段的校验和
    

      

    Wireshark分析数据包

    本节以访问Web浏览器为例将介绍分析网络数据的方法。

    通常在访问Web服务器过程中,会涉及到DNS、TCP、HTTP三种协议。

     

    【实例1-3】分析访问Web浏览数据。具体操作步骤如下所示:

    (1捕获访问www.qq.com网站的数据包,并保存该文件名为http-wireshar.pcapng。本例中捕获的文件如图1.49所示。

     

    图1.49  http-wireshar.pcapng捕获文件

     

    (2接下来通过该捕获文件中的数据,分析访问Web的整个过程。在该捕获过程中,将包含DNS请求、响应、TCP三次握手等数据。如图1.50所示,在该界面显示了在访问网站之间DNS解析过程。

    图1.50  DNS解析

     

    (3在该界面31帧,是DNS将www.qq.com解析为一个IP地址的数据包(被称为一个“A”记录)。32帧表示返回一个与主机名相关的IP地址的DNS响应包。如果客户端支持IPv4和IPv6,在该界面将会看到查找一个IPv6地址(被称为“AAAA”记录)。此时,DNS服务器将响应一个IPv6地址或混杂的信息。

    说明:31帧是客户端请求百度,通过DNS服务器解析IP地址的过程。标识为“A”记录。

    • 32帧是DNS服务器回应客户端请求的过程。标识为response.

    (4如图1.51所示,在该界面看客户端和服务器之间TCP三次握手(33、34、35帧)和客户端请求的GET主页面(36帧)。然后服务器收到请求(37帧)并发送响应包(38帧)。

    说明:33帧是客户端向服务器发送TCP请求建立连接。标识为SYN。

    • 34帧是服务器得到请求后向客户端回应确认包的过程。标识为SYN,ACK。
    • 35帧是客户端回应服务器发送确认包的过程,将于服务器建立连接。标识为ACK。
    • 36帧是客户端向服务器发送HTTP请求内容的过程。标识为GET。
    • 37帧是服务器相应客户端请求的过程,收到请求。标识为ACK。
    • 38帧是服务器向客户端回应内容的过程。

    图1.51  TCP三次握手

     

    (5当客户端从相同的服务器上再次请求访问另一个链接时,将会再次看到一个GET数据包(1909帧),如图1.52所示。

    图1.52  请求另一个元素

     

    此外,如果链接另一个Web站点时,客户端将再次对下一个站点进行DNS查询(156、157帧),TCP三次握手(158、159、160帧)。如图1.53所示。

     1.53  请求下一个站点

    Wireshark捕获别人的数据包

    如果都在一个局域网内,而且知道别人的IP地址的话,也可以利用Wireshark捕获到别人的数据包。具体方法如下:

    1.端口映射

    局域网内,在同一交换机下工作的PC机,如图1.29所示。PC机A和PC机B在同一交换机下工作,PC机A安装Wireshark后,把交换机上任意一个PC机的数据端口做镜像,设置交换机来复制所有数据到用户交换端口下的Wireshark端口,这时PC机A就可以抓取到其他PC机的数据了,如抓取PC机B的数据。

    2.使用集线器

    我们可以把图1.29中的交换机换成集线器,这样的话所有的数据包都是通发的。也就是说,不管是谁的数据包都会发到这个集线器上的每一个计算机。只要将网卡设置为混杂模式就能抓到别人的包。

    3.利用ARP欺骗

    我们都知道,发送、接受数据都要经过路由器,如图1.30所示。该图中PC机A安装Wireshark后,可以利用ARP欺骗,来抓取PC机B、PC机C或PC机B与PC机C之间的数据包了。PC机A在局域网内发送ARP包,使其他计算机都误以为它是网关。这样的话,其他计算机都会将它们的数据包发送到PC机A那里,因此PC机A就可以抓到它们的包了。

     图1.29  捕获PC机B数据包              图1.30  捕获数据包

    • ⑤Packet List面板——显示每个数据帧的摘要。

    • ⑥Packet Details面板——分析封包的详细信息。

    • ⑦Packet Bytes面板——以十六进制和ASCII格式显示数据包的细节。

    • ⑧状态栏——分组、已显示、已标记帧的数量,配置文件。

    1.Packet List面板

    该面板用表格的形式显示了当前捕获文件中的所有数据包。从图1.38中,可以看到该面板中共有七列,每列内容如下所示:

    • q  No(Number)列:包的编号。该编号不会发生改变,即使使用了过滤也同样如此。

    • q  Time列:包的时间戳。时间格式可以自己设置。

    • q  Source和Destination列:显示包的源地址和目标地址。

    • q  Protocol列:显示包的协议类型。

    • q  Length列:显示包的长度。

    • q  Info列:显示包的附加信息。

    在该面板中,可以对面板中的列进行排序、调整列位置、隐藏列、显示列、重命名或删除列等操作。下面以例子的形式将分别介绍在该面板中可操作的功能。

    【实例1-4】演示Packet List面板中可实现的功能。如下所示:

    (1列排序

    打开一个捕获文件http.pcapng,如图1.39所示。

     图1.39  http.pcapng捕获文件         图1.40  排序Protocol列

    2.Packet Details面板

    该面板分层次地显示了一个数据包中的内容,并且可以通过展开或收缩来显示这个数据包中所捕获到的全部内容。

    在Packet Details面板中,默认显示的数据的详细信息都是合并的。如果要查看,可以单击每行前面的小三角展开帧的会话。用户也可以选择其中一行并右键单击,弹出菜单栏。如图1.46所示。 

    在菜单栏中选择展开子树(单个会话)或展开全部会话。

    3.Packet Bytes面板

    该面板中的内容可能是最令人困惑的。因为它显示了一个数据包未经处理的原始样子,也就是其在链路上传播时的样子。

    在该面板中的数据是以十六进制和ASCII格式显示了帧的内容。当在Packet Details面板中选择任意一个字段后,在Packet Bytes面板中包含该字段的字节也高亮显示。如果不想看到Packet Bytes面板的话,可以在菜单栏中依次选择“视图”|“分组字节流(B)”命令将其关闭。当查看的时候,使用同样的方法将其打开。

    Wireshark状态栏介绍

    状态栏是由两个按钮和三列组成的。其中,这三列的大小在必要时可以调整。状态栏中每部分含义如图1.47所示。

    图1.47  状态栏

    下面分别详细介绍下状态栏中每部分的作用。如下所示:

    • q  :该按钮是专家信息按钮。该按钮的颜色是为了显示包含在专家信息窗口中最高水平的信息。专家信息窗口可以提醒用户,在捕获文件中的网络问题和数据包的注释

    • q  :该按钮是捕获文件注释按钮。单击该按钮,可以添加、编辑或查看一个捕获文件的注释。该功能只可以在以.pcapng格式保存的捕获文件使用。

    • q  第一列(获取字段、捕获或捕获文件信息):当在捕获文件中选择某个字段时,在状态栏中将可以看到文件名和列大小。如果点击Packet Bytes面板中的一个字段,将在状态栏中会显示其字段名,并且Packet Details面板也在发生着变化。

    • q  第二列(包数):当打开一个捕获文件时,在状态栏中的第二列将显示该文件的总包数。在图1.47中,显示了捕获的数据包数量、显示包数和加载时间。如果当前捕获文件中有包被标记,则状态栏中将会出现标记包数。

    • q  第三列(配置文件):表示当前使用的文件。在图1.47中,表示正在使用Default 文件。文件可以创建,这样就可以自己定制Wireshark的环境。

  • 相关阅读:
    zoj 2972
    图像切割之(五)活动轮廓模型之Snake模型简单介绍
    使用和制作patch文件
    一步一步写算法(之洗牌算法)
    第3讲 数码管显示
    Oracle 11g client的安装和配置。
    StringTokenizer类的使用
    BDB (Berkeley DB)数据库简单介绍(转载)
    关于MSHTML
    C语言sizeofkeyword
  • 原文地址:https://www.cnblogs.com/linuxws/p/11836525.html
Copyright © 2020-2023  润新知