首页 > 编程知识 正文

tcpdump抓包结果分析,tcpdump抓包指定IP

时间:2023-05-05 21:04:53 阅读:18875 作者:3064

tshark是wireshark命令行工具,它使用shell命令捕获和分析消息。 tcpdump是一个Linux系统上的捕获工具。 wireshark和tcpdump都使用libpcap作为捕获其基础分组的库,tshark也可以捕获消息。

可能需要在linux系统或ARM开发板上进行捕获,使用tcpdump非常有用。 在这些情况下,可以使用tcpdump捕获,分析在Windows上使用wireshark生成的软件包文件,在自动分析和自动化测试中使用tshark进行软件包分析。 本文介绍使用tcpdump捕获消息后,使用tshark进行消息分析。

安装wireshark下载安装

wireshark官网: https://www.wireshark.org/download.html

# Linux yum-yinstallwiresharkyum-yinstalltcpdump帮助信息

$ tcpdump -h显示可用端口:

$ tcpdump-D1.ens 332.ens 373.veth 2424 bf44.any (仿真设备连接接口)5.lo[loopback]tcpdump

常用参数- I接口:指定捕获接口,tcpdump -i eth1-c count :捕获数据包数量,tcpdump -c 5 -i eth0仅捕获五个数据包- -

t pdump-iet h1-w/tmp/packet.pcap/dev/null 21其中

/dev/null :将标准输出(控制台输出)重定向至/dev/null。 /dev/null表示linux上的空设备文件。 表示不输出内容21。 重定向绑定并将错误输出(2)和标准输出(1)输出到同一位置。 /dev/null 21的作用是销毁标准输出和错误输出,不将任何内容输出到控制台。 也可以只捕获特定协议的消息。 例如,过滤tcp消息。

tcpdump -i eth1 tcp捕获指定端口上的消息

tcpdump-I et h1端口22捕获指定源IP的消息

tcpdump-I捕获src 192.168.0.1指定目标IP的消息

tcpdump-I停止dst 192.168.0.1捕获如果对tcpdump捕获的数量没有限制,tcpdump将继续捕获。 使用Ctrl C,可以停止捕获或杀死tcpdump进程。

killall -9 tcpdump杀死tcpdump进程后,停止抓住包。

读取消息$ tcpdump-r packet.pcapreadingfromfilepacket.pcap, 链路-类型10 MB (以太网) 20336047336007.732570 IP 192.168.2.103.5307469.173.159.48.https 3360 flags [ f.f.f length 020336047336008.789990 IP 192.168.2.103.50544 TM-in-f 188.1 e 100.net.https : flags [.],seq776 ack 4093529409 length 120336047336009.037350 iptm合上f 188.1 e 100.net.https 192.168.2.103.50543360 Fla options [ nop,nop,sack 1 length 020336047336009.195077 IP 192.168.2.103.50920118.178.135.232 .即seq 1760992480:1760992516,ack 2403978898 length 3620336047336009.222742 IP 118.178.135.232.https 192.168.2.103.50920: flags [ p.],seq 1:62,ACC

tshark工具介绍tshark参考文档: https://www.wireshark.org/docs/man-pages/tshark.html

在windows命令行窗口中

口使用tshark需要将Wireshark安装路径 C:Program FilesWireshark 添加到环境变量。

查看帮助信息:

$ tshark -h

列出可用网卡接口:

$ tshark -D1. DeviceNPF_{4B48290B-6C8B-4A93-A942-A7E565B02F09} (Npcap Loopback Adapter)2. DeviceNPF_{D8F1F103-9733-422C-A521-77C678EEAFFC} (WLAN)3. DeviceNPF_{AB52B03B-45ED-43C9-B88F-C7499A78AED0} (kc)4. DeviceNPF_{64EA0097-AE33-49AD-9F42-959017C397FA} (WAN)5. DeviceNPF_{257F23D0-E615-4656-AB32-5338DB62843C} (以太网 2)6. DeviceNPF_{B5376652-68BB-45DA-A822-086E401773BB} (本地连接* 10)

功能类似于Linux中的netstat -i 、ifconfig -a和ip link命令查看网卡接口信息。Linux系统和windows系统tshark使用方法一样

tshark命令抓包

常用参数:

-i | --interface <capture interface> :指定抓包接口-f <capture filter>:抓包过滤,BPF(Berkeley Packet Filter)过滤规则,tcpdump和scapy(filter参数)都使用这个过滤规则,参考Python Scapy 报文构造和解析。-w <outfile>:将数据包写入文件-O <protocols>:打印数据包详细信息-V:打印数据包详细视图-P:写入文件过程中,打印数据包简略信息-c <capture packet count>:设置抓取最大的包个数-a|--autostop <autostop condition>:duration:5—5秒后停止抓包;files:2—写了2个文件后停止;filesize:100—包大小达到100KB后停止,

tshark抓包示例:

$ tshark -i "WLAN" -f "tcp port 80" -w "test.pcap"$ tshark -i "WLAN" -f "tcp port 80" -w "test.pcap" -P -a duration:10Capturing on 'WLAN'15 0.000000 08:ed:ed:3e:9e:f3 -> Broadcast ARP 60 Who has 192.168.1.1? Tell 192.168.1.244 0.001051 fe80::4983:bddb:14e0:f9c4 -> ff02::1:2 DHCPv6 157 Solicit XID: 0xd2726a CID: 00010001272da3902c534a01104e 0.065122 TendaTec_21:73:e1 -> Broadcast ARP 60 Who has 192.168.1.1? Tell 192.168.1.126省略......$ capinfos test.pcapFile name: test.pcapFile type: Wireshark - pcapngFile encapsulation: EthernetPacket size limit: file hdr: (not set)Number of packets: 155File size: 29 kBData size: 23 kBCapture duration: 9 secondsStart time: Sun Apr 25 16:44:23 2021End time: Sun Apr 25 16:44:33 2021Data byte rate: 2595 bytes/sData bit rate: 20 kbpsAverage packet size: 153.96 bytesAverage packet rate: 16 packets/secSHA1: 2b4a555a362301156ff26a7f295b4d609dd97a33RIPEMD160: e34a63f4bcfe805d220f73dea78a8f4b63074a80MD5: cc560fd267886a596ed72397a73625e3Strict time order: True tshark解析数据包

常用参数:

-r:指定需要解析的数据包-T:指定数据包解析输出格式,支持格式见解码所有数据,这里介绍 -T fields,一般与-e 选项连用。-e:指定过滤的字段-E:可用于指定分隔符:separator=,:默认分隔符为缩进(t)-Y:过滤指定报文 tshark [ -r <infile> ] -T fields [ -e <field> ] -E <field print option> -Y <displaY filter>tshark -r packet.pcap -T fields -e 解析的字段 -E separator=,

需要解析的字段可以通过Wireshark查看:
选择要过滤的内容 -> 右键 -> Apply as Filter -> Selected

例1:过滤具有源IP和目的IP字段的所有报文

tshark -r packet.pcap -T fields -e ip.src -e ip.dst

例2:过滤源地址为fe80::ca3a:35ff:fe09:efa1的报文,并读取UDP源端口号和IPv6目的地址。

$ tshark -r packet.pcap -T fields -E separator=, -Y ipv6.src==fe80::ca3a:35ff:fe09:efa1 -e udp.srcport -e ipv6.dst,ff02::2,ff02::2,ff02::16546,ff02::1:2546,ff02::1:2546,ff02::1:2546,ff02::1:2$

注意:-Y参数中,多个条件用||,&&,and或者or连接,如果使用多个-Y参数,只有最后一个生效,下面过滤源地址为fe80::ca3a:35ff:fe09:efa1的DHCPv6 Solicit报文:

$ tshark -r packet.pcap -T fields -E separator=, -Y dhcpv6.msgtype==1 -Y ipv6.src==fe80::ca3a:35ff:fe09:efa1 -e udp.srcport -e ipv6.dst,ff02::2,ff02::2,ff02::16546,ff02::1:2546,ff02::1:2546,ff02::1:2546,ff02::1:2$ tshark -r packet1.pcap -T fields -E separator=, -Y "dhcpv6.msgtype==1 and ipv6.src==fe80::ca3a:35ff:fe09:efa1" -e udp.srcport -e ipv6.dst546,ff02::1:2546,ff02::1:2546,ff02::1:2546,ff02::1:2

过滤完成后进行进一步的分析
比如可以使用grep命令进一步提取满足条件的报文
过滤源地址或者目的地址为192.168.5.38的报文

# linuxtshark -r packet.pcap -T fields -e ip.src -e ip.dst | grep 192.168.5.38 # windowstshark -r packet.pcap -T fields -e ip.src -e ip.dst | findstr 192.168.5.38

也可以使用python、Java等高级语言进行进一步的分析,Python示例如下:

result = os.popen("tshark -r packet.pcap -T fields -e ip.src -e ip.dst“)ret = result.read() # for i, value in enumerate(ret.split("n")): 处理value值 pass 解码所有数据

某些字段可能无法使用tshark过滤,这种情况下,可以先将pcap文件解码,tshark支持如下文件格式:

ek|fields|json|jsonraw|pdml|ps|psml|tabs|text

解码成xml和text格式文件:

tshark -r packet.pcap -V -T pdml > packet.xmltshark -r packet.pcap -V -T text > packet.txt -V:输出数据包详细信息-T pdml:指定数据包解码输出格式为xml格式

xml文档可以使用python的ElementTree工具解析:

try: import xml.etree.cElementTree as ETexcept ImportError: import xml.etree.ElementTree as ET 问题:windows tshark命令无效

系统:windows10
tshark已加入环境变量中
输入tshark,显示:

C:UsersDELL>tsharkThe NPF driver isn't running. You may have trouble capturing orlisting interfaces.Capturing on '鏈湴杩炴帴* 9'

WIreshark安装需要安装WinPcap,查看电脑已经安装了WinPcap。

接下来以管理员身份运行命令行串口,输入net start npf 启动NPF,出现如下报错信息:

C:WINDOWSsystem32>net start npf服务名无效。请键入 NET HELPMSG 2185 以获得更多的帮助。

卸载WinPcap10,下载安装winpcap4.1.3:https://www.winpcap.org/install/default.htm

重新输入net start npf 启动NPF:

C:WINDOWSsystem32>net start npf请求的服务已经启动。请键入 NET HELPMSG 2182 以获得更多的帮助。

启动成功!
tshark命令也可以正常使用了

--THE END--

文章标题:tcpdump抓包及tshark命令解包方法介绍
本文作者:hiyo
本文链接:https://blog.csdn.net/u010698107/article/details/112727035
欢迎关注公众号:「测试开发小记」及时接收最新技术文章!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。