抓包整理————tcpdump过滤器[七]

前言

简单介绍一下tcpdump

正文

这里可以tcpdump -D 可以列出各个网卡的信息:

默认抓取eth0,也就是第一个:

还有下面的选项:

-D 举例所有的网卡设备
-i 选择网卡设备
-c 抓取多少报文
--time-stamp-precision 指定捕获时的时间精度,默认毫秒,可选纳秒
-s 指定每条报文的最大字节数,默认为 262144 字节

例如:

时间精度就不演示了,没有用到过。

捕获过滤其实和以前一样:

primitives 原语: 由名称或数字,以及描述它的多个限定词组成:

qualifiers 限定词:
  type: 设置数字或者名称所指示类型,例如: host www.baidu.com
  dir: dst port 80
  proto: udp

原语运算符号:

与: && 或者 and
或: || 或者 or
非: ! 或者 not

例如: src or dst protrange 6000-8000 && tcp or ip6

这里解释一下:

tcp[13]&4==4 上面我也用红框圈出了rst这个。tcp[13] 也就是偏移13个字节,也就是第14个字节,然后&4,也就是和 00000100进行且操作,也就是只有等于4的就标识rst 这个位置为1.

同样的解释http的get操作:
tcp((tcp[12:1]0xf0)>>2:4) 这个是因为tcp 第13个字节保存了data offset,因为是13个字节前4位保留了data offset,首先将后4位清空。本来应该是tcp[12:1]0xf0)>>4 得到前4位,但是这个data offset 是要*4才是真正的字节数。

所以就直接>>2了,也可以直接/4,其实是一个意思了。

然后获取到偏移量后取4个字节,正好http的get 请求是0x47455420这样就ok了,理解这种过滤规则就行。

也可以去看wireshark的。

演示一下tcpdump 保存。

这样就是保存在a中了。


-r 就是读取了。

如果想同时读取a、b 文件,那么可以使用-V。

比如tcpdump -V c.

c 里面的文件内容就是: a的内容加上b的内容:

也就是指定对应的文件。

-w 输出结果到文件
-C 限制输出文件大小,单位是1,000,000可以理解为1m
-W 输出文件的最大数量,达到后会重写覆写1个文件
-G 每个几秒输出新文件
-r 读取一个包
-V 将待读取的多个文件名写入到一个文件中,通过读取改文件同时读取多个文件 

这里一般-C -W 一般都是联合使用的,上面表示1m一个文件,最多3个文件。

-G 就是每隔几秒输出一个文件,需要用时间表示法。

输出时间格式:

分析信息详情:

大概就是这样,需要具体的可以具体去分析了。

后面就一起看看tcp 协议吧,有时间再扩展到http协议去了。

posted @ 2022-04-18 11:35  敖毛毛  阅读(250)  评论(0编辑  收藏  举报