TCPdump抓包命令
tcpdump是一个用于截取网络分组,并输出分组内容的工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。
tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的Linux系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。
一、概述
顾名思义,tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
引用
tcpdump -vv
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
11:53:21.444591 IP (tos 0x10, ttl 64, id 19324, offset 0, flags [DF], proto 6, length: 92) asptest.localdomain.ssh > 192.168.228.244.1858: P 3962132600:3962132652(52) ack 2726525936 win 1266
asptest.localdomain.1077 > 192.168.228.153.domain: [bad udp cksum 166e!] 325+ PTR? 244.228.168.192.in-addr.arpa. (46)
11:53:21.446929 IP (tos 0x0, ttl 64, id 42911, offset 0, flags [DF], proto 17, length: 151) 192.168.228.153.domain > asptest.localdomain.1077: 325 NXDomain q: PTR? 244.228.168.192.in-addr.arpa. 0/1/0 ns: 168.192.in-addr.arpa. (123)
11:53:21.447408 IP (tos 0x10, ttl 64, id 19328, offset 0, flags [DF], proto 6, length: 172) asptest.localdomain.ssh > 192.168.228.244.1858: P 168:300(132) ack 1 win 1266
347 packets captured
1474 packets received by filter
745 packets dropped by kernel
不带参数的tcpdump会收集网络中所有的信息包头,数据量巨大,必须过滤。
二、选项介绍
引用
-A 以ASCII格式打印出所有分组,并将链路层的头最小化。
-c 在收到指定的数量的分组后,tcpdump就会停止。
-C 在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_size 中指定的大小。如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件。参数 file_size 的单位是兆字节(是1,000,000字节,而不是1,048,576字节)。
-d 将匹配信息包的代码以人们能够理解的汇编格式给出。
-dd 将匹配信息包的代码以c语言程序段的格式给出。
-ddd 将匹配信息包的代码以十进制的形式给出。
-D 打印出系统中所有可以用tcpdump截包的网络接口。
-e 在输出行打印出数据链路层的头部信息。
-E 用spi@ipaddr algo:secret解密那些以addr作为地址,并且包含了安全参数索引值spi的IPsec ESP分组。
-f 将外部的Internet地址以数字的形式打印出来。
-F 从指定的文件中读取表达式,忽略命令行中给出的表达式。
-i 指定监听的网络接口。
-l 使标准输出变为缓冲行形式,可以把数据导出到文件。
-L 列出网络接口的已知数据链路。
-m 从文件module中导入SMI MIB模块定义。该参数可以被使用多次,以导入多个MIB模块。
-M 如果tcp报文中存在TCP-MD5选项,则需要用secret作为共享的验证码用于验证TCP-MD5选选项摘要(详情可参考RFC 2385)。
-b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。
-n 不把网络地址转换成名字。
-nn 不进行端口名称的转换。
-N 不输出主机名中的域名部分。例如,‘nic.ddn.mil‘只输出’nic‘。
-t 在输出的每一行不打印时间戳。
-O 不运行分组分组匹配(packet-matching)代码优化程序。
-P 不将网络接口设置成混杂模式。
-q 快速输出。只输出较少的协议信息。
-r 从指定的文件中读取包(这些包一般通过-w选项产生)。
-S 将tcp的序列号以绝对值形式输出,而不是相对值。
-s 从每个分组中读取最开始的snaplen个字节,而不是默认的68个字节。
-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc远程过程调用)和snmp(简单网络管理协议;)。
-t 不在每一行中输出时间戳。
-tt 在每一行中输出非格式化的时间戳。
-ttt 输出本行和前面一行之间的时间差。
-tttt 在每一行中输出由date处理的默认格式的时间戳。
-u 输出未解码的NFS句柄。
-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息。
-vv 输出详细的报文信息。
-w 直接将分组写入文件中,而不是不分析并打印出来。
三、tcpdump的表达式介绍
表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表 达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包 将会被截获。
在表达式中一般如下几种类型的关键字:
引用
第一种是关于类型的关键字,主要包括host,net,port,例如 host 210.27.48.2, 指明 210.27.48.2是一台主机,net 202.0.0.0指明202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host。
第二种是确定传输方向的关键字,主要包括src,dst,dst or src,dst and src, 这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是 210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0。如果没有指明 方向关键字,则缺省是src or dst关键字。
第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI (分布式光纤数据接口网络)上的特定的网络协议,实际上它是”ether”的别名,fddi和ether 具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。 其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump 将会 监听所有协议的信息包。
除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less, greater, 还有三种逻辑运算,取非运算是 ‘not ’ ‘! ‘, 与运算是’and’,’&&’;或运算是’or’ ,’||’; 这些关键字可以组合起来构成强大的组合条件来满足人们的需要。
四、下面我们介绍几种典型的tcpdump命令的输出信息
- (1) 想要截获所有210.27.48.1 的主机收到的和发出的所有的分组:
#tcpdump host 210.27.48.1 - (2) 想要截获主机210.27.48.1 和主机210.27.48.2或210.27.48.3的通信,使用命令(注意:括号前的反斜杠是必须的):
#tcpdump host 210.27.48.1 and 210.27.48.2or210.27.48.3 - (3) 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2 - (4) 如果想要获取主机192.168.228.246接收或发出的ssh包,并且不转换主机名使用如下命令:
#tcpdump -nn -n src host 192.168.228.246 and port 22 and tcp - (5) 获取主机192.168.228.246接收或发出的ssh包,并把mac地址也一同显示:
#tcpdump -e src host 192.168.228.246 and port 22 and tcp -n -nn - (6) 过滤的是源主机为192.168.0.1与目的网络为192.168.0.0的报头:
#tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24 - (7) 过滤源主机物理地址为XXX的报头:
#tcpdump ether src 00:50:04:BA:9B and dst……
(为什么ether src后面没有host或者net?物理地址当然不可能有网络喽)。 - (8) 过滤源主机192.168.0.1和目的端口不是telnet的报头,并导入到tes.t.txt文件中:
#tcpdump src host 192.168.0.1 and dst port not telnet -l > test.txt
ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型。
五、命令参数使用
格式:
tcpdump [-nn] [-i 接口] [-w 储存档名] [-c 次数] [-Ae]
[-qX] [-r 文件] [所欲捕获的数据内容]
参数:
-nn,直接以 IP 及 Port Number 显示,而非主机名与服务名称。
-i,后面接要「监听」的网络接口,例如 eth0, lo, ppp0 等等的接口。
-w,如果你要将监听所得的数据包数据储存下来,用这个参数就对了。后面接文件名。
-c,监听的数据包数,如果没有这个参数, tcpdump 会持续不断的监听,
直到用户输入 [ctrl]-c 为止。
-A,数据包的内容以 ASCII 显示,通常用来捉取 WWW 的网页数据包资料。
-e,使用资料连接层 (OSI 第二层) 的 MAC 数据包数据来显示。
-q,仅列出较为简短的数据包信息,每一行的内容比较精简。
-X,可以列出十六进制 (hex) 以及 ASCII 的数据包内容,对于监听数据包内容很有用。
-r,从后面接的文件将数据包数据读出来。那个「文件」是已经存在的文件,
并且这个「文件」是由 -w 所制作出来的。
所欲捕获的数据内容:我们可以专门针对某些通信协议或者是 IP 来源进行数据包捕获。
那就可以简化输出的结果,并取得最有用的信息。常见的表示方法有。
‘host foo’, ‘host 127.0.0.1’ :针对单台主机来进行数据包捕获。
‘net 192.168’ :针对某个网段来进行数据包的捕获。
‘src host 127.0.0.1’ ‘dst net 192.168’:同时加上来源(src)或目标(dst)限制。
‘tcp port 21’:还可以针对通信协议检测,如tcp、udp、arp、ether 等。
除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,
greater,还有三种逻辑运算,取非运算是 ‘not ’ ‘! ‘, 与运算是’and’,’&&’;或运算 是’o
r’ ,’||’;
范例一:以 IP 与 Port Number 捉下 eth0 这个网卡上的数据包,持续 3 秒
root@LEDE:/# tcpdump -i eth2 -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 262144 bytes
14:24:27.909392 IP 192.168.2.100.50792 > 239.255.255.250.1900: UDP, length 174
14:24:28.921286 IP 192.168.2.100.50792 > 239.255.255.250.1900: UDP, length 174
14:24:29.924456 IP 192.168.2.100.50792 > 239.255.255.250.1900: UDP, length 174
14:24:30.926103 IP 192.168.2.100.50792 > 239.255.255.250.1900: UDP, length 174
^C
4 packets captured <==捉取下来的数据包数量
4 packets received by filter <==由过滤所得的总数据包数量
0 packets dropped by kernel <==被核心所丢弃的数据包
范例二,只取出port 22的联机数据包,可以这样做:
root@LEDE:/# tcpdump -i eth2 -nn port 22
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 262144 bytes
14:30:03.573634 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [P.], seq 4239821093:4239821157, ack 2221711633, win 266, options [nop,nop,TS val 3919183717 ecr 39666099], length 64
14:30:03.573816 IP 192.168.2.1.22 > 192.168.2.11.52658: Flags [P.], seq 1:65, ack 64, win 271, options [nop,nop,TS val 39676055 ecr 3919183717], length 64
14:30:03.574045 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [.], ack 65, win 266, options [nop,nop,TS val 3919183718 ecr 39676055], length 0
14:30:03.799980 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [P.], seq 64:128, ack 65, win 266, options [nop,nop,TS val 3919183944 ecr 39676055], length 64
14:30:03.800104 IP 192.168.2.1.22 > 192.168.2.11.52658: Flags [P.], seq 65:129, ack 128, win 271, options [nop,nop,TS val 39676112 ecr 3919183944], length 64
14:30:03.800318 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [.], ack 129, win 266, options [nop,nop,TS val 3919183944 ecr 39676112], length 0
14:30:03.941660 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [P.], seq 128:192, ack 129, win 266, options [nop,nop,TS val 3919184085 ecr 39676112], length 64
14:30:03.941782 IP 192.168.2.1.22 > 192.168.2.11.52658: Flags [P.], seq 129:193, ack 192, win 271, options [nop,nop,TS val 39676147 ecr 3919184085], length 64
14:30:03.941991 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [.], ack 193, win 266, options [nop,nop,TS val 3919184086 ecr 39676147], length 0
14:30:04.053929 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [P.], seq 192:256, ack 193, win 266, options [nop,nop,TS val 3919184197 ecr 39676147], length 64
14:30:04.054043 IP 192.168.2.1.22 > 192.168.2.11.52658: Flags [P.], seq 193:257, ack 256, win 271, options [nop,nop,TS val 39676175 ecr 3919184197], length 64
14:30:04.054252 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [.], ack 257, win 266, options [nop,nop,TS val 3919184198 ecr 39676175], length 0
14:30:04.325984 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [P.], seq 256:320, ack 257, win 266, options [nop,nop,TS val 3919184470 ecr 39676175], length 64
14:30:04.326115 IP 192.168.2.1.22 > 192.168.2.11.52658: Flags [P.], seq 257:321, ack 320, win 271, options [nop,nop,TS val 39676243 ecr 3919184470], length 64
14:30:04.326324 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [.], ack 321, win 266, options [nop,nop,TS val 3919184470 ecr 39676243], length 0
14:30:04.326347 IP 192.168.2.1.22 > 192.168.2.11.52658: Flags [P.], seq 321:497, ack 320, win 271, options [nop,nop,TS val 39676243 ecr 3919184470], length 176
14:30:04.326528 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [.], ack 497, win 276, options [nop,nop,TS val 3919184470 ecr 39676243], length 0
14:30:04.326711 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [P.], seq 320:368, ack 497, win 276, options [nop,nop,TS val 3919184470 ecr 39676243], length 48
14:30:04.326712 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [P.], seq 368:448, ack 497, win 276, options [nop,nop,TS val 3919184470 ecr 39676243], length 80
14:30:04.326756 IP 192.168.2.1.22 > 192.168.2.11.52658: Flags [.], ack 448, win 271, options [nop,nop,TS val 39676243 ecr 3919184470], length 0
14:30:04.326799 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [F.], seq 448, ack 497, win 276, options [nop,nop,TS val 3919184470 ecr 39676243], length 0
14:30:04.326963 IP 192.168.2.1.22 > 192.168.2.11.52658: Flags [F.], seq 497, ack 449, win 271, options [nop,nop,TS val 39676243 ecr 3919184470], length 0
14:30:04.327154 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [.], ack 498, win 276, options [nop,nop,TS val 3919184471 ecr 39676243], length 0
范例3:使用tcpdump监听来自eth2适配卡且通信协议为port 22,目标来源为192.168.1.11的数据包,
root@LEDE:/# tcpdump -i eth2 -nn -X 'port 22' and src 192.168.2.11
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 262144 bytes
14:40:55.167076 IP 192.168.2.11.52672 > 192.168.2.1.22: Flags [S], seq 3410946283, win 29200, options [mss 1460,sackOK,TS val 3919835324 ecr 0,nop,wscale 7], length 0
0x0000: 4500 003c 35ff 4000 4006 7f60 c0a8 020b E..<5.@.@..`....
0x0010: c0a8 0201 cdc0 0016 cb4e e8eb 0000 0000 .........N......
0x0020: a002 7210 f420 0000 0204 05b4 0402 080a ..r.............
0x0030: e9a3 f0bc 0000 0000 0103 0307 ............
14:40:55.167341 IP 192.168.2.11.52672 > 192.168.2.1.22: Flags [.], ack 2213702200, win 229, options [nop,nop,TS val 3919835324 ecr 39838953], length 0
0x0000: 4500 0034 3600 4000 4006 7f67 c0a8 020b E..46.@.@..g....
0x0010: c0a8 0201 cdc0 0016 cb4e e8ec 83f2 6a38 .........N....j8
0x0020: 8010 00e5 be94 0000 0101 080a e9a3 f0bc ................
0x0030: 025f e4e9 ._..
14:40:55.167583 IP 192.168.2.11.52672 > 192.168.2.1.22: Flags [P.], seq 0:32, ack 1, win 229, options [nop,nop,TS val 3919835324 ecr 39838953], length 32
0x0000: 4500 0054 3601 4000 4006 7f46 c0a8 020b E..T6.@.@..F....
0x0010: c0a8 0201 cdc0 0016 cb4e e8ec 83f2 6a38 .........N....j8
0x0020: 8018 00e5 57bc 0000 0101 080a e9a3 f0bc ....W...........
0x0030: 025f e4e9 5353 482d 322e 302d 4f70 656e ._..SSH-2.0-Open
0x0040: 5353 485f 372e 3670 3120 5562 756e 7475 SSH_7.6p1.Ubuntu
0x0050: 2d34 0d0a -4..
14:40:55.168600 IP 192.168.2.11.52672 > 192.168.2.1.22: Flags [.], ack 323, win 237, options [nop,nop,TS val 3919835325 ecr 39838954], length 0
0x0000: 4500 0034 3602 4000 4006 7f65 c0a8 020b E..46.@.@..e....
0x0010: c0a8 0201 cdc0 0016 cb4e e90c 83f2 6b7a .........N....kz
0x0020: 8010 00ed bd28 0000 0101 080a e9a3 f0bd .....(..........
0x0030: 025f e4ea ._..
14:40:55.168799 IP 192.168.2.11.52672 > 192.168.2.1.22: Flags [P.], seq 32:1392, ack 323, win 237, options [nop,nop,TS val 3919835325 ecr 39838954], length 1360
0x0000: 4500 0584 3603 4000 4006 7a14 c0a8 020b E...6.@.@.z.....
0x0010: c0a8 0201 cdc0 0016 cb4e e90c 83f2 6b7a .........N....kz
0x0020: 8018 00ed 73f6 0000 0101 080a e9a3 f0bd ....s...........
0x0030: 025f e4ea 0000 054c 0514 6b73 5c4d 7939 ._.....L..ks\My9
0x0040: 4000 860c 3fd3 5b16 3985 0000 0130 6375 @...?.[.9....0cu
0x0050: 7276 6532 3535 3139 2d73 6861 3235 362c rve25519-sha256,
0x0060: 6375 7276 6532 3535 3139 2d73 6861 3235 curve25519-sha25
0x0070: 3640 6c69 6273 7368 2e6f 7267 2c65 6364 6@libssh.org,ecd
0x0080: 682d 7368 6132 2d6e 6973 7470 3235 362c h-sha2-nistp256,
0x0090: 6563 6468 2d73 6861 322d 6e69 7374 7033 ecdh-sha2-nistp3
0x00a0: 3834 2c65 6364 682d 7368 6132 2d6e 6973 84,ecdh-sha2-nis
0x00b0: 7470 3532 312c 6469 6666 6965 2d68 656c tp521,diffie-hel
0x00c0: 6c6d 616e 2d67 726f 7570 2d65 7863 6861 lman-group-excha
0x00d0: 6e67 652d 7368 6132 3536 2c64 6966 6669 nge-sha256,diffi
0x00e0: 652d 6865 6c6c 6d61 6e2d 6772 6f75 7031 e-hellman-group1
0x00f0: 362d 7368 6135 3132 2c64 6966 6669 652d 6-sha512,diffie-
0x0100: 6865 6c6c 6d61 6e2d 6772 6f75 7031 382d hellman-group18-
0x0110: 7368 6135 3132 2c64 6966 6669 652d 6865 sha512,diffie-he
0x0120: 6c6c 6d61 6e2d 6772 6f75 702d 6578 6368 llman-group-exch
0x0130: 616e 6765 2d73 6861 312c 6469 6666 6965 ange-sha1,diffie
0x0140: 2d68 656c 6c6d 616e 2d67 726f 7570 3134 -hellman-group14
0x0150: 2d73 6861 3235 362c 6469 6666 6965 2d68 -sha256,diffie-h
0x0160: 656c 6c6d 616e 2d67 726f 7570 3134 2d73 ellman-group14-s
0x0170: 6861 312c 6578 742d 696e 666f 2d63 0000 ha1,ext-info-c..
0x0180: 0122 7373 682d 7273 612d 6365 7274 2d76 ."ssh-rsa-cert-v
0x0190: 3031 406f 7065 6e73 7368 2e63 6f6d 2c72 01@openssh.com,r
0x01a0: 7361 2d73 6861 322d 3531 322c 7273 612d sa-sha2-512,rsa-
0x01b0: 7368 6132 2d32 3536 2c73 7368 2d72 7361 sha2-256,ssh-rsa
0x01c0: 2c65 6364 7361 2d73 6861 322d 6e69 7374 ,ecdsa-sha2-nist
0x01d0: 7032 3536 2d63 6572 742d 7630 3140 6f70 p256-cert-v01@op
0x01e0: 656e 7373 682e 636f 6d2c 6563 6473 612d enssh.com,ecdsa-
0x01f0: 7368 6132 2d6e 6973 7470 3338 342d 6365 sha2-nistp384-ce
0x0200: 7274 2d76 3031 406f 7065 6e73 7368 2e63 rt-v01@openssh.c
0x0210: 6f6d 2c65 6364 7361 2d73 6861 322d 6e69 om,ecdsa-sha2-ni
0x0220: 7374 7035 3231 2d63 6572 742d 7630 3140 stp521-cert-v01@
0x0230: 6f70 656e 7373 682e 636f 6d2c 7373 682d openssh.com,ssh-
0x0240: 6564 3235 3531 392d 6365 7274 2d76 3031 ed25519-cert-v01
0x0250: 406f 7065 6e73 7368 2e63 6f6d 2c65 6364 @openssh.com,ecd
0x0260: 7361 2d73 6861 322d 6e69 7374 7032 3536 sa-sha2-nistp256
0x0270: 2c65 6364 7361 2d73 6861 322d 6e69 7374 ,ecdsa-sha2-nist
0x0280: 7033 3834 2c65 6364 7361 2d73 6861 322d p384,ecdsa-sha2-
0x0290: 6e69 7374 7035 3231 2c73 7368 2d65 6432 nistp521,ssh-ed2
0x02a0: 3535 3139 0000 006c 6368 6163 6861 3230 5519...lchacha20
0x02b0: 2d70 6f6c 7931 3330 3540 6f70 656e 7373 -poly1305@openss
0x02c0: 682e 636f 6d2c 6165 7331 3238 2d63 7472 h.com,aes128-ctr
0x02d0: 2c61 6573 3139 322d 6374 722c 6165 7332 ,aes192-ctr,aes2
0x02e0: 3536 2d63 7472 2c61 6573 3132 382d 6763 56-ctr,aes128-gc
0x02f0: 6d40 6f70 656e 7373 682e 636f 6d2c 6165 m@openssh.com,ae
0x0300: 7332 3536 2d67 636d 406f 7065 6e73 7368 s256-gcm@openssh
0x0310: 2e63 6f6d 0000 006c 6368 6163 6861 3230 .com...lchacha20
0x0320: 2d70 6f6c 7931 3330 3540 6f70 656e 7373 -poly1305@openss
0x0330: 682e 636f 6d2c 6165 7331 3238 2d63 7472 h.com,aes128-ctr
0x0340: 2c61 6573 3139 322d 6374 722c 6165 7332 ,aes192-ctr,aes2
0x0350: 3536 2d63 7472 2c61 6573 3132 382d 6763 56-ctr,aes128-gc
0x0360: 6d40 6f70 656e 7373 682e 636f 6d2c 6165 m@openssh.com,ae
0x0370: 7332 3536 2d67 636d 406f 7065 6e73 7368 s256-gcm@openssh
0x0380: 2e63 6f6d 0000 00d5 756d 6163 2d36 342d .com....umac-64-
0x0390: 6574 6d40 6f70 656e 7373 682e 636f 6d2c etm@openssh.com,
0x03a0: 756d 6163 2d31 3238 2d65 746d 406f 7065 umac-128-etm@ope
0x03b0: 6e73 7368 2e63 6f6d 2c68 6d61 632d 7368 nssh.com,hmac-sh
0x03c0: 6132 2d32 3536 2d65 746d 406f 7065 6e73 a2-256-etm@opens
0x03d0: 7368 2e63 6f6d 2c68 6d61 632d 7368 6132 sh.com,hmac-sha2
0x03e0: 2d35 3132 2d65 746d 406f 7065 6e73 7368 -512-etm@openssh
0x03f0: 2e63 6f6d 2c68 6d61 632d 7368 6131 2d65 .com,hmac-sha1-e
0x0400: 746d 406f 7065 6e73 7368 2e63 6f6d 2c75 tm@openssh.com,u
0x0410: 6d61 632d 3634 406f 7065 6e73 7368 2e63 mac-64@openssh.c
0x0420: 6f6d 2c75 6d61 632d 3132 3840 6f70 656e om,umac-128@open
0x0430: 7373 682e 636f 6d2c 686d 6163 2d73 6861 ssh.com,hmac-sha
0x0440: 322d 3235 362c 686d 6163 2d73 6861 322d 2-256,hmac-sha2-
0x0450: 3531 322c 686d 6163 2d73 6861 3100 0000 512,hmac-sha1...
0x0460: d575 6d61 632d 3634 2d65 746d 406f 7065 .umac-64-etm@ope
0x0470: 6e73 7368 2e63 6f6d 2c75 6d61 632d 3132 nssh.com,umac-12
0x0480: 382d 6574 6d40 6f70 656e 7373 682e 636f 8-etm@openssh.co
0x0490: 6d2c 686d 6163 2d73 6861 322d 3235 362d m,hmac-sha2-256-
0x04a0: 6574 6d40 6f70 656e 7373 682e 636f 6d2c etm@openssh.com,
0x04b0: 686d 6163 2d73 6861 322d 3531 322d 6574 hmac-sha2-512-et
0x04c0: 6d40 6f70 656e 7373 682e 636f 6d2c 686d m@openssh.com,hm
0x04d0: 6163 2d73 6861 312d 6574 6d40 6f70 656e ac-sha1-etm@open
0x04e0: 7373 682e 636f 6d2c 756d 6163 2d36 3440 ssh.com,umac-64@
0x04f0: 6f70 656e 7373 682e 636f 6d2c 756d 6163 openssh.com,umac
0x0500: 2d31 3238 406f 7065 6e73 7368 2e63 6f6d -128@openssh.com
0x0510: 2c68 6d61 632d 7368 6132 2d32 3536 2c68 ,hmac-sha2-256,h
0x0520: 6d61 632d 7368 6132 2d35 3132 2c68 6d61 mac-sha2-512,hma
0x0530: 632d 7368 6131 0000 001a 6e6f 6e65 2c7a c-sha1....none,z
0x0540: 6c69 6240 6f70 656e 7373 682e 636f 6d2c lib@openssh.com,
0x0550: 7a6c 6962 0000 001a 6e6f 6e65 2c7a 6c69 zlib....none,zli
0x0560: 6240 6f70 656e 7373 682e 636f 6d2c 7a6c b@openssh.com,zl
0x0570: 6962 0000 0000 0000 0000 0000 0000 0000 ib..............
0x0580: 0000 0000 ....
14:40:55.211618 IP 192.168.2.11.52672 > 192.168.2.1.22: Flags [P.], seq 1392:1440, ack 323, win 237, options [nop,nop,TS val 3919835368 ecr 39838965], length 48
0x0000: 4500 0064 3604 4000 4006 7f33 c0a8 020b E..d6.@.@..3....
0x0010: c0a8 0201 cdc0 0016 cb4e ee5c 83f2 6b7a .........N.\..kz
0x0020: 8018 00ed 3b5c 0000 0101 080a e9a3 f0e8 ....;\..........
0x0030: 025f e4f5 0000 002c 061e 0000 0020 cebf ._.....,........
0x0040: ad8f 89df a1f2 c445 26ef f3d3 53fc 11a4 .......E&...S...
0x0050: c009 9633 3b57 178f f543 a549 4528 0000 ...3;W...C.IE(..
0x0060: 0000 0000 ....
14:40:55.281502 IP 192.168.2.11.52672 > 192.168.2.1.22: Flags [P.], seq 1440:1456, ack 947, win 247, options [nop,nop,TS val 3919835438 ecr 39838979], length 16
0x0000: 4500 0044 3605 4000 4006 7f52 c0a8 020b E..D6.@.@..R....
0x0010: c0a8 0201 cdc0 0016 cb4e ee8c 83f2 6dea .........N....m.
0x0020: 8018 00f7 aa6b 0000 0101 080a e9a3 f12e .....k..........
0x0030: 025f e503 0000 000c 0a15 0000 0000 0000 ._..............
0x0040: 0000 0000 ....
除了过滤语句,还有一个很重要的参数,它就是-s 参数,snaplen, 也就是数据包的截取长度,仔细看man就会明白的!
默认截取长度为60个字节,但一般ethernet MTU都是1500字节。所以,要抓取大于60字节的包时,使用默认参数就会导致包数据丢失!
只要使用-s 0就可以按包长,截取数据!
范例4:tcpdump 存 wireshark 可分析的文件pcap
# tcpdump -i eth0 host example.com -w example.pcap
13 packets captured
13 packets received by filter
0 packets dropped by kernel
参数说明:
-n:打印 IP 而不是 hostname,打印端口号而不是协议(例如打印 80 而不是 http)
-S:打印绝对时间戳
-i eth0:指定从 eth0 网卡抓包
host example.com:抓和 example.com 通信的包(双向)
-w 命令可以将抓到的包写到文件,注意这和用重定向方式将输出写到文件是不同的。后者写的只是标准输出打印的 LOG,而 -w 写的是原始包。