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 802、抓取源端口为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