文章

tcpdump 常用方法

tcpdump 常用方法

本文档介绍 tcpdump 网络抓包工具的常用方法。

tcpdump 抓 DHCP 包

tcpdump -i eth0 -c 8 -s 0 -w /mnt/sdcard/dhcp.pcap 'udp and port 67 and port 68'

参数说明:

  • -i:选择网卡
  • -c:数据包个数
  • -s:数据包长度,0 代表完整数据包
  • -w:写入文件
  • DHCP 使用 67 和 68 端口

示例:

tcpdump -i team1 -s 0 udp and port 67 and port 68

抓取包含指定 IP 的数据包

tcpdump -i eth0 -vnn host 10.10.10.122

抓取包含指定网段的数据包

tcpdump -i eth0 -vnn net 10.10.10.0/24

抓取包含指定端口的数据包

tcpdump -i eth0 -vnn port 22

抓取 UDP 协议的数据包

tcpdump -i eth0 -vnn udp

抓取icmp协议的数据包

tcpdump -i eth0 -vnn icmp

抓取arp协议的数据包

tcpdump -i eth0 -vnn arp

抓取ip协议的数据包

tcpdump -i eth0 -vnn ip

抓取源ip是10.10.10.122数据包

tcpdump -i eth0 -vnn src host 10.10.10.122

抓取目的ip是10.10.10.122数据包

tcpdump -i eth0 -vnn dst host 10.10.10.122

抓取源端口是22的数据包

tcpdump -i eth0 -vnn src port 22

抓取源ip是10.10.10.253且目的ip是22的数据包

tcpdump -i eth0 -vnn src host 10.10.10.253 and dst port 22

抓取源ip是10.10.10.122或者包含端口是22的数据包

tcpdump -i eth0 -vnn src host 10.10.10.122 or port 22

抓取源ip是10.10.10.122且端口不是22的数据包

tcpdump -i eth0 -vnn src host 10.10.10.122 and not port 22

抓取源ip是10.10.10.2且目的端口是22,或源ip是10.10.10.65且目的端口是80的数据包

tcpdump -i eth0 -vnn 'src host 10.10.10.2 and dst port 22 ' or 'src host 10.10.10.65 and dst port 80'

抓取源ip是10.10.10.59且目的端口是22,或源ip是10.10.10.68且目的端口是80的数据包

tcpdump -i eth0 -vnn 'src host 10.10.10.59 and dst port 22' or ' src host 10.10.10.68 and dst port 80 '

把抓取的数据包记录存到/tmp/fill文件中,当抓取100个数据包后就退出程序

tcpdump –i eth0 -vnn -w /tmp/fil1 -c 100

从/tmp/fill记录中读取tcp协议的数据包

tcpdump –i eth0 -vnn -r /tmp/fil1 tcp

从/tmp/fill记录中读取包含10.10.10.58的数据包

tcpdump –i eth0 -vnn -r /tmp/fil1 host 10.10.10.58

查看发送到host的数据包是否有经过当前主机的网卡

tcpdump -i eth0 -nnt -c 1 dst host 172.18.22.208 and icmp

抓取经过 interface ens160,发送到 host 172.18.22.208 或 172.18.22.200 的 TCP 协议 22 号端口的数据包

tcpdump -i ens160 -nntvv -c 10 '((tcp) and (port 22) and ((dst host 172.18.22.208) or (dst host 172.18.22.200)))'

抓取经过 interface ens160,DST_MAC 或 SRC_MAC 地址是 00:50:56:bf:c2:c5 的 ICMP 数据包

tcpdump -i ens160 '((icmp) and ((ether host 00:50:56:bf:c2:c5)))'

抓取经过 interface ens160,目标网络是 172.18 但目标主机又不是 172.18.22.204 的 TCP 且非 22 号端口的数据包

tcpdump -i ens160 -c 10 -nnt '((tcp) and (not port 22) and ((dst net 172.18) and (not dst host 172.18.22.204)))'

抓取流入 interface ens160,host 为 172.18.22.208 且协议为 ICMP 的数据包

# 172.18.128.204 > 172.18.22.200(curr) > 172.18.22.208 tcpdump -i ens160 -nnt -P in host 172.18.22.208 and icmp

抓取流出 interface ens160,host 为 172.18.22.208 且协议为 ICMP 的数据包

# 172.18.22.208 > 172.18.128.200(curr) > 172.18.128.204 tcpdump -i ens160 -nnt -P out host 172.18.22.208 and icmp

抓取所有经过网卡1的SYN类型数据包

tcpdump -i eth1 ‘tcp[tcpflags] = tcp-syn’

抓取所有经过网卡1,目的网络是172.16,但目的主机不是192.168.1.200的TCP数据

tcpdump -i eth1 ‘((tcp) and ((dst net 172.16) and (not dst host 192.168.1.200)))
本文由作者按照 CC BY 4.0 进行授权