关于使用Tshark提取IP字段
作者:CQITer小编 时间:2018-09-17 21:08
在这篇文章中,我将讨论如何使用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将输出每个数据包的简短摘要,这其中包括各种字段。还是一个栗子:







