tshark是wireshark网络分析工具下的一个分支,主要用于命令行环境进行抓包、分析,尤其对协议深层解析时,tcpdump难以胜任的场景中。本系列文章将整理介绍tshark相关内容。

基本用法

常用命令

查看tshark版本

tshark -v

列出当前存在的网络接口

tshark -D

网卡描述依据OS有不同的编号方式,在不了解网络设备及编号情况下,一般先用“tshark -D”查看网络接口的编号以供-i参数使用。

注: linux可以结合ifconfig命令查看

tshark对指定网卡监听,抓包

sudo tshark -i

抓取网卡eth0的流量并写入capture123.pcap

tshark -i eth0 -w capture123.pcap

读取之前的文件capture123.pcap

tshark -i eth0 -r capture123.pcap

抓取网卡eth0的流量10分钟

tshark -i eth0 -a duration:600

注: 默认时间单位为秒

抓取网卡eth0的10000个数据包

tshark -c 10000 -i eth0

抓取网卡eth0涉及192.168.1.1的流量报文

tshark -i eth0 -f “host 192.168.1.1”

注: 与wireshark、tcpdump一致,均使用BPF过滤表达式

抓取网卡eth0指定协议的流量报文

tshark -i eth0 -f “”

协议名可以为: tcp, udp, dns, icmp, http等

案例

实时打印当前mysql查询语句

tshark -s 512 -i eth1 -n -f 'tcp dst port 3306' -R 'mysql.query' -T fields -e mysql.query

说明:

-s 512 :只抓取前512个字节数据

-i eth0 :监听eth0网卡

-n :禁止域名解析

-f ‘tcp dst port 3306’ :只捕捉协议为tcp,目的端口为3306的数据包

-R ‘mysql.query’ :过滤出mysql.query查询语句的报文

-T fields -e mysql.query :打印mysql查询语句

实时打印当前http请求的url(包括域名)

tshark -s 512 -i eth1 -n -f 'tcp dst port 8000' -R 'http.host and http.request.uri' -T fields -e http.host -e http.request.uri -l | tr -d 't'

说明:

-s 512 :只抓取前512个字节数据

-i eth1 :监听eth1网卡

-n :禁止网络对象名称解析

-f ‘tcp dst port 8000’ :只捕捉协议为tcp,目的端口为8000的数据包

-R ‘http.host and http.request.uri’ :过滤出http.host和http.request.uri

-T fields -e http.host -e http.request.uri :打印http.host和http.request.uri

-l :输出到标准输出

读取之前抓包文件进行报文数据分析

需要从抓包的文件evidence04.pcap中提取出报文相关数据信息,如时间、源IP、目的IP、协议名、源Port、標Port、包大小等信息,最后输出到csv文件。

tshark -r evidence.pcap -T fields -e frame.time_relative -e ip.src -e ip.dst -e ip.proto -e tcp.srcport -e tcp.dstport -e frame.len -E header=n -E separator=, -E quote=n -E occurrence=f > output.csv

说明:

-r evidence.pcap 需要分析的报文记录文件(pcap格式)

-T fields 输出格式,选fields按字段,也可以选json等其他格式,需结合-e 及 -E使用

-e frame.time_relative 取出封包的相对时间

-e ip.src 提取源IP

-e ip.dst 提取目的IP

-e ip.proto 提取协议名

-e tcp.srcport 提取源Port

-e tcp.dstport 提取目的Port

-e frame.len 提取数据帧大小

-E header=n 是否输出字段名称(cvs的第1行)

-E separator=, 指定分割符,/t是tab,/s是一格空格

-E quote=n 指定是否对字段用引号,d是双引号,s是单引号,n是不用

-E occurrence=f 多值时是否保留,f是第一个值,l是最后一个值,a是所有值都列出,默认全部

output.csv 输出文件路径及名称

DNS报文过滤

使用tshark过滤dns cap包中源ip、目的ip、request请求

tshark -r test.cap -T fields -e frame.time -e ip.src -e ip.dst -e dns.qry.name -R 'udp.dstport==53 || dns'

说明:

-r test.pcap 需要分析的报文记录文件(pcap格式)

-T fields 输出格式,选fields按字段,也可以选json等其他格式,需结合-e 及 -E使用

-e frame.time 提取数据帧时间

-e ip.src 提取源IP

-e ip.dst 提取目的IP

-e dns.qry.name 提取dns查询的域名信息

-R 'udp.dstport==53 || dns' 显示过滤,仅对udp目标端口为53或者dns协议的报文进行处理

默认直接显示在终端上,不记录文件。

常见问题

tshark: Only read filters, not capture filters, can be specified when reading a capture file.

tshark -r 20190409.pcap -f 'udp' -w udp-20190409.pcap

读取文件时只能使用显示过滤,也就是只能使用-Y或-2 -R过滤

tshark: -R without -2 is deprecated. For single-pass filtering use -Y.

tshark -r 20190409.pcap -R 'udp' -w udp-20190409.pcap

显示过滤-R参数需要和-2一起使用,或使用-Y

参考:

系列文章:

tshark存储数据到mysql_网络分析利器wireshark命令版(2):tshark使用示例相关推荐

  1. Wireshark命令行工具tshark使用小记

    1.目的 写这篇博客的目的主要是为了方便查阅,使用wireshark可以分析数据包,可以通过编辑过滤表达式来达到对数据的分析:但我的需求是,怎么样把Data部分导出来,因为后续的工作主要针对数据包的D ...

  2. 命令行工具tshark使用小记

    1.目的 写这篇博客的目的主要是为了方便查阅,使用wireshark可以分析数据包,可以通过编辑过滤表达式来达到对数据的分析:但我的需求是,怎么样把Data部分导出来,因为后续的工作主要针对数据包的D ...

  3. 怎么把数据存到MySQL_怎样将Arduino数据直接存储到MySQL

    刻录以下内容 voidsetup() { Serial.begin(9600); } voidloop() { inti=0,j=0; i=analogRead(A0); j=analogRead(A ...

  4. android studio数据库存储数据,如何使用API​​ 23在android studio中的数据库中存储数据?...

    大多数时候我不会发布任何内容,因为我可以在其他帖子中找到我需要的所有内容,但是现在我已经有几天了,您如何在数据库中存储任何内容?这是我的Java代码如何使用API​​ 23在android studi ...

  5. Wireshark数据抓包教程之Wireshark捕获数据

    Wireshark数据抓包教程之Wireshark捕获数据 Wireshark抓包方法 在使用Wireshark捕获以太网数据,可以捕获分析到自己的数据包,也可以去捕获同一局域网内,在知道对方IP地址 ...

  6. Wireshark 命令行捕获数据

    在 Wireshark 程序目录中,包含两个命令行捕获工具.这两个工具分别是 Dumpcap 和 Tshark.当不能以图形界面方式捕获数据时,可以在命令行使用 dumpcap 或 tshark 程序 ...

  7. 网站分析实战--如何以数据驱动决策,提升网站价值(大数据时代的分析利器)...

    <网站分析实战--如何以数据驱动决策,提升网站价值>(大数据时代的分析利器) 基本信息 作者: 王彦平 吴盛峰 出版社:电子工业出版社 ISBN:9787121193125 上架时间:20 ...

  8. 2021年大数据HBase(十三):HBase读取和存储数据的流程

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 HBase读取和存储数据的流程 一.HBase读取数据的流程 ...

  9. .pgr照片文件解析,C++与Java存储数据差别大小端模式

    一..pgr是什么? .pgr文件是二进制的图像文件,可以用普通的文本文件打开,或者查看十六进制的文本信息: 读取需要了解~~~非常重要 !!! 基本数据类型的大小端存储模式 表头Header 详细信 ...

最新文章

  1. 关于SysinternalsSuite全部工具【详解】
  2. 调用cmd不显示黑框的方法
  3. 【Protocol Buffer】Protocol Buffer入门教程(七):导入定义
  4. 微信小程序把玩(三)tabBar底部导航
  5. 每日一笑 | 一些关于学编程的领悟
  6. [js] js操作节点的方法有哪些?
  7. 从电子电路到嵌入式系统(开篇)
  8. 国土部明确地面光伏、分布式光伏用地政策
  9. Web常用对象(2)
  10. 码农面试智力题及答案
  11. android开源人脸识别插件,face-android-demo
  12. AForge.Video.FFMPEG桌面录屏
  13. Linux 4G模块pppd拨号上网脚本解析
  14. [转]短信验证码如何防止不恶意点击被刷!
  15. HTML5基础与Meta http-equiv属性详解
  16. 加油站会员管理系统用什么好
  17. Baklib分享|知识管理是企业发展的风向标
  18. sql 求和并且将求和条件作为查询条件
  19. 使用基于ggplot2的包ggalluvial绘制桑基图(冲积图)
  20. 移动、联通、电信物联卡该如何使用

热门文章

  1. 算法提高 高精度乘法(java)
  2. JAVA比较文件是否相同
  3. 百度车牌识别API-Python版
  4. scrapy初始化selenium,防止网站反爬虫策略监测自动化控件
  5. python pandas判断是否为空
  6. python装饰器记录每一个函数的执行时间
  7. 采集浏览器访问某网站时产生的流量,并保存为pcap文件
  8. 反转dataframe
  9. 什么都不懂的学java难不难_零基础转行学java到底难不难
  10. dedecms php5.4 无法退出后台,DedeCMS 织梦在 Windows 的 PHP5.4 环境下登录后台空白的解决办法...