tcpdump使用笔记

tcpdump总结笔记

[root@localhost ~]# tcpdump --help
tcpdump version 4.9.2
libpcap version 1.5.3
OpenSSL 1.0.2k-fips  26 Jan 2017
Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ]
                [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
                [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
                [ -Q|-P in|out|inout ]
                [ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ]
                [ --immediate-mode ] [ -T type ] [ --version ] [ -V file ]
                [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]
                [ -Z user ] [ expression ]

 

一、参数解释:

-a:尝试将网络和广播地址转换成名称;

-c<数据包数目>:收到指定的数据包数目后,就停止进行倾倒操作;

-d:把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出;

-dd:把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出;

-ddd:把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出;

-e:在每列倾倒资料上显示连接层级的文件头;

-f:用数字显示网际网络地址;

-F<表达文件>:指定内含表达方式的文件;

-i<网络界面>:使用指定的网络截面送出数据包;

-l:使用标准输出列的缓冲区;

-n:不把主机的网络地址转换成名字;

-N:不列出域名;

-O:不将数据包编码最佳化;

-p:不让网络界面进入混杂模式;

-q :快速输出,仅列出少数的传输协议信息;

-r<数据包文件>:从指定的文件读取数据包数据;

-s<数据包大小>:设置每个数据包的大小;

-S:用绝对而非相对数值列出TCP关联数;

-t:在每列倾倒资料上不显示时间戳记;

-tt: 在每列倾倒资料上显示未经格式化的时间戳记;

-T<数据包类型>:强制将表达方式所指定的数据包转译成设置的数据包类型;

-v:详细显示指令执行过程;

-vv:更详细显示指令执行过程;

-x:用十六进制字码列出数据包资料;

-w<数据包文件>:把数据包数据写入指定的文件;

 

二、过滤主机

1、监听某个端口数据:ens33网卡名称,-i 指定网卡名称

  

2、抓取接口流量,接口名称为ens33,在接口上抓取目的地址或者源地址为192.168.93.139的数据

   tcpdump -i ens33 -nn host 192.168.93.1          tcpdump -i ens33 host 192.168.93.1          -nn:区别把主机名形式变成IP

        

3、抓取接口流量,接口名称为ens33,只抓取源地址为192.168.93.139单向数据或者只抓取目的地址为192.168.93.139单向数据

   tcpdump -i ens33 -nn src host 192.168.93.139  在此接口下只抓取源地址192.168.93.1单向数据流

   tcpdump -i ens33 -nn dst host 192.168.93.139  在此接口下只抓取目的地址192.168.93.1单向数据流

4、抓取接口流量,接口名称为ens33,只抓取主机111.13.131.233 and 111.13.123.114

   tcpdump -i ens33 host 192.168.93.1 and 192.168.93.139  抓取此接口下这两个IP地址的流量

5、抓取接口流量,接口名称为ens33,在接口上只抓取主机192.168.93.1和主机192.168.93.2或者192.168.93.139的数据

  tcpdump -nni host 192.168.93.1 and \(192.168.93.2 or 192.168.93.139 \)   

6、抓取接口流量,接口名称为ens33,目的网络为192.168(把所有192.168的流量抓取出来)

   tcpdump -nni net 192.168

 

三、过滤协议

1、抓取源端口或者目的端口为80的所有数据包

   tcpdump -nni ens33 port 80 

2、抓取源端口为22的数据包

  

3、抓取目的端口为443的数据包

  tcpdump -nni ens33 dst port 443 

4、过滤ARP包

  

5、过滤IP包

  

6、过滤TCP包

  

7、过滤UDP

  

8、过滤ICMP

  

 

四、常见操作

在linux上一般使用tcpdump抓包,详细数据查看将抓取的数据保存到文件中通过wireshark工具查看,通过-w 文件名.pcap来存储文件

1、抓192.168.93.1上22的tcp包,将抓取的数据存储到/root/ssh.pcap文件中
  
2、抓192.168.93.1的80、110、25以外的其他端口数据包存储到指定文件中
  tcpdump -i ens33 host 192.168.93.1 and ! port 80 and ! port 25 and ! 110 -w /home/xxx.pcap

   3、抓vlan 1的数据包存储到指定文件中    
   
tcpdump -i ens33 port 80 and vlan 1 -w /home/xxx.pcap

 4、抓pppoe的密码存储到指定文件中
    
tcpdump -i ens33 pppoes -w /home/xxx.pcap
   5、抓包时10M写一个文件,第一个文件名称为ens33.pcap 后面追加的包以数据后缀结尾保存文件

   tcpdump -i ens33 -C 10m -Z root -w /home/ens33.pcap

   6、间隔30s写一个抓包文件,以时间戳命名(通过参数读取当前时间命令文件名称)

   tcpdump -i lo -G 30 -w %Y_%m%d_%H%M_%S.pcap

   7、循环抓包,-c每个包最大10M,-w最多有10个文件

      tcpdump -i lo -C 10 -W 10 -Z root -w /home/xx.pcap

 

五、常用表达式

  非:!、or、not

  且:&&、or、and

  或:||、or、

 1、抓取源地址为192.168.93.1或192.168.93.139,端口是80的tcp数据包

  tcpdump '((tcp) and (port 80) and ((src host 192.168.93.1) or (src host 192.168.93.139)))'

  tcpdump -i ens33 '((tcp) and (port 80) and ((src host 192.168.93.1) or (src host 192.168.93.139)))'     也可以加上网卡名称

 2、抓取目标/源MAC地址是00:50:56:c0:00:08的ICMP数据

  tcpdump -nni ens33 '((icmp) and ((ether src host 00:50:56:c0:00:08)))'

  tcpdump -nni ens33 '((icmp) and ((ether dst host 00:50:56:c0:00:08)))'

3、抓取目的网络是192.168,但目的主机不是192.168.93.1的TCP数据

  tcpdump -nni ens33 '((icmp) and ((dst host 192.168) and (not dst host 192.168.93.1)))' 

 ======================================================================================================

参考网址:https://blog.csdn.net/qq_30549833/article/details/81943426

详细参考网址:https://blog.csdn.net/qq_30549833/article/details/70847481?

高级参考网址:https://www.cnblogs.com/jiujuan/p/9017495.html

posted @ 2022-03-09 14:43  大韩小白  阅读(582)  评论(0)    收藏  举报