精华内容
下载资源
问答
  • wireshark命令窗口
    千次阅读
    2021-09-21 11:06:04

    参数介绍

     你可以从命令行启动 Wireshark,但也可以从大多数窗口管理器启动它。 在本节中,我们将看看从命令行启动它。 Wireshark 支持大量的命令行参数。 要查看它们是什么,只需输入命令wireshark -h 并且应该打印Wireshark 提供的帮助信息(或类似的东西)中显示的帮助信息。cmd窗口的需要在C盘中的安装路径下打开,即 C:\Windows\System32\cmd.exe。

    Capture interface:
      -i <interface>, --interface <interface>
                               name or idx of interface (def: first non-loopback)
      -f <capture filter>      packet filter in libpcap filter syntax
      -s <snaplen>, --snapshot-length <snaplen>
                               packet snapshot length (def: appropriate maximum)
      -p, --no-promiscuous-mode
                               don't capture in promiscuous mode
      -k                       start capturing immediately (def: do nothing)
      -S                       update packet display when new packets are captured
      -l                       turn on automatic scrolling while -S is in use
      -I, --monitor-mode       capture in monitor mode, if available
      -B <buffer size>, --buffer-size <buffer size>
                               size of kernel buffer (def: 2MB)
      -y <link type>, --linktype <link type>
                               link layer type (def: first appropriate)
      --time-stamp-type <type> timestamp method for interface
      -D, --list-interfaces    print list of interfaces and exit
      -L, --list-data-link-types
                               print list of link-layer types of iface and exit
      --list-time-stamp-types  print list of timestamp types for iface and exit
    
    Capture stop conditions:
      -c <packet count>        stop after n packets (def: infinite)
      -a <autostop cond.> ..., --autostop <autostop cond.> ...
                               duration:NUM - stop after NUM seconds
                               filesize:NUM - stop this file after NUM KB
                                  files:NUM - stop after NUM files
                                packets:NUM - stop after NUM packets
    Capture output:
      -b <ringbuffer opt.> ..., --ring-buffer <ringbuffer opt.>
                               duration:NUM - switch to next file after NUM secs
                               filesize:NUM - switch to next file after NUM KB
                                  files:NUM - ringbuffer: replace after NUM files
                                packets:NUM - switch to next file after NUM packets
                               interval:NUM - switch to next file when the time is
                                              an exact multiple of NUM secs
    RPCAP options:
      -A <user>:<password>     use RPCAP password authentication
    Input file:
      -r <infile>, --read-file <infile>
                               set the filename to read from (no pipes or stdin!)
    
    Processing:
      -R <read filter>, --read-filter <read filter>
                               packet filter in Wireshark display filter syntax
      -n                       disable all name resolutions (def: all enabled)
      -N <name resolve flags>  enable specific name resolution(s): "mnNtdv"
      -d <layer_type>==<selector>,<decode_as_protocol> ...
                               "Decode As", see the man page for details
                               Example: tcp.port==8888,http
      --enable-protocol <proto_name>
                               enable dissection of proto_name
      --disable-protocol <proto_name>
                               disable dissection of proto_name
      --enable-heuristic <short_name>
                               enable dissection of heuristic protocol
      --disable-heuristic <short_name>
                               disable dissection of heuristic protocol
    
    User interface:
      -C <config profile>      start with specified configuration profile
      -H                       hide the capture info dialog during packet capture
      -Y <display filter>, --display-filter <display filter>
                               start with the given display filter
      -g <packet number>       go to specified packet number after "-r"
      -J <jump filter>         jump to the first packet matching the (display)
                               filter
      -j                       search backwards for a matching packet after "-J"
      -t a|ad|adoy|d|dd|e|r|u|ud|udoy
                               format of time stamps (def: r: rel. to first)
      -u s|hms                 output format of seconds (def: s: seconds)
      -X <key>:<value>         eXtension options, see man page for details
      -z <statistics>          show various statistics, see man page for details
    
    Output:
      -w <outfile|->           set the output filename (or '-' for stdout)
      --capture-comment <comment>
                               set the capture file comment, if supported
    
    Miscellaneous:
      -h, --help               display this help and exit
      -v, --version            display version info and exit
      -P <key>:<path>          persconf:path - personal configuration files
                               persdata:path - personal data files
      -o <name>:<value> ...    override preference or recent setting
      -K <keytab>              keytab file to use for kerberos decryption
      --fullscreen             start Wireshark in full screen
    

    参数解析

     首先要注意的是,单独发出命令wireshark 将调出Wireshark。 但是,可以根据需要包含任意数量的命令行参数。

    捕获停止

      -c <packet count>        stop after n packets (def: infinite)
      -a <autostop cond.> ..., --autostop <autostop cond.> ...
                               duration:NUM - stop after NUM seconds
                               filesize:NUM - stop this file after NUM KB
                               files:NUM - stop after NUM files
                               packets:NUM - stop after NUM packets
    

    -a / --autostop

     指定一个标准,用于指定 Wireshark 何时停止写入捕获文件。 标准的形式为 test:value,其中 test 是以下之一:
      1. duration:value: 秒值过后停止写入捕获文件。
      2. filesize:value: 在达到值 KB 的大小后停止写入捕获文件(其中 KB 是 1000 字节,而不是 1024 字节)。 如果此选项与 -b 选项一起使用,Wireshark 将停止写入当前捕获文件并在达到文件大小时切换到下一个。
      **3. files:value:**写入文件数量后停止写入捕获文件。
      **4. packets:value:**写入数据包数量值后停止写入捕获文件。

    -c [capture packet count]

     此选项指定捕获实时数据时要捕获的最大数据包数。 它将与 -k 选项结合使用。

    –capture-comment [comment]

     如果文件格式支持,将注释字符串添加到捕获文件中

    捕获输出

      -b <ringbuffer opt.> ..., --ring-buffer <ringbuffer opt.>
                               duration:NUM - switch to next file after NUM secs
                               filesize:NUM - switch to next file after NUM KB
                                  files:NUM - ringbuffer: replace after NUM files
                                packets:NUM - switch to next file after NUM packets
                               interval:NUM - switch to next file when the time is an exact multiple of NUM secs
    

    -b [ringbuffer opt.] …, --ring-buffer

     如果指定了最大捕获文件大小,则此选项会导致 Wireshark 以“环形缓冲区”模式运行,并具有指定的文件数量。 在“环形缓冲区”模式下,Wireshark 将写入多个捕获文件。 它们的名称基于文件编号以及创建日期和时间。当第一个捕获文件填满时,Wireshark 将切换到写入下一个文件,依此类推。 使用文件选项还可以形成“环形缓冲区”。 这将填充新文件直到指定的文件数,此时第一个文件中的数据将被丢弃,以便可以写入新文件。如果指定了可选的持续时间,即使当前文件没有完全填满,
    Wireshark 也会在指定的秒数过后切换到下一个文件。
      1. duration:value: 即使当前文件没有完全填满,也在 value 秒后切换到下一个文件。
      2. filesize:value: 在达到值千字节(其中千字节是 1000 字节,而不是 1024 字节)后切换到下一个文件。
      3. files:value: 在写入文件数量(形成环形缓冲区)后,再次从第一个文件开始。
      4. packets:value: 写入值 number of packet 后切换到下一个文件,即使当前文件没有完全填满。
      5. interval:value: 当时间是 value 秒的精确倍数时,切换到下一个文件。

    捕捉界面

     -i <interface>, --interface <interface>
                               name or idx of interface (def: first non-loopback)
      -f <capture filter>      packet filter in libpcap filter syntax
      -s <snaplen>, --snapshot-length <snaplen>
                               packet snapshot length (def: appropriate maximum)
      -p, --no-promiscuous-mode
                               don't capture in promiscuous mode
      -k                       start capturing immediately (def: do nothing)
      -S                       update packet display when new packets are captured
      -l                       turn on automatic scrolling while -S is in use
      -I, --monitor-mode       capture in monitor mode, if available
      -B <buffer size>, --buffer-size <buffer size>
                               size of kernel buffer (def: 2MB)
      -y <link type>, --linktype <link type>
                               link layer type (def: first appropriate)
      --time-stamp-type <type> timestamp method for interface
      -D, --list-interfaces    print list of interfaces and exit
      -L, --list-data-link-types
                               print list of link-layer types of iface and exit
      --list-time-stamp-types  print list of timestamp types for iface and exit
    

    -i [interface], --interface [interface]

     设置用于实时数据包捕获的网络接口或管道的名称。网络接口名称应与 wireshark -D 中列出的名称之一匹配。 也可以使用由wireshark -D 报告的数字。如果没有指定接口,则Wireshark查找接口列表,如果有非环回接口,则选择第一个非环回接口,如果没有非环回接口,则选择第一个环回接口; 如果没有接口,Wireshark 会报错,不开始抓包。 管道名称应该是 FIFO(命名管道)的名称或“-”以从标准输入读取数据。 从管道读取的数据必须是标准的 libpcap 格式。

    wireshark -i 2 
    wireshark -interface 2   // 将捕获接口指定为 2
    

    -f [capture filter]

     此选项设置捕获数据包时要使用的初始捕获过滤器表达式。

    -s [snaplen], --snapshot-length [snaplen]

     此选项指定捕获数据包时要使用的快照长度。 Wireshark 只会为每个数据包捕获 snaplen 字节的数据。

    -p, --no-promiscuous-mode

     不要将界面置于混杂模式。 请注意,由于某些其他原因,接口可能处于混杂模式。 因此,-p 不能用于确保捕获的唯一流量是发送到或来自运行 Wireshark 的机器的流量、广播流量和多播流量到该机器接收的地址。

    -k

     -k 选项指定 Wireshark 应立即开始捕获数据包。 此选项需要使用 -i 参数来指定将发生数据包捕获的接口。

    wireshark -k -i 2 // 立即捕获接口编号为2的数据
    

    -S

     此选项指定 Wireshark 将在捕获数据包时显示它们。 这是通过在一个进程中捕获并在单独的进程中显示它们来完成的。 这与“捕获选项”对话框中的“实时更新数据包列表”相同。

    -l

     如果数据包列表窗格在捕获期间到达时自动更新数据包列表窗格(由 -S 标志指定),则此选项打开自动滚动。

    -I, --monitor-mode

     如果可用,在监控模式下捕获无线数据包。

    -B [buffer size], --buffer-size [buffer size

     设置捕获缓冲区大小(以 MB 为单位,默认为 2MB)。 捕获驱动程序使用它来缓冲数据包数据,直到该数据可以写入磁盘。 如果在捕获时遇到数据包丢失,尝试增加此大小。

    -y [link type], --linktype [link type]

     如果使用 -k 从命令行开始捕获,请设置捕获数据包时要使用的数据链接类型。 -L 报告的值是可以使用的值。

    –time-stamp-type

     如果使用 -k 从命令行开始捕获,请设置捕获数据包时要使用的时间戳类型。 --list-time-stamp-types 报告的值是可以使用的值。

    -D, --list-interfaces

     打印 Wireshark 可以捕获的接口列表,然后退出。 对于每个网络接口,会打印一个编号和一个接口名称,可能后跟该接口的文本描述。 可以将接口名称或编号提供给 -i 标志以指定要在其上捕获的接口。这对于没有列出它们的命令的系统很有用。 该数字在 Windows 上特别有用,其中接口名称是 GUID。 “可以捕获”意味着 Wireshark 能够打开该设备进行实时捕获。 如果在您的系统上,执行网络捕获的程序必须从具有特殊权限的帐户运行,那么,如果 Wireshark 使用 -D 标志运行并且不是从此类帐户运行,则它不会列出任何接口。

    -L, --list-data-link-types

     列出接口支持的数据链路类型并退出。

    –list-time-stamp-types

     列出接口可配置的时间戳类型并退出。

    RPCAP

    -A <user>:<password>     use RPCAP password authentication
    

    -A [user]:[password]

     使用 RPCAP 密码认证

    文件输入

      -r <infile>, --read-file <infile>
    

    -r [infile], --read-file [infile]

     此选项为 Wireshark 提供要读取和显示的捕获文件的名称。 此捕获文件可以采用 Wireshark 理解的格式之一。

    进程

     -R <read filter>, --read-filter <read filter>
                               packet filter in Wireshark display filter syntax
      -n                       disable all name resolutions (def: all enabled)
      -N <name resolve flags>  enable specific name resolution(s): "mnNtdv"
      -d <layer_type>==<selector>,<decode_as_protocol> ...
                               "Decode As", see the man page for details
                               Example: tcp.port==8888,http
      --enable-protocol <proto_name>
                               enable dissection of proto_name
      --disable-protocol <proto_name>
                               disable dissection of proto_name
      --enable-heuristic <short_name>
                               enable dissection of heuristic protocol
      --disable-heuristic <short_name>
                               disable dissection of heuristic protocol
    

    -R [read filter], --read-filter [read filter]

     此选项指定从捕获文件读取数据包时要应用的显示过滤器。 此过滤器的语法是在查看时过滤数据包中讨论的显示过滤器的语法。 与过滤器不匹配的数据包将被丢弃。

    -n

     禁用网络对象名称解析(例如主机名、TCP 和 UDP 端口名称)。

    -N [name resolve flags]

     为特定类型的地址和端口号打开名称解析。 参数是一个字符串,可能包含以下字母:
      1. N: 使用外部名称解析器。
      2. d: 从捕获的 DNS 数据包启用名称解析。
      3. m: 启用 MAC 地址解析。
      4. n: 启用网络地址解析。
      5. t: 启用传输层端口号解析。
      6. v: 启用 VLAN ID 解析。

    -d [layer_type]==[selector],[decode_as_protocol] …

    –enable-protocol <proto_name>

     启用协议的解剖。

    –disable-protocol <proto_name>

     启用和禁用协议的解剖。

    –enable-heuristic <short_name>

     启用启发式协议的剖析。

    –disable-heuristic <short_name>

     禁用启发式协议的剖析。

    用户界面

      -C <config profile>      start with specified configuration profile
      -H                       hide the capture info dialog during packet capture
      -Y <display filter>, --display-filter <display filter>
                               start with the given display filter
      -g <packet number>       go to specified packet number after "-r"
      -J <jump filter>         jump to the first packet matching the (display)
                               filter
      -j                       search backwards for a matching packet after "-J"
      -t a|ad|adoy|d|dd|e|r|u|ud|udoy
                               format of time stamps (def: r: rel. to first)
      -u s|hms                 output format of seconds (def: s: seconds)
      -X <key>:<value>         eXtension options, see man page for details
      -z <statistics>          show various statistics, see man page for details
    

    -C [config profile]

     从指定的配置文件开始。

    -H

     在实时数据包捕获期间隐藏捕获信息对话框。

    -Y [display filter], --display-filter [display filter]

     从给定的显示过滤器开始。

    -g [packet number]

     使用 -r 标志读入捕获文件后,转到给定的数据包编号。

    -J [jump filter]

     使用 -r 标志读入捕获文件后,跳转到与过滤器表达式匹配的第一个数据包。 过滤器表达式采用显示过滤器格式。 如果无法找到精确匹配,则选择之后的第一个数据包。

    -j

     在 -J 选项之后使用此选项可向后搜索要转到的第一个数据包。

    -t [time stamp format]

     此选项设置在数据包列表窗口中显示的数据包时间戳的格式。格式可以是以下之一:
      1. r: 相对,它指定相对于捕获的第一个数据包显示时间戳。
      2. a: 绝对,指定显示所有数据包的实际时间。
      3. ad: 绝对日期,指定显示所有数据包的实际日期和时间。
      4. adoy: 带有的绝对 YYYY/DOY 日期,它指定所有显示的实际日期和时间数据包。
      5. d: Delta,它指定时间戳是相对于前一个数据包的。
      6. dd: Delta,指定时间戳是相对于之前显示的数据包而言的。
      7. e: Epoch,它指定时间戳是自纪元(1970 年 1 月 1 日 00:00:00)以来的秒数。
      8. u: Absolute,指定以 UTC 格式显示所有数据包的实际时间。
      9. ud: 带日期的绝对值,指定以 UTC 格式显示所有数据包的实际日期和时间。
      10. udoy: 带有 YYYY/DOY 日期的 Absolute,它指定所有显示的实际日期和时间
    UTC 中的数据包。

    -u s|hms

     将时间显示为秒(“s”,默认值)或小时、分钟和秒(“hms”)。

    -X [key]:[value]

     指定要传递给 Wireshark/Tshark 模块的选项。 eXtension 选项的格式为 extension_key:value,其中 extension_key 可以是:
      **1. lua_script:[lua_script_filename] ** 除了默认的 Lua 脚本外,还告诉 Wireshark 加载给定的脚本。
      **2. lua_script[num]:argument ** 告诉 Wireshark 将给定的参数传递给由 num 标识的 lua 脚本,这是 lua_script 命令的编号索引顺序。
      **3. read_format:[file_type] ** 告诉 Wireshark 使用特定的输入文件类型,而不是自动确定它。
      **4. stdin_descr:[description] ** 定义标准输入接口的描述,而不是默认值(标准输入)。

    -z [statistics]

     获取 Wireshark 收集各种类型的统计信息,并将结果显示在半实时更新的窗口中。

    输出

      -w <outfile|->           set the output filename (or '-' for stdout)
      --capture-comment <comment>
                               set the capture file comment, if supported
    

    -w [outfile|-]

     此选项设置用于保存捕获的数据包的文件的名称。 对于标准输出,这可以是“-”。

    其他

      -h, --help               display this help and exit
      -v, --version            display version info and exit
      -P <key>:<path>          persconf:path - personal configuration files
                               persdata:path - personal data files
      -o <name>:<value> ...    override preference or recent setting
      -K <keytab>              keytab file to use for kerberos decryption
      --fullscreen             start Wireshark in full screen
    

    -h, --help

     此选项要求 Wireshark 打印其版本和使用说明并退出。

    -v, --version

     此选项要求 Wireshark 打印出其版本信息并退出。

    -P [key]:[path]

     特殊路径设置通常会自动检测。 这用于特殊情况,例如 从 U 盘上的已知位置启动 Wireshark。 标准的格式为 key:path,其中 key 是以下之一:
      **1. persconf:path ** 个人配置文件的路径,如首选项文件。
      **2. persdata:path ** 个人数据文件的路径,是最初打开的文件夹。 初始化后,最近的文件将保留上次使用的文件夹。

    -o [name]:[value]

     设置首选项或最近的值,覆盖默认值和从首选项或最近的文件中读取的任何值。 标志的参数是一个格式为 prefname:value 的字符串,其中 prefname 是首选项的名称(与首选项或最近的文件中出现的名称相同),而 value 是它应该成为的值 放。 -o <preference settings> 的多个实例可以在单个命令行上给出。 设置单个首选项的示例是:

    wireshark -o mgcp.display_dissect_tree:TRUE
    

     设置多个首选项的示例是:

    wireshark -o mgcp.display_dissect_tree:TRUE -o mgcp.udp.callagent_port:2627
    

    -K [keytab]

     -k 选项指定 Wireshark 应立即开始捕获数据包。 此选项需要使用 -i 参数来指定将发生数据包捕获的接口。

    –fullscreen

     全屏启动 Wireshark

    更多相关内容
  • Wireshark—高级特性&命令行模式

    千次阅读 2022-04-07 02:18:55
    文章目录wireshark解析错误 wireshark解析错误 原因:网络上的协议使用了不同标准时,wireshark解析错误,这时我们需要更改wireshark协议解析方式! 如:查看SSL数据包中Packet 分析: Bytes中的ASCLL码值出现...

    wireshark协议解析错误

    原因:网络上的协议使用了不同标准时,wireshark解析错误,这时我们需要更改wireshark协议解析方式!
    解决方法:根据包里的数据判断该数据包应该是使用什么协议,然后对该数据包设置使用正确的协议的解析器来解析。

    如:查看SSL数据包中Packet Bytes面板
    在这里插入图片描述
    分析: Packet Bytes中的ASCLL码值出现明文数据流量如password,可以判断wireshark解析错误,因为真正的SSL数据包中我们是获取不了有用信息的,更不会看见以明文传送的密码。根据信息可知该数据包应该是FTP数据包!
    解析错误原因:可能是FTP数据包使用了443端口,这个端口原本是HTTPS专用端口,而HTTPS是基于SSL的HTTP协议。
    解决方法:强制wireshark使用FTP协议的解析器来解析这些数据包。找到要转换解析的数据包,单击——鼠标右键
    ——Decode As——Tranaport——下拉菜单选择destination(443)并且在右边列表找到FPT——Apply——OK
    实现了wireshark对所有443端口用FPT协议解析!
    在这里插入图片描述
    查看解析器修改记录:Decode As——Show Current

    因为wireshark是一款开源的软件,所以我们也可以分析wireshark软件的源代码来找出协议解析错误的原因哟~

    协议解析器程序源代码位置:先在官方软件下载该软件源代码——epan文件夹——dissectors文件夹

    查看两个主机通信过程

    点击容易TCP数据包——右键——follow tcp stream
    在该框不仅能查看两个主机通信过程还能实现文本搜索、保存文件、打印等功能。

    查看所有数据包长度分布

    通过一个捕获文件中数据包的长度情况来对流量进行分析,是对一个文件概览的很好方法,如果发现了很多大的数据包则很可能是进行了大量数据传输,如果绝大部分的数据包都很小可以认为这里面有很多的控制命令不存在大量数据传输。
    选择菜单栏的统计——数据包长度——Create Stat

    分析:

    • 首先关注数据包长度最大且占比最多的区段,因为比较大的数据包这很有可能用于数据的传输,较小的数据包用来保存协议的控制序列。占比最多说明这里包含一个或者多个的数据传输流量,可能是HTTP的下载、FTP的上传
    • 其次看占比第二多的区段,这明显是TCP控制的数据包。

    专家信息

    因为整个网络中TCP信息都会被wireshark中的专家信息所记录,如丢包、网络阻塞等等,针对每个协议的解析器都会有专家信息,我们可以通过专家信息窗口查看使用该协议的数据包中的特定状态错误、警告以及提示等信息。这些状态可以分为四类:

    • 对话(Chat): 关于正常通信的基本信息

    • 注意(Note):正常通信时的异常数据包

    • 警告(Warn):不是正常通信中的异常数据包(个人理解为:非正常的通信产生的数据包)

    • 错误(Error):数据包中的错误,或者解析器解析时的错误

    专家信息窗口:点击Analyze——Export InfoComposite

    TCP的14种专家模式

    专家信息窗口出现的常见提示如下:

    • 对话消息(Chat)
      窗口更新(window update):由接收者发送,用来通知发送者TCP接收窗口的大小已经发生变化。
      在这里插入图片描述

    • 注意消息(Note)
      retransmission(TCP重传):数据包丢失的结果。发生在收到重传的ACK,或者数据包的重传计时器超时的时候。
      Duplicate ACK(重复ACK):当一台主机没有收到下一个期望序列号的数据包时,会生成最近一次收到的数据的重复ACK。
      零窗口探查:在一个零窗口包被发送出去后,用来监视TCP接收窗口的状态。
      保活ACK(ACK to Tcp keep-alive):用来响应保活数据包
      零窗口探查ACK:用来响应零窗口探查数据包。
      窗口已满:用来通知传输主机接受者的TCP窗口已满。

    • 警告信息(Warn)
      在这里插入图片描述
      上一段丢失:指明数据包丢失。发生在当数据流中一个期望序列号被跳过时。
      收到丢失数据包的ACK:发生在当一个数据包被确认丢失但在之后收到了这个已经被确认丢失的数据包的ACK数据包。
      保活:当一个连接的保活数据出现时触发。
      零窗口:当接收方已经达到TCP接收窗口大小时,发出一个零窗口通知,要求发送方停止传输数据。
      乱序:当数据包被乱序接收时,会利用序列号进行检测。

    • 错误信息(Error)
      Packet size limited during capture:说明被标记的那个数据包没有抓全。

    Wireshark命令行模式

    在实际的分析中,为了得到精准的分析结果,往往需要通过编写脚本程序来实现我们的目的。在 Wireshark 程序目录中,包含两个命令行捕获工具。这两个工具分别是 DumpcapTshark。当不能以图形界面方式捕获数据时,可以在命令行使用 dumpcap 或 tshark 程序实施捕获。
    使用命令行优势

    1、可以使用诸如awk或者grep这样的工具来辅助分析。
    awk可以将文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。而grep可以用于字符串的查找。
    2、编辑好的命令之后可以反复使用,甚至可以写成一个程序供以后使用。
    3、tshark输出的分析文本大多可以直接写入分析报告里,而wireshark是无法生成这样的报告的
    4、命令行比图形界面快得多

    环境:虚拟机,如kali
    功能:tshark.exe和dumpcap命令行工具就能用来引入相关脚本程序
    位置:在安装wireshark目录下会有tshark.exe、dumpcap.exe工具以及两款工具的帮助信息
    运行tshark.exe或dumpcap.exe

    方法一:cmd进入控制台——然后命令行进入wireshark安装目录——然后通过相关命令使用
    方法二:直接将tshark或dumpcap.exe加入环境变量就可以直接使用。

    Tshark.exe

    常用操作如下

    1、在kali的终端
    2、切换到 Wireshark 目录,执行 tshark -D 命令,查看可用的接口
    3、开始捕获数据。
    如:文件路径为e:\file\Wireshark\,文件名为mytshark.pcapng,指定捕获4号接口,捕获3个文件后自动停止,10秒后捕获下一个文件。tshark -i4 -a files:3 -b duration:10 -w e:\file\Wireshark\mytshark.pcapng
    4、查看生成的捕获文件
    dir e:\file\Wireshark\mytshark*其中文件路径为e:\file\Wireshark\,文件名为mytshark.pcapng
    5、查找含某个字符串的数据包
    在kali的控制台中输入命令行tshark -r 文件路径/文件名称 | grep -e 查找的字符,回车
    如:在这里插入图片描述

    Dumpcap.exe

    常用操作如下
    进入控制台再命令进入Dumpcap.exe文件目录下
    1、查看参数详情dumpcap -h
    2、查看本机可用的接口dumpcap -D
    3、捕获数据,可以使用-c 或 -a选项指定停止捕获数据包的条件。
    如:捕获第2个接口上的数据,并且当捕获文件达到100KB时自动停止捕获,文件路径为e:\file\Wireshark\,文件名为mytshark.pcapng,命令dumpcap -i 2 -a filesize:100 -w e:\file\Wireshark\myshark.pcapng
    4、查看生成捕获文件 myshark.pcapng 的大小。dir e:\file\Wireshark\myshark.pcapng

    利用命令行对捕获文件进行调优分析

    进行性能调优主要是对Summary(概述信息)、Service Response Time(服务响应时间)以及Expert Info Composite(专家信息整合)的内容进行分析

    • Summary(概述信息)可以通过capinfos.exe进行查询

    打开终端——cd进入wireshark目录——输入命令capinfos 所分析文件路径\分析文件名称——回车

    • Service Response Time(服务响应时间)获取则需要视不同的协议而定。

    比如对于NFS(网络文件系统)协议可以cd进入wireshark目录使用以下命令:tshark -n -q -r 所分析文件路径\分析文件名称 -z "rpc,program"

    • 上述命令中的-n表示禁止所有地址名字解析(默认为允许所有);-q设置为标准输出(常用于统计);-z表示设置统计参数。

    对于CIFS协议,只要把上述命令中的双引号里面的内容改为“smb,srt”即可

    tshark输出的分析文本大多可以直接写入分析报告里面,而Wireshark却无法生成这样的报告。
    比如,我想统计每一秒里面CIFS操作的Service Response Time,那么可以执行以下命令:tshark -n -q -r 所分析文件路径\分析文件名称 -z "io,stat,1.00,AVG<smb.time>smb.time"
    如果将这个结果导入到Excel里面,就可以生成各种报表。

    和其它软件一样,命令行往往比图形界面快得多。
    比如现在有一个捕获文件,里面有众多的数据包,但是我只对IP地址为74.125.23.102的数据包感兴趣。

    如果使用Wireshark操作的话,需要首先打开捕获文件,再利用ip.addr==74.125.23.102进行筛选,最后保存结果。其实这三个步骤还是比较费时的。
    可是如果使用tshark就只需要以下一条命令就可以了: tshark -r 所分析文件路径\分析文件名称 -Y “ip.addr==74.125.23.102” -w 所要生成文件完整路径

    这样,生成的Lab5-4.pcapng文件中就会只包含有IP地址为74.125.23.102的数据包了。

    掌握命令行工具的常用命令

    统计重传的状况:使用tcp.analysis.retransmission命令:
    tshark -n -q -r 所分析文件路径\分析文件名称 -z "io,stat,0,tcp.analysis.retransmission"

    如果想查看乱序的情况,使用命令:
    tshark -n -q -r 所分析文件路径\分析文件名称 -z "io,stat,0,tcp.analysis.out_of_order"

    查看会话信息:利用”conv,xxx”就可以做到。其中的xxx可以是tcp、udp或者ip。比如查看TCP的会话信息:
    tshark -n -q -r 所分析文件路径\分析文件名称 -z "conv,tcp"

    最后,如果我们遇到了一个非常大的捕获文件,使用tshark无法打开该怎么办?

    那么此时就需要将该文件切分成多个,可以利用editcap来实现:editcap 所分析文件路径\分析文件名称 output.pcapng –i 4,以文件4秒为间隔进行拆分

    以上是我整理wireshark知识的第二份笔记,记录下来温故知新,希望也能帮助到你~

    展开全文
  • 使用wireshark进行抓包

    2021-10-21 22:54:34
    1. 对wireshrk的认识: Wireshark(前称Ethereal)是一个网络封包...网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普...

    1. 对wireshrk的认识:

          Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

    2.wireshark的使用目的

    以下是一些使用Wireshark目的的例子:

    网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识。当然,有的人也会“居心叵测”的用它来寻找一些敏感信息……

    Wireshark不是入侵侦测系统(Intrusion Detection System,IDS)。对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。然而,仔细分析Wireshark撷取的封包能够帮助使用者对于网络行为有更清楚的了解。Wireshark不会对网络封包产生内容的修改,它只会反映出流通的封包资讯。 Wireshark本身也不会送出封包至网络上。

    3.wireshark主要窗口如下:

     1.菜单——用于开始操作。

     2.主工具栏——提供快速访问菜单中经常用到的项目的功能。

     3.Fiter toolbar/过滤工具栏——提供处理当前显示过滤得方法。

     4.Packet List 面板——显示打开文件的每个包的摘要。点击面板中的单独条目,包的其他情况将会显示在另外两个面板中。

     5.Packet detail 面板——显示您在Packet list 面板中选择的包的更多详情。

    口6.Packet bytes 面板——显示您在Packet list 面板选择的包的数据,以及在Packet details 面板高亮显示的字段。

    口7.状态栏——显示当前程序状态以及捕捉数据的更多详情。

    4.wireshark抓包过程

    ①开始进行抓包,选择WLAN,然后选择打开,抓包开始

     

    ②执行抓包操作,在命令提示符中ping www.daidu.com,抓包就可以按照需要的进行下去了

    ③然后在过滤栏中选择ip.addr ==14.215.177.39就可以筛选需要的数据,如下:

     若在ip.addr ==14.215.177.39后面加上and icmp,即ip.addr ==14.215.177.39 and icmp就可以得到如下:

     综上,抓包就完成了。

    5.对于wireshark的过滤选择

    即如下http选择过滤,可以通过条件筛选来得到所需要的数据

     还可以是端口过滤,协议过滤,ip过滤,从中屏蔽一些数据,更容易得到我们需要的数据

    展开全文
  • 实验目录计算机网络系列实验前言一、验证性实验1.ipconfig2.ping3.tracert4.ARP5.DHCP6.netstat7.DNS8.cache二、Wireshark实验1.引入库2.读入数据三.Cisco Packet Tracer实验总结 前言 需要软件: Cmder Cmder下载...


    前期准备

    需要软件:
    Cmder Cmder下载1 Cmder下载2(官网)
    Wireshark Wireshark下载
    Cisco Packet Tracer (CPT) CPT下载
    CPT 建议免费注册,否则将以 Guest 身份下载和使用
    CPT官网

    关于Cmder的一些常用快捷键

    Tab       自动路径补全
    Ctrl+T    建立新页签
    Ctrl+W    关闭页签
    Ctrl+Tab  切换页签
    Alt+F4    关闭所有页签
    Alt+Shift+1 开启cmd.exe
    Alt+Shift+2 开启powershell.exe
    Alt+Shift+3 开启powershell.exe (系统管理员权限)
    Ctrl+1      快速切换到第1个页签
    Ctrl+n      快速切换到第n个页签( n值无上限)
    Alt + enter 切换到全屏状态
    Ctr+r       历史命令搜索
    Tab         自动路径补全
    Ctrl+T      建立新页签
    Ctrl+W      关闭页签
    Ctrl+Tab    切换页签
    Alt+F4      关闭所有页签
    Alt+Shift+1 开启cmd.exe
    Alt+Shift+2 开启powershell.exe
    Alt+Shift+3 开启powershell.exe (系统管理员权限)
    Ctrl+1      快速切换到第1个页签
    Ctrl+n      快速切换到第n个页签( n值无上限)
    Alt + enter 切换到全屏状态
    Ctr+r       历史命令搜索
    Win+Alt+P   开启工具选项视窗
    

    参考资料

    使用Cmder替换cmd,让开发更高效


    一、验证性实验

    1.ipconfig

    1. ipconfig-Microsoft简介
    2. ipconfig命令詳細圖解
    3. ipconfig-WiKI

    ipconfig是微软操作系统的电脑上用来控制网络连线的一个命令行工具。它的主要功用,包括用来显示现时网络连线的设置(/all参数),或透过/release参数来释放获取的ip位置,和透过 /renew 来重新获取ip位置的分配。

    显示所有当前 TCP/IP 网络配置值并刷新动态主机配置协议 (DHCP) 和域名系统 (DNS) 设置。 在没有参数的情况下使用, ipconfig 显示 Internet 协议版本 4 (IPv4) 以及所有适配器的 IPv6 地址、子网掩码和默认网关。

    参数说明
    /all显示所有适配器的完整 TCP/IP 配置。 适配器可表示物理接口(例如已安装的网络适配器)或逻辑接口(如拨号连接)。
    /?显示帮助信息
    /release释放某一个网络上的IP位置
    /renew更新某一个网络上的IP位置
    /flushdns把DNS解析器的暂存内容全数删除
    • 实作一
      在这里插入图片描述

    问题:
    你的计算机和旁边的计算机是否处于同一子网,为什么?

    • 回答:
      当我的计算机和旁边的计算机连接在同一个交换机或者是同一个路由器的同一个LAN口上的时候,处在同一个子网

    2.ping

    PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序 。Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态 。

    1. ping指令高級用法
    2. Ping 命令详解

    用法:

     ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
    
               [-r count] [-s count] [[-j host-list] | [-k host-list]]
    
               [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name
    
    
    
    -t :Ping 指定的计算机直到中断。
    
    -a :将地址解析为计算机名。
    
    -n count :发送 count 指定的 ECHO 数据包数。默认值为 4。
    
    -l size :发送包含由 size 指定的数据量的 ECHO 数据包。默认为 32 字节;最大值是65,527。
    
    -f :在数据包中发送"不要分段"标志。数据包就不会被路由上的网关分段。
    
    -i ttl :将"生存时间"字段设置为 ttl 指定的值。
    
    -v tos :将"服务类型"字段设置为 tos 指定的值。
    
    -r count :在"记录路由"字段中记录传出和返回数据包的路由。count 可以指定最少 1 台,最多 9 台计算机。
    
    -s count :指定 count 指定的跃点数的时间戳。
    
    -j host-list :利用 host-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
    
    -k host-list :利用 host-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
    
    -w timeout :指定超时间隔,单位为毫秒。
    
    destination-list :指定要 ping 的远程计算机。
    
    • 实作一

    要测试到某计算机如 重庆交通大学 Web 服务器的连通性,可以使用 ping www.cqjtu.edu.cn 命令,也可直接使用 IP 地址。
    请掌握使用该命令后屏幕显示的反馈回来信息的意思,如:TTL、时间等。

    在这里插入图片描述

    • 实作二

    使用 ping/? 命令了解该命令的各种选项并实际使用。

    在这里插入图片描述

    问题1:
    假设你不能 ping 通某计算机或 IP,但你确定该计算机和你之间的网络是连通的,那么可能的原因是什么?该如何处理能保证ping 通?

    • 回答:
      网络连通说明网线以及通信过程中间的通信子网没问题,则原因可能有:
      1.网络协议配置问题(eg:局域网IP冲突)
      2.网卡问题
      3.目的IP在防火墙里面把Ping给ban了 4.IP协议未安装
      解决方案:
      1.ping 127.0.0.1,检查是否是自身网卡问题
      2.在网络连接属性里面查看网络协议配置是否出错
      3.ping一下其他的IP确认是否是对方计算机的问题

    秘籍:
    当你的网络出现故障不能访问某计算机如 14.215.177.39 (百度的 IP 地址之一 ) 时,我们一般可采用由近及远的连通性测试来确定问题所在。现假设你的 IP 是 192.168.1.89,你旁边计算机的 IP 是 192.168.1.64,网关的 IP 是 192.168.1.1 ,那么过程如下:
    1.ping 127.0.0.1 ,测试自己计算机的状态,如果 OK,那么说明本机网络软件硬件工作正常,否则,问题在本机,检查本机 TCP/IP 配置即网卡状态等
    2.ping 192.168.1.64 ,测试到旁边计算机的连通性,如果OK,那么说明本子网内部工作正常,否则,问题在本机网络出口到交换机之间,检查本机网卡到交换机的连线等
    3.ping 192.168.1.1,测试到网关的连通性,如果 OK,那么说明本子网出口工作正常,否则,问题在网关,这是你无能为力的事情,报告给网管
    4.ping 14.215.177.39,测试到百度的连通性,如果 OK,那就 OK,否则,问题在网关以外,这也是你无能为力的事情,报告给网管或者李彦宏?

    问题2:
    假设在秘籍中进行的网络排查中,ping 百度的 IP 即 ping 14.215.177.39 没问题,但 ping 百度的域名即 ping www.baidu.com 不行,那么可能的原因是什么?如何进行验证和解决?
    另外,经常有同学问到的:“能上 QQ,但不能上网” 跟这个问题的原因是相似的。

    • 回答:
      域名ping不通说明域名解析不出来。
      负责解析域名的,就是DNS,
      首先清空一下DNS缓存,命令窗口ipconfig/flushdns然后设置电脑的DNS为google的DNS 8.8.8.8 或者电信的 101.226.4.6或者114.114.114.114大部分是可以的 如果还是Ping不通 则可联系给域名服务的服务商,他们会给出dns服务器。
      能上 QQ,但不能上网是因为QQ是不需要DNS解析域名的,DNS再怎么出问题也不会影响

    在baiInternet上域名与IP地址之间是一对一(或者多对一)的,也可采用DNS轮循实现一对多,域名虽然便于人们记忆,但机器之间只认IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。

    3.tracert

    实作一:
    要了解到某计算机如 www.baidu.com 中间经过了哪些节点(路由器)及其它状态,可使用 tracert
    www.baidu.com 命令,查看反馈的信息,了解节点的个数。

    可通过网站 http://ip.cn 查看这些节点位于何处,是哪个公司的,大致清楚本机到百度服务器之间的路径。
    在这里插入图片描述

    实作二:
    ping.pe 这个网站可以探测从全球主要的 ISP 到某站点如 https://qige.io
    的线路状态,当然也包括各线路到该主机的路由情况。请使用浏览器访问 http://ping.pe/qige.io 进行了解。

    在这里插入图片描述
    ping 油管时,国内服务器都处于离线状态
    在这里插入图片描述
    使用G Suite可视化追踪到Netflix
    在这里插入图片描述

    ✎ 问题一

    tracert 能告诉我们路径上的节点以及大致的延迟等信息,那么它背后的原理是什么?本问题可结合第二部分的 Wireshark
    实验进行验证。

    tracert背后的原理就是基于IP包中的TTL,每当数据包经过一个路由器,其存活时间就会减1。当其存活时间是0时,主机便取消数据包,并发送一个ICMP TTL数据包给原数据包的发出者。
    计算机发出TTL从1开始逐次加一的ICMP报文,通过返回的ICMP报文得到沿途IP信息。
    tracert baidu的时候使用wireshark进行抓包
    在这里插入图片描述
    抓包结果明显看到本机发出的报文的TTL是从一开始逐次加一的

    ✎ 问题二

    在以上两个实作中,如果你留意路径中的节点,你会发现无论是访问百度还是棋歌教学网,路径中的第一跳都是相同的,甚至你应该发现似乎前几个节点都是相同的,你的解释是什么?

    第一跳是计算机所在的子网的出口路由器的接口地址,所有出口流量都会经过这个接口,所有相同。前几跳相同表明该子网出口流量必经过前几跳ip代表的路由器。

    ✎ 问题三

    在追踪过程中,你可能会看到路径中某些节点显示为 * 号,这是发生了什么?

    出于安全性考虑,大多数防火墙以及启用了防火墙功能的路由器缺省配置为不返回各种 ICMP 报文,其余路由器或交换机也可被管理员主动修改配置变为不返回 ICMP 报文。因此 Traceroute 程序不一定能拿全所有的沿途网关地址,所以有的节点显示为*号。

    4.ARP

    实作一:
    运行 arp -a 命令查看当前的 arp 缓存, 请留意缓存了些什么。

    然后 ping 一下你旁边的计算机 IP(注意,需保证该计算机的 IP 没有出现在 arp 缓存中,或者使用 arp -d *
    先删除全部缓存),再次查看缓存,你会发现一些改变,请作出解释。

    在这里插入图片描述

    实作二:
    请使用 arp /? 命令了解该命令的各种选项。

    在这里插入图片描述

    实作三:
    一般而言,arp 缓存里常常会有网关的缓存,并且是动态类型的。

    假设当前网关的 IP 地址是 192.168.0.1,MAC 地址是 5c-d9-98-f1-89-64,请使用 arp -s
    192.168.0.1 5c-d9-98-f1-89-64 命令设置其为静态类型的。

    当前网关ip为192.168.43.79,MAC地址为c2-a6-42-5d-6a-b7
    在这里插入图片描述

    🗣 TroubleShooting

    你可能会在实作三的操作中得到 “ARP 项添加失败: 请求的操作需要提升” 这样的信息,表示命令没能执行成功,你该如何解决?

    权限不够,需要以管理员身份启动cmder

    ✎ 问题

    在实作三中,为何缓存中常常有网关的信息?

    我们将网关或其它计算机的 arp 信息设置为静态有什么优缺点?

    将网关的arp设置为静态可以有效预防arp欺骗,避免计算机受到攻击
    缺点就是不够灵活,并且麻烦

    5.DHCP

    实作一:
    一般地,我们自动获取的网络配置信息包括:IP 地址、子网掩码、网关 IP 以及 DNS 服务器 IP 等。使用
    ipconfig/release 命令释放自动获取的网络配置,并用 ipconfig/renew 命令重新获取,了解 DHCP
    工作过程和原理。

    在这里插入图片描述
    在这里插入图片描述
    release后可以看到网络配置消失,计算机显示断网
    在这里插入图片描述
    在这里插入图片描述
    renew后网络配置有了,而且和之前的网络配置一样
    在这里插入图片描述

    🗣 TroubleShooting

    如果你没能成功的释放,请思考有哪些可能的原因并着手进行解决?

    有可能不是以管理员权限启动

    ✎ 问题

    在Windows系统下,如果由于某种原因计算机不能获取 DHCP 服务器的配置数据,那么Windows将会根据某种算法自动配置为
    169.254.x.x 这样的 IP 地址。显然,这样的 IP 以及相关的配置信息是不能让我们真正接入 Internet 的,为什么?既然不能接入 Internet,那么Winodws系统采用这样的方案有什么意义?

    169.254.X.X的IP可以使得在同一子网下的主机能够保证通信,就算不能接入internet也能在局域网内进行通信

    6.netstat

    实作一:
    Windows 系统将一些常用的端口与服务记录在 C:\WINDOWS\system32\drivers\etc\services
    文件中,请查看该文件了解常用的端口号分配。

    在这里插入图片描述

    实作二:
    使用 netstat -an 命令,查看计算机当前的网络连接状况。更多的 netstat 命令选项,可参考链接 netstat 命令用法详解netstat 命令详解
    在这里插入图片描述

    7.DNS

    实作一:
    Windows 系统将一些固定的/静态的 DNS 信息记录在
    C:\WINDOWS\system32\drivers\etc\hosts 文件中,如我们常用的 localhost 就对应
    127.0.0.1 。请查看该文件看看有什么记录在该文件中。

    在这里插入图片描述

    实作二:
    解析过的 DNS 记录将会被缓存,以利于加快解析速度。请使用 ipconfig /displaydns 命令查看。我们也可以使用
    ipconfig /flushdns 命令来清除所有的 DNS 缓存。

    在这里插入图片描述

    实作三:
    使用 nslookup qige.io 命令,将使用默认的 DNS 服务器查询该域名。当然你也可以指定使用
    CloudFlare(1.1.1.1)或 Google(8.8.8.8) 的全球 DNS 服务器来解析,如:nslookup qige.io
    8.8.8.8,当然,由于你懂的原因,这不一定会得到正确的答案。

    在这里插入图片描述

    🗣 TroubleShooting

    上面秘籍中我们提到了使用插件或自己修改 hosts文件来屏蔽广告,思考一下这种方式为何能过滤广告?如果某些广告拦截失效,那么是什么原因?你应该怎样进行分析从而能够成功屏蔽它?

    可以找出广告的域名,加入黑名单,即直接在HOST文件里面,定义他的IP为 127.0.0.1,这样广告请求就失败了,也就看不见广告了

    8.cache

    实作一 :
    打开 Chrome 或 Firefox 浏览器,访问 https://qige.io ,接下来敲 F12 键 或 Ctrl +Shift + I 组合键打开开发者工具,选择 Network面板后刷新页面,你会在开发者工具底部看到加载该页面花费的时间。请进一步查看哪些文件被 cache了,哪些没有。

    在这里插入图片描述

    实作二:
    接下来仍在 Network 面板,选择 Disable cache 选项框,表明当前不使用 cache,页面数据全部来自于Internet,刷新页面,再次在开发者工具底部查看加载该页面花费的时间。你可比对与有 cache 时的加载速度差异。

    在这里插入图片描述

    二、Wireshark实验

    打开wireshark进行抓包
    在这里插入图片描述

    1.熟悉 Ethernet 帧结构

    在这里插入图片描述
    可以看到source是本机的网卡MAC地址
    Destination是本地当前所在的局域网出口网关的MAC地址,所有从本机出发的去访问internet的包的Destination都是这个MAC地址

    ✎ 问题

    你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。

    这是因为有时校验和会由网卡计算,这时wireshark抓到的本机发送的数据包的校验和都是错误的,所以默认关闭了WireShark自己的校验。

    2.了解子网内/外通信时的 MAC 地址

    ✎ 问题

    通过以上的实验,你会发现:

    访问本子网的计算机时,目的 MAC 就是该主机的
    访问非本子网的计算机时,目的 MAC 是网关的
    请问原因是什么?

    访问本子网的数据帧发出去后,在交换机处,有本子网的MAC地址表这个表只存放本子网的MAC地址,优先查询MAC表,如果没有就进行广播询问地址,所以目的MAC就是该主机的。
    而访问非本子网的计算机的时候,所有的数据都会经过网关,网关(大多是路由器)再根据IP进行寻址,故MAC地址都是网关的

    3.掌握 ARP 解析过程

    使用 arp -d * 命令清空 arp 缓存后,计算机发出arp广播询问地址
    在这里插入图片描述

    ✎ 问题

    通过以上的实验,你应该会发现,

    ARP 请求都是使用广播方式发送的 如果访问的是本子网的 IP,那么 ARP 解析将直接得到该 IP 对应的 MAC;
    如果访问的非本子网的 IP, 那么 ARP 解析将得到网关的 MAC。
    请问为什么?

    arp广播的时候,先在本子网内进行广播“Who has XXX.XXX.XXX.XXX",
    如果IP地址在本子网,对应的计算机就会回复广播“XXX.XXX.XXX.XXX. is at …(MAC地址)”
    之后将MAC存入本机的ARP缓存内
    当IP地址不在本子网内时,广播无回应,就会由网关(多数是路由器)对IP地址进行寻址,
    故ARP解析后是网关的MAC

    4.熟悉 IP 包结构

    选取一个UDP包,对其进行分析
    在这里插入图片描述

    ✎ 问题

    为提高效率,我们应该让 IP 的头部尽可能的精简。但在如此珍贵的 IP 头部你会发现既有头部长度字段,也有总长度字段。请问为什么?

    因为IP包的结构,头部长度是变长的,所以需要一个头部长度声明报头的长度以便目的主机传输层解包获取报文。
    总长度:

    每一种数据链路层都有其自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU。当IP数据报封装成链路层的帧时,此数据报的总长度不能超过对应MTU的值。若数据报长度超过对于MTU的值,就将数据报进行分片处理,此时数据报首部中的“总长度“字段是指分片后的每一个分片的报头长度和数据长度之和。

    5.IP 包的分段与重组

    根据规定,一个 IP 包最大可以有 64K 字节。但由于 Ethernet 帧的限制,当 IP 包的数据超过 1500
    字节时就会被发送方的数据链路层分段,然后在接收方的网络层重组。

    缺省的,ping 命令只会向对方发送 32 个字节的数据。我们可以使用 ping 202.202.240.16 -l 2000
    命令指定要发送的数据长度。此时使用 Wireshark 抓包(用 ip.addr == 202.202.240.16 进行过滤),了解 IP
    包如何进行分段,如:分段标志、偏移量以及每个包的大小等

    发现Ping的包被进行了分段,对方接受后会进行重新组装
    在这里插入图片描述
    在这里插入图片描述

    ✎ 问题

    分段与重组是一个耗费资源的操作,特别是当分段由传送路径上的节点即路由器来完成的时候,所以 IPv6 已经不允许分段了。那么 IPv6中,如果路由器遇到了一个大数据包该怎么办?

    IPv6会选择直接丢弃大数据包,精简路由器的功能,让路由器做好其本职工作–路由,这也是IPv6会更高效的原因之一

    6.考察 TTL 事件

    在 IP 包头中有一个 TTL 字段用来限定该包可以在 Internet上传输多少跳(hops),一般该值设置为 64、128等。

    在验证性实验部分我们使用了 tracert 命令进行路由追踪。其原理是主动设置 IP 包的 TTL 值,从 1
    开始逐渐增加,直至到达最终目的主机。

    请使用 tracert www.baidu.com 命令进行追踪,此时使用 Wireshark 抓包(用 icmp 过滤),分析每个发送包的
    TTL 是如何进行改变的,从而理解路由追踪原理。

    可以看到TTL是从1开始每3个报文逐次加一
    在这里插入图片描述

    ✎ 问题

    在 IPv4 中,TTL 虽然定义为生命期即 Time To Live,但现实中我们都以跳数/节点数进行设置。如果你收到一个包,其 TTL
    的值为 50,那么可以推断这个包从源点到你之间有多少跳?

    TTL(生存时间)计算公式:2^n且离返回值最近的值-TTL=经过路由器的数量
    离50最近的是64=2^8
    故经过路由器数量为64-50=14跳

    7.熟悉 TCP 和 UDP 段结构

    TCP段
    在这里插入图片描述
    UDP段
    在这里插入图片描述
    可以很明显的看出,UDP相比TCP更加的简洁
    TCP头部包含:
    源端口(source port),目的端口(Destination Port),序列号(Sequence Number),确认序列号(Acknowledgment Number),数据偏移(Data Offset),标志位(最重要的ACK,SYN,PSH,FIN)还有Checksum和urgent pointer
    在这里插入图片描述

    参考资料:
    UDP头部包含:
    源端口(source port),目的端口(Destination Port),相比TCP异常简洁
    在这里插入图片描述

    ✎ 问题

    由上大家可以看到 UDP 的头部比 TCP 简单得多,但两者都有源和目的端口号。请问源和目的端口号用来干什么?

    目的端口是为了将数据传递给指定的目的程序所在的进程,一个计算机中同时运行着许多的进程,这些进程都有各自的端口号
    而源端口号是为了当目的程序要返回数据的时候,对方也需要发送方这边的端口号传递数据

    8.分析 TCP 建立和释放连接

    TCP的可靠性除了来源于其复杂的格式之外,还有三次握手建立连接这一协议
    在这里插入图片描述
    刚好找到一段三次握手连接的建立
    在这里插入图片描述
    抓包可以看到三次握手中:
    第一次-----SYN=1
    第二次-----SYN=ACK=1
    第三次-----ACK=1
    这就建立好了连接

    而TCP连接的终止需要4次握手,其实也可以为3次,即返回ACK=1的segement同时FIN=1
    在这里插入图片描述
    从跟踪流后抓取的包中可以明显看出,这里释放连接只用了三次握手
    在这里插入图片描述

    ✎ 问题一

    去掉 Follow TCP Stream,即不跟踪一个 TCP 流,你可能会看到访问 qige.io
    时我们建立的连接有多个。请思考为什么会有多个连接?作用是什么?

    这是浏览器为了优化打开网页的速度,一般都会在打开网页的时候同时打开多个端口同时接受数据,再把数据进行集合重组,这样浏览网页的速度可以得到很大的提升
    例如Chrom浏览器最低都会打开6个端口,每个端口都会建立一个连接,所以会看到有多个连接

    ✎ 问题二

    我们上面提到了释放连接需要四次挥手,有时你可能会抓到只有三次挥手。原因是什么?

    因为返回ACK=1确认释放连接的时候,同一个报文中的FIN=1,即同时发出了释放连接请求

    9.了解 DNS 解析

    先使用 ipconfig /flushdns 命令清除缓存,再使用 nslookup qige.io 命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)。
    你应该可以看到当前计算机使用 UDP,向默认的 DNS 服务器的 53号端口发出了查询请求,而 DNS 服务器的 53 号端口返回了结果。
    可了解一下 DNS 查询和应答的相关字段的含义
    在这里插入图片描述

    在这里插入图片描述
    查询报文:
    目的端口为53
    在这里插入图片描述
    应答报文:
    返回了IP地址的信息
    在这里插入图片描述
    在这里插入图片描述

    ✎ 问题

    你可能会发现对同一个站点,我们发出的 DNS 解析请求不止一个,思考一下是什么原因?

    因为经常一个域名下有多个服务器,为了服务器负载均衡,不会一直连接的是同一个地址的服务器,需要有不同的服务器的地址

    10.了解 HTTP 的请求和应答

    1.打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用http 过滤再加上 Follow TCP
    Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间以将释放连接的包捕获。
    2.请在你捕获的包中找到 HTTP 请求包,查看请求使用的什么命令,如:GET, POST。并仔细了解请求的头部有哪些字段及其意义。
    3.请在你捕获的包中找到 HTTP应答包,查看应答的代码是什么,如:200, 304, 404 等。并仔细了解应答的头部有哪些字段及其意义。

    在这里插入图片描述

    三.Cisco Packet Tracer实验

    先了解 VLSM、CIDR、RIP、OSPF、VLAN、STP、NAT 及 DHCP 等概念

    VLSM:可变长子网掩码(Variable Length Subnet Mask)
    没有传统意义上的A,B,C类网络,根据需求变化子网掩码的长度(把大的分成小的)
    CIDR:无类别域间路由(Classless Inter-Domain Routing、CIDR)
    把子网聚合在一起,取相同的前缀集合到一起(把小的合成大的)
    e.g:198.240.X.X-198.255.X.X 网关就是198.240.0.0
    RIP:路由信息协议(Routing Information Protocol)
    是一种动态路由选择协议,这种协议的路由器只关心自己周围的世界,只与自己相邻的路由器交换信息,范围限制在15跳(15度)之内,再远,它就不关心了。RIP现在已经被OSPF所替代
    缺点:更新频繁,收敛慢,会产生路由循环(无穷计算)或路由信息不一致等问题
    OSPF:开放式最短路径优先(Open Shortest Path First)
    著名的迪克斯彻(Dijkstra)算法被用来计算最短路径树。OSPF支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等。
    VLAN:虚拟局域网(Virtual Local Area Network)
    简单说来就是把在不同物理子网的计算机集合到一个虚拟的局域网里,物理意义上并不存在这个局域网
    STP:生成树协议(Spanning Tree Protocol)
    生成树协议运行生成树算法(STA).生成树算法很复杂,但是其过程可以归纳为以下3个步骤:
    (1)选择根网桥
    (2)选择根端口
    (3)选择指定端口
    NAT:网络地址转换(Network Address Translation)
    将内网地址翻译为外网internet上的IP地址,一般是多个内网主机使用同一个IP,不同主机的区分依据是分配不同的端口号
    这是使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用的IP地址空间的枯竭,但同样也延缓了IPv6的更新换代
    DHCP:动态主机配置协议(Dynamic Host Configuration Protocol)
    一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。

    1.直接连接两台 PC 构建 LAN

    放置两台电脑,选择交叉线(切不可)
    我分别设置的ip为10.60.0.15和10.60.0.17
    在这里插入图片描述

    在这里插入图片描述
    互相ping能ping通

    2.用交换机构建 LAN

    拓扑结构如图
    在这里插入图片描述
    在这里插入图片描述

    ✎ 问题

    1.PC0 能否 ping 通 PC1、PC2、PC3 ?
    2.PC3 能否 ping 通 PC0、PC1、PC2 ?为什么?
    3.将 4 台 PC的掩码都改为 255.255.0.0 ,它们相互能 ping 通吗?为什么?
    4.使用二层交换机连接的网络需要配置网关吗?为什么?

    1.PC0和PC1在同一子网,能ping通,PC2和PC3所在子网和PC0/1不同,所以不能ping通
    PC0/1所在子网:192.168.1.0/24
    PC2/3所在子网:192.168.2.0/24
    2.PC3只能ping通PC2,理由同上
    3.能互相ping通了,因为所有PC都在192.168.0.0/16的局域网上
    在这里插入图片描述

    集线器 Hub 是工作在物理层的多接口设备,它与交换机的区别是什么?

    集线器的工作模式是广播,这点与交换机不同

    3.交换机接口地址列表

    二层交换机是一种即插即用的多接口设备,它对于收到的帧有 3 种处理方式:广播、转发和丢弃(请弄清楚何时进行何种操作)。那么,要转发成功,则交换机中必须要有接口地址列表即 MAC 表,该表是交换机通过学习自动得到的!

    仍然构建上图的拓扑结构,并配置各计算机的 IP 在同一个一个子网,使用工具栏中的放大镜点击某交换机如左边的 Switch3,选择 MAC Table,可以看到最初交换机的 MAC 表是空的,也即它不知道该怎样转发帧(那么它将如何处理?),用 PC0 访问(ping)PC1 后,再查看该交换机的 MAC 表,现在有相应的记录,请思考如何得来。随着网络通信的增加,各交换机都将生成自己完整的 MAC 表,此时交换机的交换速度就是最快的!

    4.生成树协议(Spanning Tree Protocol)

    在这里插入图片描述

    在这里插入图片描述

    5.路由器配置初步

    模拟重庆交通大学和重庆大学两个学校的连接,构建如下拓扑:
    在这里插入图片描述

    这时发现serial 口连接不了,我们选用的路由器默认没有广域网模块(名称为 WIC-1T 等),需要关闭路由器后添加,然后再开机启动。
    双击路由器

    在这里插入图片描述
    找到图片里面路由器的开关,把它关掉
    在这里插入图片描述
    接下来把 WIC-1T拖到黑色框框的预留部分
    在这里插入图片描述
    再开机就可以了

    在这里插入图片描述

    6.静态路由

    7.动态路由 RIP

    8.动态路由 OSPF

    9.基于端口的网络地址翻译 PAT

    10.虚拟局域网 VLAN

    11.虚拟局域网管理 VTP

    12.VLAN 间的通信

    13.DHCP、DNS及Web服务器简单配置

    14.WLAN初步配置


    展开全文
  • WireShark

    千次阅读 2022-07-03 22:33:20
    目录一、WireShark概述1.1 WireShark简介​​​​​​​1.2 WireShark应用二、WireShark抓包及快速定位数据包技巧2.1使用WireShark进行抓包2.2WireShark的过滤器使用三、使用WireShark对常用协议抓包并分析原理3.1...
  • 本文介绍在 Linux 系统(Ubuntu/Debian)中安装 Wireshark 并且使用 Wireshark,教你用 Wireshark 来捕获网络数据包。Wireshark 简介Wireshark 是自由开源的、跨平台的基于 GUI 的网络数据包分析器,可用于 Linux、...
  • wireshark过滤命令 今天主要说了wireshark的功能和使用。 打开软件那一刻,实实在在懵了。 在学习了部分知识之后,还是觉得有点迷茫。在网上查阅一些后,发现一篇很好的总结,拿过来作为学习模板:wireshark使用教程...
  • Wireshark用户使用手册系列完结篇

    千次阅读 2021-09-07 11:18:44
    Wireshark用户使用手册系列完结篇
  • Wireshark使用教程.rar

    2019-07-09 08:59:14
    Wireshark 是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包, 并尝试显示包的尽可能详细的情况。 你可以把网络包分析工具当成是一种用来测量有什么东西从网线上进出的测量工具,就好像使电工用来测量...
  • wireshark 使用-pcap导出指定数据

    千次阅读 2022-01-25 14:08:54
    wireshark 使用-pcap导出指定数据
  • 在文件管理器中拖动文件并将其放到Wireshark的主窗口中,就可以打开该文件。 “打开捕获文件”对话框 作用: 打开要查看的捕获文件 “打开捕获文件”对话框允许您搜索以前捕获的数据包的捕获文件,以便在w
  • Wireshark过滤规则使用一、 MAC地址过滤命令汇总:eth.addr==20:dc:e6:f3:78:cceth.src==20:dc:e6:f3:78:cceth.dst==20:dc:e6:f3:78:cc1、根据MAC地址进行筛选使用命令:eth.addr==20:dc:e6:f3:78:cc命令解说:筛选...
  • 实验二 简单网络命令wireshark捕获FTP用户名密码 预备知识 Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用...
  • 利用Tcpdump抓包结合Wireshark分析

    千次阅读 2022-02-24 01:13:35
    利用Tcpdump抓包结合Wireshark分析
  • Wireshark详细使用教程

    千次阅读 多人点赞 2022-05-18 21:01:18
    Wireshark是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。WireShark可以比喻做硬件工程的...
  • Ubuntu 安装 Wireshark

    2022-09-08 17:30:53
    Wireshark 是一款图形化的网络协议分析工具。它允许你交互式地浏览实时网络或以前保存的捕获文件中的数据包数据。Wireshark 的本地捕获文件格式是 pcapng 格式,或者是 pcap 格式该格式也是 tcpdump 和其他工具所...
  • 实验:Wireshark软件在应用ping命令时抓取IP结构 实验目的 了解和掌握IP头结构的含义。学习IP头结构。查看IP数据包的结构,了解IP协议在网络层的应用。 实验要求 客户机win7 服务器win7 服务器安装Wireshark...
  • 1.1.什么是Wireshark. 1 1.1.1.主要应用... 1 1.1.2.特性... 1 1.1.3.捕捉多种网络接口... 2 1.1.4.支持多种其它程序捕捉的文件... 2 1.1.5.支持多格式输出... 2 1.1.6.对多种协议解码提供支持... 2 1.1.7....
  • 1、介绍wireshark的基本使用,涉及过滤器,抓包方式等 2、介绍tcpdump的基本使用以及参数说明
  • Wireshark实验

    2021-11-10 10:47:51
    使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等。 ✎ 问题 你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。 网卡接收到一个帧,第一步就是计算...
  • Wireshark 实验 本部分按照数据链路层、网络层...了解 Wireshark 主要窗口区域 设置数据包的过滤 跟踪数据流 数据链路层 实作一 熟悉 Ethernet 帧结构 使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的
  • Tcp previous segment lost(tcp先前的分片丢失) Tcpacked lost segment(tcp应答丢失) Tcp window update(tcp窗口更新) Tcp dup ack(tcp重复应答) Tcp keep alive(tcp保持活动) Tcp retransmission(tcp重...
  • Wireshark软件使用教程

    万次阅读 多人点赞 2022-02-19 06:20:13
    Wireshark软件使用教程 Wireshark是非常流行的网络封包分析软件,可以截取各种网络数据包,并显示数据包详细信息。常用于开发测试过程各种问题定位。本文主要内容包括: 1、Wireshark软件下载和安装以及Wireshark主...
  • wireshark详解

    千次阅读 多人点赞 2020-04-18 23:16:32
    Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP(windows package capture,windows包捕获)作为接口,...
  • Wireshark基础知识

    2021-12-01 14:52:11
    Wireshark基础知识
  • Wireshark-Lab7:ICMP

    千次阅读 2022-03-08 00:34:15
    图 1 输入 Ping 命令后的命令提示符窗口。 Figure 2 provides a screenshot of the Wireshark output, after “icmp” has been entered into the filter display window. Note that the packet listing shows 20 ...
  • 通常,分组列表窗口中会显示许多类型的分组。在分组头部信息窗口中,展开选择某一头部信息时,分组内容中相应内容同步突出显示。D.分组头部明细 显示捕获分组列表窗口中被选中分组的头部详细信息。B.显示过滤规则 ...
  • wireshark常用命令

    2016-12-13 14:36:00
    Wireshark 基本语法,基本使用方法,及包过虑规则: 1.过滤IP,如来源IP或者目标IP等于某个IP 例子: ip.srceq192.168.1.107orip.dsteq192.168.1.107 ...Linux上运行的wireshark图形窗口截图示例,其他过虑...
  • wireshark使用及过滤器介绍

    千次阅读 2021-12-29 09:36:47
    wireshark入门及过滤器的使用
  • 文章目录查看已抓包弹出菜单... Wireshark 中显示了一个选择 TCP 数据包的示例,其中选择了一个 TCP 数据包进行查看。它还在选定的 TCP 标头中具有确认编号,在字节视图中显示为选定的字节。  如果在“捕获首选项”对

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,811
精华内容 2,724
关键字:

wireshark命令窗口