网络抓包文件过大,如何切割成多个小文件?
摘要:背景 节前最后几天了,随便写点水文吧,今天就记录一下,当我们拿到的网络抓包文件太大,应该怎么分析。 一般来说,我们个人抓包的话,linux上用tcpdump比较多,抓的时候也会用捕获表达式,抓出来的包一般不大,用wireshark分析就很容
背景
节前最后几天了,随便写点水文吧,今天就记录一下,当我们拿到的网络抓包文件太大,应该怎么分析。
一般来说,我们个人抓包的话,linux上用tcpdump比较多,抓的时候也会用捕获表达式,抓出来的包一般不大,用wireshark分析就很容易。
但是,前一阵的一个晚上,dba突然找我,看能不能帮忙一起分析一个网络抓包文件,连了会议后一看,大小有4g,这么大的包,wireshark打开都很是困难,分析也很卡。
这么大的包,怎么来的呢,原来是网络同事直接在路由器上抓的,过滤条件就是某个数据库服务器的ip:1433端口(sql server数据库)。既然过滤了,包还这么大?问了下,原来在路由器上抓了整整一个半小时,然后这个库流量又大,所以最终就有4g。
dba的诉求是,某个数据库客户端发了某些sql,导致把数据库服务器搞死了,现在就是要找出来是哪个客户端,哪个sql。
最终呢,我只是给dba同事说了下,怎么拆分包,怎么查看包里的sql;后续忙起来后,我也没问进度,估计已经解决了吧。
这里就简单记录下,遇到这种大的包,怎么拆分。
editcap
editcap这个命令是wireshark自带的,一般就在wireshark目录下,像我这边在:C:\Program Files\Wireshark\editcap.exe,我一般会加入到环境变量PATH。
介绍如下:
Editcap is a program that reads some or all of the captured packets from the infile, optionally converts them in various ways and writes the resulting packets to the capture outfile (or outfiles).
即,可以读取pcap/pcapng类型的文件,通过各种方式进行一些处理、转换,然后将结果写入到另外的文件。
说明文档:
在我们场景中,一般使用如下几个选项就行了:
按时间
按包的开始时间
-A
Saves only the packets whose timestamp is on or after start time. The time is given in the following format YYYY-MM-DD HH:MM:SS[.nnnnnnnnn] (the decimal and fractional seconds are optional).
比如,对于如下这个包:
editcap file20230325.pcap file20230325-after-pm-3.pcap -A "2023-03-25 15:00:00"
其中,file20230325-after-pm-3.pcap就是要保存的文件名,-A就是选择15点以后的报文。
