Wireshark的基本使用——过滤器

前言

网络上关于Wireshark的教程已有不少,博主就简单介绍一下Wireshark分析数据包时最重要的技巧之一的过滤器。。一次性嗅探到的数据包有很多,想要高效地提取出你想要的数据包或者对某个数据包中某个字段值的分析等,必不可少的就是过滤。过滤器分为捕捉过滤器(CaptureFilters)和显示过滤器(DisplayFilters)。

捕捉过滤器

用于决定将什么样的信息记录在捕捉结果中,需要在开始捕捉前设置。

语法

未分类

  • Protocol(协议)

可能的值: ether, fddi, ip, arp, rarp, decnet, tcp and udp等。如果没有特别指明是什么协议,则默认使用所有支持的协议

  • Direction(方向)

可能的值: src, dst, src and dst, src or dst。如果没有特别指明来源或目的地,则默认使用 “src or dst” 作为关键字
比如:”host 10.2.2.2″与”src or dst host 10.2.2.2″是一样的

  • Host(s)

可能的值: net, port, host, portrange。如果没有指定此值,则默认使用”host”关键字

比如:”src 10.1.1.1″与”src host 10.1.1.1″相同

  • Logical Operations(逻辑运算)

可能的值:not, and, or

否(“not”)具有最高的优先级。或(“or”)和与(“and”)具有相同的优先级,运算时从左至右进行。
例如,
“not tcp port 3128 and tcp port 23″与”(not tcp port 3128) and tcp port 23″相同。
“not tcp port 3128 and tcp port 23″与”not (tcp port 3128 and tcp port 23)”不同。

捕获过滤器例子

显示目的TCP端口为3128的封包

tcp dst port 3128

显示来源IP地址为10.1.1.1的封包

ip src host 10.1.1.1

显示目的或来源IP地址为10.1.2.3的封包

host 10.1.2.3

显示来源为UDP或TCP,并且端口号在2000至2500范围内的封包

src portrange 2000-2500

显示除了icmp以外的所有封包

not icmp

显示来源IP地址为10.7.2.12,但目的地不是10.200.0.0/16的封包

src host 10.7.2.12 and not dst net 10.200.0.0/16

显示源IP为10.4.1.12或源网络为10.6.0.0/16,目的TCP 端口号在200至10000之间,并且目的位于网络 10.0.0.0/8内所有封包

(src host 10.4.1.12 or scr net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8

捕获广播流量

broadcast

显示过滤器

在捕捉的结果中进行详细查找时使用,可以在得到捕捉结果后随意修改显示过滤器表达式。

未分类

语法

未分类

  • Protocol(协议)

位于OSI模型第2至7层的协议,如:IP、TCP、DNS等

  • String1,String2(可选项)

协议的子类

  • Comparison Operator(比较运算符)

可以使用6种比较运算符

未分类

  • Logical Operations(逻辑运算符)

未分类

逻辑异或是一种排除性的或。当其被用在过滤器的两个条件之间时,只有当且仅当其中的一个条件满足时,这样的结果才会被显示在屏幕上

例如:”tcp.dstport 80 xor tcp.dstport 1025″

只有当目的TCP端口为80或者来源于端口1025(但又不能同时满足这两点)时,这样的数据包才会被显示

显示过滤器例子

显示SNMP或DNS或ICMP封包

snmp || dns || icmp

显示来源或目的IP地址为10.1.1.1的封包

ip.addr == 10.1.1.1

显示来源不为10.1.2.3或目的不为10.4.5.6的包

ip.src != 10.1.2.3 or ip.dst != 10.4.5.6

显示来源或目的TCP端口号为25的封包

tcp.port == 25

显示目的TCP端口号为25的封包

tcp.dstport == 25

显示包含TCP标志的封包

tcp.flags

显示包含TCP SYN标志的封包

tcp.flags.syn == 1

排除arp流量

!arp

文本管理流量(telnet或ftp)

tcp.port == 23 || tcp.port == 21

两种过滤器的区别

可以看出这两种过滤器在使用和功能上有着区别:

  • 捕捉过滤器是数据经过的第一层过滤器,它用于控制捕捉数据的数量,以避免产生过大的日志文件。而显示过滤器是在对捕获结果进行筛选时使用,允许我们在日志文件中迅速准确地找到所需要的记录。

  • 捕捉过滤器必须在捕捉数据包之前设置,若是捕捉的数据包不是我们想要的,需要重新设置捕捉过滤器并重新捕捉数据包。显示过滤器的功能比捕捉过滤器更为强大,可以重复设置表达式对捕获的结果重复筛选而不需要重新捕获数据包。

跟踪TCP流

处理TCP协议时,想查看TCP流中的应用层数据,”Following TCP streams”功能将会很有用。
如查看ftp流的命令控制或者数据控制信息。或者仅仅只需要一个显示过滤来显示某个TCP流的包。这些都可以通过Wireshark的”Following TCP streams”功能来实现。
Follow Tcp Stream会装入一个过滤来选择你已经选择的TCP流的所有包。

未分类

未分类

小结

对于Wireshark的使用推荐:

  • 官网的用户手册:https://www.wireshark.org/docs/wsug_html_chunked/

  • github上的一站式学习 Wireshark 中文全教程:https://github.com/justjavac/free-programming-books-zh_CN/issues/233

参考:https://openmaniak.com/cn/wireshark_filters.php

Wireshark抓包软件简单用法(协议分析/数据分析)

目前抓包软件比较多,目前我们用的最多的是wireshart和linux下的tcpdump,其中tcpdump不直观,但可以抓包保存为文件以后使用wireshark进行分析。这里简单记录下wireshark的使用。

说明:
1,抓包需要对TCP/IP协议栈有一定的了解,如果不清楚这块,还是需要先梳理网络知识以及TCP/IP协议栈。
2,wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容。
如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP 就用wireshark.

一、软件界面介绍

首先了解下界面:

未分类

上图简单说明

(1),主菜单

用于控制整个软件使用,捕获动作、搜索、视图如何显示、过滤规则、拆分、统计等等。

(2),常用按钮

常用按钮从左到右的功能依次是(注意不同版本不一样,大同小异):

1、新捕获抓包。
2,停止捕获抓包。
3,重新开始当前捕获。
4,设置捕获接口,以及捕获文件格式、日志文件自动生成。
5,打开抓包文件。可以打开之前抓包保存后的文件。不仅可以打开wireshark软件保存的文件,也可以打开tcpdump使用-w参数保存的文件。
6、保存文件。把本次抓包或者分析的结果进行保存。
7,关闭打开的文件。文件被关闭后,就会切换到初始界面。
8、重载抓包文件。

(3)小技巧:

软件最后一个抓取的单个数据包没有被格式化的,我们一般不将其显示;时间显示一般会根据实际需要进行显示,到视图那里设置。

二、如何使用wireshark抓包分析

1、设置数据抓取选项。 通过捕获接口指定哪个网卡,开始抓包,这里会抓取所有的包。

期间过滤器那里可以指定要抓取指定协议的数据包,比如我们可以填写http、https、tcp、arp等

2、通过捕获接口指定哪个网卡,设置过滤规则,比如这里指定本地网卡,抓取80端口的包

未分类

抓取效果如下:

未分类

3、使用显示过滤器

很多时候抓的包都不是需要的,我们可以使用过滤器捕获自己需要的包。显示过滤器应用于捕获文件,用来告诉wireshark只显示那些符合过滤条件的数据包。他可以用来过滤不想看到的数据包,但是不会把数据删除。如果想恢复原状,只要把过滤条件删除即可。比如我们这里只抓baidu.com的包:

点击表达式,生成规则,进行过滤。条件选取完以后会声场需要的过滤器指令,可以通过显示过滤器那里直接使用。

未分类

表达式对话框分左中右三部分。左边为可以使用的所有协议域。右边为和协议域相关的条件值。中间为协议域与条件值之间的关系。过滤器表达式对于初学者很有用。如上图,我们创建的表达式的作用是,只显示http协议包中包含关键词“baidu.com”的所有数据包。

字段说明:
这个列表中展示了所有支持的协议。点击前面的三角标志后,可以列出本协议的可过滤字段。当选中“Field name”列表中的任何一项,只需要输入你想要的协议域,就会自动定位到相应的协议域选项。

关系说明:
is present 如果选择的协议域存在,则显示相关数据包。
contains 判断一个协议,字段或者分片包含一个值
matches 判断一个协议或者字符串匹配一个给定的Perl表达式。

值说明:
此处输入合适的值。如果选择的协议域和这个值满足Relation中指定的关系,则显示相关数据包。

预定义值说明:
有些协议域包含了预先定义的值,有点类似于c语言中的枚举类型。如果你选择的协议域包含这样的值,你可以在这个列表中选择。

如果你熟悉了这个规则之后你就会发现手动输入表达式更有效率。当时手动在filter文本框中输入表达时,如果输入的语法有问题,文本框的背景色会变成红色。这时候,你可以继续输入或者修改,知道文本框中的表达式正确后,文本框的背景色又会变成绿色

参考资料:

wireshark怎么抓包、wireshark抓包详细图文教程: https://blog.csdn.net/holandstone/article/details/47026213
网络抓包工具 wireshark 入门教程:https://www.cnblogs.com/52php/p/6262956.html

wireshark抓包大于1500字节和提示checksum offload的原因

问题

  • wireshark抓包大于1500字节(如下图所示)
  • wireshark抓包提示:[incorrect, should be xxxx (maybe caused by “TCP checksum offload”?)]

未分类

原因

wireshark是在数据包经过cpu,送到网卡处理之前抓取的。现在操作系统上的网卡大多有一个功能,帮助cpu减轻负担,网卡承担了将segment分段和对数据包进行checksum的工作。
wireshark抓取的数据包还需要网卡进行下一步的分段和checksum,所以我们看到数据包有2000多字节。

解决办法

disable操作系统网卡的large sender offload 和 check sum offload功能。

1、windows操作。在控制面板,网络连接,网卡属性,配置,高级设置,windows 10 截图如下:

未分类

2、Linux操作。

查看:ethtool –show-offload ethX

[root@syslog-ng ~]# ethtool --show-offload ens33
Features for ens33:
rx-checksumming: off
tx-checksumming: on
tx-checksum-ipv4: off [fixed]
tx-checksum-ip-generic: on
tx-checksum-ipv6: off [fixed]
tx-checksum-fcoe-crc: off [fixed]
tx-checksum-sctp: off [fixed]
scatter-gather: on
tx-scatter-gather: on
tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: on
tx-tcp-segmentation: on
tx-tcp-ecn-segmentation: off [fixed]
tx-tcp6-segmentation: off [fixed]
tx-tcp-mangleid-segmentation: off

配置取消网卡分段功能: ethtool -K ens33 tso off

[root@syslog-ng ~]# ethtool -K ens33 tso off
[root@syslog-ng ~]# ethtool --show-offload ens33
Features for ens33:
rx-checksumming: off
tx-checksumming: on
tx-checksum-ipv4: off [fixed]
tx-checksum-ip-generic: on
tx-checksum-ipv6: off [fixed]
tx-checksum-fcoe-crc: off [fixed]
tx-checksum-sctp: off [fixed]
scatter-gather: on
tx-scatter-gather: on
tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: off
tx-tcp-segmentation: off
tx-tcp-ecn-segmentation: off [fixed]
tx-tcp6-segmentation: off [fixed]
tx-tcp-mangleid-segmentation: off

参考wireshark wiki : https://wiki.wireshark.org/CaptureSetup/Offloading

又一款抓包分析软件 wireshark

Wireshark 是一款网络分析工具,也是学习网络协议的工具,原先介绍过的 Charles ,mitmproxy 等HTTP抓包工具,都局限于 HTTP/HTTPS 请求,对于更底层的 TCP/IP,UDP 等协议就无能为力了。Wireshark 可以抓取网卡上的网络包,并实时展示,Wireshark 包括了过滤器,协议显示等等工具。

Wireshark 和其他工具的区别,比如 Charles,mitmproxy,Fiddler 等。Charles, mitmproxy,Fiddler是专门用来捕获HTTP,HTTPS请求的。Wireshark 能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以Wireshark看不懂HTTPS中的内容。总结,如果是处理HTTP,HTTPS 还是用Charles, mitmproxy, Fiddler 等, 其他协议比如TCP,UDP,IP,ICMP 等就用Wireshark

安装

各大系统的安装文件:https://www.wireshark.org/download.html

Linux 下可以使用 PPA

sudo add-apt-repository ppa:wireshark-dev/stable && sudo apt-get update
sudo apt-get install wireshark

简单使用

打开 Wireshark 就可以看到很多网络硬件可以选择,任选其中一块网卡就能够抓取经过这个网卡的所有流量包。常见的设备名字,或者网卡名字有这样几个:

  • eth0 物理网卡,一般连接网线会获取到IP地址
  • eth1 第二块网卡
  • wlan0 是无线网卡,一般连接无线网会获取到IP地址
  • lo 设备虚拟端口,自身回环,一般指向 127.0.0.1

还有一些设备名字可以参考之前的文章。比如我笔记本使用无线网卡连接了WIFI,那么进入 Wireshark 之后选择 wlan0 设备,自动进入抓包,可以看到经过无线网卡的所有请求包。

未分类

Wireshark 的界面大致可以分成三个部分,最上面的部分为原始数据包预览,可以在该面板中看到抓取的包大致内容,包括序号,耗时,原始地址,目标地址,协议,长度,基本信息等等,分别使用不同的颜色标记了,这个颜色可以在设置 View -> Coloring Rules 中设置,根据不同的协议,或者自定义一些过滤规则,将关心的内容以不同的颜色标记出。

面板中间是封包详细信息 (Packet Details Pane),这个面板是最重要的,用来查看协议中的每一个字段。各行信息分别为

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

面板最下面一栏是数据包真正传输的内容,以十六进制和 ASCII 显示出来。

过滤器

https://wiki.wireshark.org/CaptureFilters

两种过滤器的目的是不同的。

捕捉过滤器(CaptureFilters):用于决定将什么样的信息记录在捕捉结果中。需要在开始捕捉前设置。捕捉过滤器是数据经过的第一层过滤器,它用于控制捕捉数据的数量,以避免产生过大的日志文件。

显示过滤器(DisplayFilters):在捕捉结果中进行详细查找。他们可以在得到捕捉结果后随意修改。显示过滤器是一种更为强大(复杂)的过滤器。它允许您在日志文件中迅速准确地找到所需要的记录。

两种过滤器使用的语法是完全不同的。

http://openmaniak.com/cn/wireshark_filters.php

三次握手

Wireshark实际分析下三次握手的过程

在wireshark中输入http过滤, 然后选中GET /tankxiao HTTP/1.1的那条记录,右键然后点击”Follow TCP Stream”,

这样做的目的是为了得到与浏览器打开网站相关的数据包

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

第一次握手数据包

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

第二次握手的数据包

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

第三次握手的数据包

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

通过Wireshark抓取直连设备的IP地址

1、ARP协议简介

说到网络中的IP地址就不得不说APR协议。何为ARP?全名叫做Address Resolution Protocol(地址解析协议)。网络中的设备发送消息时将包含目标IP地址信息存入本设备APR缓存中并保留一段时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。

ARP缓存是个用来储存IP地址和MAC地址的缓冲区,其本质就是一个IP地址–>MAC地址的对应表,表中每一个条目分别记录了网络上其他主机的IP地址和对应的MAC地址。每一个以太网或令牌环网络适配器都有自己单独的表。当地址解析协议被询问一个已知IP地址节点的MAC地址时,先在ARP缓存中查看,若存在,就直接返回与之对应的MAC地址,若不存在,才发送ARP请求向局域网查询。

为使广播量最小,ARP维护IP地址到MAC地址映射的缓存以便将来使用。ARP缓存可以包含动态和静态项目。动态项目随时间推移自动添加和删除。每个动态ARP缓存项的潜在生命周期是10分钟。新加到缓存中的项目带有时间戳,如果某个项目添加后2分钟内没有再使用,则此项目过期并从ARP缓存中删除;如果某个项目已在使用,则又收到2分钟的生命周期;如果某个项目始终在使用,则会另外收到2分钟的生命周期,一直到10分钟的最长生命周期。静态项目一直保留在缓存中,直到重新启动计算机为止。(以上出自https://baike.baidu.com/item/ARP/609343?fr=aladdin)

2、抓取直连设备IP

未分类

环境:将被获取的设备服务器B和计算机A相连(可直接用网线直连)
在A设备上将网口的所有IP信息清除(即改为DHCP),此步骤不做也可以,建议不要省略

未分类

网线连接后,打开安装好的wirshark软件,在过滤规则中输入 arp(只显示arp的数据包)

未分类

如果是直连的话,服务器B在关机状态下此界面是没有任何数据包显示的,接下来,只需要打开服务器B设备,就会获取直连网络中的ARP数据包。在数据包中就有服务器B的IP等信息了

未分类

who has XX.XX.XX.XX ? Tell BB.BB.BB.BB

此处BB.BB.BB.BB就是需要获取的地址。也包括此设备的MAC地址。

TCP三次握手wireshark抓包分析

本文内容有以下三个部分:

  • wireshark过滤规则
  • osi模型简述
  • tcp三次握手

一、wireshark过滤规则

wireshark只是一个抓包工具,用其他抓包工具同样能够分析tcp三次握手协议。以下这张图片完整地展现了wireshark的面板。

未分类

使用好wireshark一个关键是如何从抓到的众多的包中找到我们想要的那一个。这里就要说filter过滤规则了。如上图,在过滤器方框,我们加上了ip.src==192.168.1.102 or ip.dst==192.168.1.102的过滤规则,意思是在封包列表中,只显示源ip地址为192.168.1.102或者目的ip地址为192.168.1.102的包。
下面列举一些常用的过滤规则:

  1. 过滤IP,如来源IP或者目标IP等于某个IP
    如前面说的例子: ip.src==192.168.1.102 or ip.dst==192.168.1.102
    比如TCP,只显示TCP协议。

  2. 过滤端口
    tcp.dstport == 80 // 只显tcp协议的目标端口80
    tcp.srcport == 80 // 只显tcp协议的来源端口80
    也可以写成tcp.port eq 80 or udp.port eq 80 这样的模式

  3. 过滤协议
    单独写上tcp、udp、xml、http就可以过滤出具体协议的报文。你也可以用tcp or xml这样格式来过滤。
    我们还可以更加具体过滤协议的内容,如tcp.flags.syn == 0x02 表示显示包含TCP SYN标志的封包。

  4. 过滤mac地址
    eth.src eq A0:00:00:04:C5:84 // 过滤来源mac地址
    eth.dst==A0:00:00:04:C5:84 // 过滤目的mac地址

  5. http模式过滤
    http.request.method == “GET”
    http.request.method == “POST”
    http.request.uri == “/img/logo-edu.gif”
    http contains “GET”
    http contains “HTTP/1.”
    // GET包
    http.request.method == “GET” && http contains “Host: ”
    http.request.method == “GET” && http contains “User-Agent: ”
    // POST包
    http.request.method == “POST” && http contains “Host: ”
    http.request.method == “POST” && http contains “User-Agent: ”
    // 响应包
    http contains “HTTP/1.1 200 OK” && http contains “Content-Type: ”
    http contains “HTTP/1.0 200 OK” && http contains “Content-Type: “

  6. 过滤内容
    contains:包含某字符串
    ip.src==192.168.1.107 and udp contains 02:12:21:00:22
    ip.src==192.168.1.107 and tcp contains “GET”
    前面也有例子,http contains “HTTP/1.0 200 OK” && http contains “Content-Type: “

更加高级的用法就不讨论了,读者有兴趣可以查阅wireshark官网用户手册。

二、osi模型简述

OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型。如下图左边部分。在每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如源ip地址和目的ip地址等。

未分类

osi模型中,在下一层的角度看,当收到上一层的包时,全部会被认为是本层的数据,然后在本层中加上自己本层的首部,继续往下传递。一个数据包格式如下:

未分类

举一个例子,比如客户端应用程序A向远端服务器应用程序B发送“早上好”的数据,那么大致流程是这样的:

  1. 应用程序A把数据发送给下一层的TCP模块。

  2. TCP模块属于传输层。TCP在应用层数据的前端加上一个TCP首部。TCP首部中包含源端口号和目标端口号等信息。然后将包发送给IP模块。

  3. IP模块属于网络层。IP将TCP传过来的TCP首部和TCP数据合起来当做自己的数据,并且在TCP首部的前面加上自己的IP首部。IP首部包含了源ip地址和目的ip地址。然后,IP包将被发送给数据链路层,也就是以太网驱动程序。

  4. 从IP传过来的包,对于以太网驱动程序来说不过就是数据。给这些数据加上以太网首部,里面包含了源MAC地址和目的MAC地址。然后再通过物理层把数据发送给目的MAC地址。

  5. 服务器物理层接收到来自客户端的数据包时,首先从以太网的包首部找到MAC地址,判断是否为发给自己的包,如果不是就丢弃,如果是就向上转移给IP模块解析。

  6. IP模块收到IP包首部和后面的数据以后,判断包首部的目的ip地址与自己的ip地址是否匹配,如果匹配,就接收数据并传给TCP模块处理。

  7. TCP模块会检查端口号确定接收数据的应用程序是哪一个。

  8. 应用程序接收到数据包之后也会根据自己的规则判断做出一系列的处理。

通过上面例子大致的过程,可以体会到从上而下发包再到从下而上收包的过程。

三、tcp三次握手

未分类

上图为tcp三次握手,很多书籍都能看到。TCP提供面向有连接的通信传输,在数据通信开始之前先做好通信两端之间的准备工作。也就是说必须握手成功之后,才能进行通信。 接下来,用wireshark来抓取tcp三次握手报文。打开浏览器输入 http://blog.csdn.net/u014530704/article/。运用我们再前面介绍的过滤规则,在过滤框中输入http contains u014530704,找到如下包:

未分类

可以发现我们向服务器请求的包,其中目的ip地址是47.95.165.112。这个地址是blog.csdn.net的ip地址。
然后我们找 ip.src==47.95.165.112 or ip.dst==47.95.165.112 的包,找到了如下:

未分类

红色方框为本机192.168.1.101和服务器47.95.165.112之间的三次握手协议。三次握手协议的过程为:

客户端通过TCP首部发送一个SYN包作为建立连接的请求等待确认应答。
服务器发送ACK包确认应答,发送SYN包请求连接。
客户端针对SYN包发送ACK包确认应答。
最后,讲述一下看懂报文的方法。想要读懂tcp报文,头部至关重要,对着下图去看wireshark tcp报文,并且找到tcp首部各个字段代表的意思,你就能读懂tcp报文了。其他像以太网报文、ip报文、http报文等同样如此。

未分类

tcpdump抓包和scp导出以及wireshark查看

【命令和工具】

tcpdump

scp

wireshark

(1)tcpdump

sudo tcpdump -i eth0 -w /home/tcpdump/1.pcap host 10.214.117.103

-i    查看网卡eth0,抓该网卡报文。

-w    保存到/home/tcpdump目录,保存为1.pcap文件。

host    抓取源主机或目的主机为10.214.117.103的报文。

port    抓取8080端口的报文。

Ctrl+C键停止抓取报文。

(2)scp

scp  pop@172.17.118.70:/home/tcpdump/1.pcap /home/aiox/1.pcap

从pop这个用户进入主机172.17.118.70的/home/tcpdump目录,下载1.pcap文件到本机的/home/aiox/1.pcap位置。

改命令会提示输入172.17.118.70主机的pop用户名密码。

(3)wireshark查看

用wireshark打开1.pacp报文,在随便哪个报文的地方右键-【追踪流】-【tcp流】查看http报文。

未分类

未分类

ubuntu下安装wireshark(以及配置非root)

Wireshark是世界上最流行的网络分析工具。这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。与很多其他网络工具一样,Wireshark也使用pcap network library来进行封包捕捉。

对于学习计算机网络协议有不小的帮助。

工具/原料

  • ubuntu 系统
  • 网络畅通

方法/步骤

1、首先,安装只要一个命令行(由于之前装过了,所以没有在安装什么了):sudo apt-get install wireshark

未分类

2、上一步,已经将wireshark安装完毕,接下来我没就可以通过:wireshark 用来启动它的图形界面。

未分类

3、然而,dumpcap需要root权限才能使用的,以普通用户打开Wireshark,Wireshark当然没有权限使用dumpcap进行截取封包。虽然可以用:sudo wireshark来完成。但是,以sudo的方式用root打开Wireshark显然是不安全的,也不是很方便,因为得到的封包数据也属于root用户。

4、于是,我们提供下面的方法来完成普通用户下的操作。

(1).添加wireshark用户组
#sudo groupadd wireshark

未分类

(2).将dumpcap更改为wireshark用户组
#sudo chgrp wireshark /usr/bin/dumpcap

未分类

(3).让wireshark用户组有root权限使用dumpcap #sudo chmod 4755 /usr/bin/dumpcap

未分类

(4).将需要使用的普通用户名加入wireshark用户组,我的用户是“cai”(需要根据具体用户名修改!在#前面可以找到哟),则需要使用命令:
#sudo gpasswd -a dengyi wireshark

未分类

接下来你就可以以普通用户登陆打开Wireshark,也会有权限进行抓包了。