Tcpdump的常用选项 -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数据包文件> 把数据包数据写入指定的文件。 表达式常用关键字 host:指明主机,比如host 192.168.0.5 net:指明网络地址,比如net 192.0.0.0 port:指明端口, 比如port 5555 src:指明来源,如src 192.168.5.23 dst:指明目的,如dst 192.168.34.2 ip:监听ip包 tcp:监听tcp包 udp:监听udp包 arp:监听arp请求包 rarp:监听rarp请求包 可以把这些选项进行不同的组合来达到想要的监听结果,当然还包括 gateway,broadcast,less,greater等模式,以及把不同的选项通过and,or, not进行连接,如‘tcp dst port ftp or ftp-data or domain’。 监听指定网络接口的数据包 # tcpdump -i eth0 监听指定源ip和端口的数据包 # tcpdump -i eth0 -nn 'port 52733 and src host 192.168.153.1' 监听指定源ip和目的ip的数据包 #tcpdump 'src host 192.168.153.1 and dst host 192.168.153.129' 监听指定协议的数据包 #tcpdump ip 或者tcpdump tcp 或者tcpdump udp 分别查看ip,tcp和udp的数据包 各种表达式的组合 打印TCP会话中的的开始和结束数据包, 并且数据包的源或目的不是本地网络上的主机.(nt: localnet, 实际使用时要真正替换成本地网络的名字)) #tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net localnet' 打印所有源或目的端口是80, 网络层协议为IPv4, 并且含有数据,而不是SYN,FIN以及ACK-only等不含数据的数据包 #tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2))-((tcp[12]&0xf0)>>2)) != 0)' 抓取http包 #tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854 0x4745 为"GET"前两个字母"GE",0x4854 为"HTTP"前两个字母"HT"。 #tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x504f or tcp[20:2]=0x4854 0x504f 为“POST”前两个字母“PO” 输出信息解释 arp包输出信息 在本机上输入arp,通过#tcpdump arp监听 08:21:32是时间戳,494240是ID号,arp表明是arp请求包,who-has 192.168.153.2 tell 192.168.153.129表示主机192.168.153.129请求主机192.168.153.2的MAC地址,00:50:56:fe:c8:34为mac地址。 tcp包输出信息 src >; dst: flags data-seqno ack window urgent options src > dst表明从源地址到目的地址,flag是tcp包中的标志信息,S是SYN标志,F(FIN),P(PUSH),R(RST),"."(没有标记),data-seqno是数据包中的数据的顺序号,ack是下次期望的顺序号,win是接受缓存的窗口大小,urgent表明数据包中是否有紧急指针。 udp包输出信息 src.port1 >; dst.port2: udp length 表明从主机src的port1端口发出的一个UDP数据包到主机dst的port2端口,类型是udp,包长度是length。 数据链路层头信息 #tcpdump -e host 192.168.153.129 09:01:54.677404 00:0c:29:ab:74:47 (oui Unknown) > 00:50:56:c0:00:08 (oui Unknown), ethertype IPv4 (0x0800), length 298: 192.168.153.129.ssh > 192.168.153.1.54243: P 804264:804508(244) ack 817 win 131 09:01:54.677431 00:0c:29:ab:74:47 (oui Unknown) > 00:50:56:c0:00:08 (oui Unknown), ethertype IPv4 (0x0800), length 298: 192.168.153.129.ssh > 192.168.153.1.54243: P 804508:804752(244) ack 817 win 131 09:01:54.677635 00:50:56:c0:00:08 (oui Unknown) > 00:0c:29:ab:74:47 (oui Unknown), ethertype IPv4 (0x0800), length 60: 192.168.153.1.54243 > 192.168.153.129.ssh: . ack 801336 win 156 09:01:54.677636 00:50:56:c0:00:08 (oui Unknown) > 00:0c:29:ab:74:47 (oui Unknown), ethertype IPv4 (0x0800), length 60: 192.168.153.1.54243 > 192.168.153.129.ssh: . ack 801824 win 154 说明:09:01:54是时间戳,677404是ID号,00:0c:29:ab:74:47是发送数据包的网络接口的mac地址,00:50:56:c0:00:08是接受数据包的网络接口的mac地址,IPv4表明是IPv4协议,数据包长度是298,P是PUSH,ack是下次期望的顺序号,win是接受缓存的窗口大小。 |
|