tcpdump 是一个Linux的网络抓包工具。它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包。tcpdump 适用于大多数的类Unix系统操作系统,如路由器、debian、centos等均可安装。
安装
若系统没有安装此工具,我们可以执行下面命令进行安装。
yum install tcpdump
查看帮助
tcpdump -h
参数说明
-c指定要抓取的包数量,-c 10将获取10个包。-iinterface:指定tcpdump需要监听的接口。-n对地址以数字方式显式,否则显式为主机名。-nn除了-n的作用外,还把端口显示为数值,否则显示端口服务名。-P:指定要抓取的包是流入还是流出的包。可以给定的值为in、out和inout(默认)-r从给定的数据包文件中读取数据。
默认情况下,我们可以直接执行命令tcpdump。这样便可以抓取所有通过本机的流量了。
列出可以抓包的网络接口
我们可以用ifconfig或者下面命令,查看可用的网络设备。
tcpdump -D
抓取指定网卡的数据包
tcpdump -i ens33
抓取指定IP的数据包
tcpdump -c 10 net 192.168.123.46
抓取ping包
tcpdump -c 5 -nn -i br0 icmp
抓取到本机22端口包
tcpdump -c 2 -q -XX -vvv -nn -i bond0 tcp dst port 22
保存数据包
tcpdump 提供了保存抓包数据的功能以便后续分析数据包,也可以利用wireshark等图形化工具进行分析。
tcpdump -i br0 -c 100 -nn -w kali.pcap port 22
打开保存的数据包
tcpdump -nn -r kali.pcap