关于使用Tshark提取IP字段

作者:CQITer小编 时间:2018-09-17 21:08

字号

在这篇文章中,我将讨论如何使用tshark显示特定的字段。并且我还将深入探讨如何提取和操纵这些字段。我们就从下面的图片开始吧!

1.png

1.png

用Tshark读取文件

默认情况下,tshark将侦听本地接口,并从线路上抓取数据包。如果您有要处理的pcap文件,则可以使用“-r”命令。也可以通过“head”(仅显示指定数量的输出行)或“less”(一次显示一整页输出)来输出到屏幕上,例如:tshark -r interesting-packets.pcap | head默认情况下,“head”只会显示前10行,但您可以根据需要对其进行修改,例如上图我使用“head -20”查看前20行。

使用Tshark过滤流量

当我们在查看一个pcap文件时,通常我们会寻找某些特定特征。例如,我们需要查找与某些IP地址或服务相关的所有流量。我们可以使用捕获过滤器。但如果我们使用Wireshark,Wireshark捕获过滤器与tshark的工作方式略有不同。Tshark实际上使用Wireshark Display Filter语法进行捕获和显示。这非常酷,因为它提供了更多功能。tshark捕获过滤器的语法是:<field><operator><value>举个栗子:

ip.dst==192.168.1.10 ip.proto==17 tcp.flags.reset!=0

请注意,在第二个栗子中,我使用协议号(17)而不是协议名称(UDP)。这对于大多数过滤器来说都很常见。使用上面引用的Wireshark Display Filter语法页面来确定要使用的正确格式。在前两个示例中,我使用运算符“==”来匹配。请注意,在最后一个示例中,我使用“!=”表示不等于。您还可以使用大于(>>),小于(<<),等于或大于(> =)或小于或等于(<=)。这个学过编程应该都明白。但有一点,在最后一个示例中,我匹配单个位(TCP头的字节13中的复位位)。这意味着我需要确定我是否对正在打开的位(由“1”表示)或关闭(由“0”表示)。因此,最后一个示例的另一种方式是:tcp.flags.reset == 1如果你对与特定IP地址相关的流量感兴趣,我可以在上面的“-r”命令上加上一些东西:tshark -r interesting-packets.pcap ip.dst==192.168.1.10 | head

将Tshark重定向到新文件

有时,我们需要将现有的pcap文件重定向到新文件。例如,如果我想获取与特定IP地址关联的所有流量并将其放在不同的文件中以进行进一步分析,该怎么办?这时我要查看这个新文件,并进一步优化我的过滤。我们可以使用“-w”来创建一个新的文件。同样举个栗子:tshark -r interesting-packets.pcap -w interesting-host.pcap ip.dst==192.168.1.10 | head

选择Tshark输出哪些字段

默认情况下,tshark将输出每个数据包的简短摘要,这其中包括各种字段。还是一个栗子:

2.png

虽然这在执行快速解码时很方便,但如果我们希望查看的信息不在默认输出中呢?如果我们只想看到一个或两个字段而不是其他所有字段怎么办?幸运的是,tshark可以让我们指定我们希望看到的确切字段。使用命令“-T fields”来标识我们希望指定要查看的确切字段,而不是显示默认信息。然后可以使用“-e”来标识要打印的特定字段。我用“-e”的值是我之前提到的Wireshark显示过滤器。下面一个只打印源和目标IP地址的栗子:tshark -r interesting-host.pcap -T fields -e ip.src -e ip.dst ip.dst==192.168.1.10 | head这将产生类似于以下的输出:

3.png

如果我想要把它组织起来,我可以添加“-E header = y”开关,如最最最上面的那张图所示。这将打印出第一行列标题。虽然如果您要将数据导入电子表格,这会超级好用,但如果您要用命令行操作数据,我建议不要这样做。这是因为列标题可能与数据混合在一起。

2.png

虽然这在执行快速解码时很方便,但如果我们希望查看的信息不在默认输出中呢?如果我们只想看到一个或两个字段而不是其他所有字段怎么办?幸运的是,tshark可以让我们指定我们希望看到的确切字段。使用命令“-T fields”来标识我们希望指定要查看的确切字段,而不是显示默认信息。然后可以使用“-e”来标识要打印的特定字段。我用“-e”的值是我之前提到的Wireshark显示过滤器。下面一个只打印源和目标IP地址的栗子:tshark -r interesting-host.pcap -T fields -e ip.src -e ip.dst ip.dst==192.168.1.10 | head这将产生类似于以下的输出:

3.png

如果我想要把它组织起来,我可以添加“-E header = y”开关,如最最最上面的那张图所示。这将打印出第一行列标题。虽然如果您要将数据导入电子表格,这会超级好用,但如果您要用命令行操作数据,我建议不要这样做。这是因为列标题可能与数据混合在一起。

Tshark进行额外处理

责任编辑:CQITer新闻报料:400-888-8888   本站原创,未经授权不得转载
继续阅读
热新闻
推荐
关于我们联系我们免责声明隐私政策 友情链接