QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3317|回复: 0
打印 上一主题 下一主题

Tcpdump的使用

[复制链接]
字体大小: 正常 放大
韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

跳转到指定楼层
1#
发表于 2005-3-20 13:48 |只看该作者 |倒序浏览
|招呼Ta 关注Ta

作者:李国莉  来源:http://www.eviloctal.com/forum/

/ r6 N6 C. f6 B/ }( u+ M

' D9 W0 S& [' A! k* m3 B M, c% w tcpdump采用命令行方式,它的命令格式为: 5 y9 \5 a2 H* V* B1 v  tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ] : H& o2 W8 l. ?. |7 V          [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]3 K3 E# _% W* U* _* F# G           [ -T 类型 ] [ -w 文件名 ] [表达式 ]

* f3 V, y+ U" \7 B" ^

  1. tcpdump的选项介绍 6 M+ A5 r2 c6 U M3 J: P, L/ P   -a    将网络地址和广播地址转变成名字; . M1 {+ G7 d# Q. R0 k( t   -d    将匹配信息包的代码以人们能够理解的汇编格式给出; ! g2 \1 z& _! {/ b( b; x' g   -dd    将匹配信息包的代码以c语言程序段的格式给出;6 z+ Z1 Q( y! `% M; y- h3 s    -ddd    将匹配信息包的代码以十进制的形式给出; % g$ ?& W) O. q# m( a4 H, _   -e    在输出行打印出数据链路层的头部信息;8 J6 r- r* o# Z n Q" h9 s8 _7 j    -f    将外部的Internet地址以数字的形式打印出来;) g' k4 J) K1 E) Q! t$ M) Q    -l    使标准输出变为缓冲行形式;" |' @- f' p5 h    -n    不把网络地址转换成名字;% E. @5 d& c/ I3 z2 H, a    -t    在输出的每一行不打印时间戳; * Z& G* D- C2 i   -v    输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息; % B/ h$ O$ L: d5 ?( U3 X' \3 B   -vv    输出详细的报文信息;) h- T; | r% E& m* r+ I    -c    在收到指定的包的数目后,tcpdump就会停止;$ \9 y- m* K/ B/ q/ o    -F    从指定的文件中读取表达式,忽略其它的表达式; ' ]- l5 o( @0 P* g8 L& g5 u7 X   -i    指定监听的网络接口; [; j$ h% F+ Q9 @0 B2 T5 n    -r    从指定的文件中读取包(这些包一般通过-w选项产生);: I4 ]' p, Z* n* Q8 [9 {" w, }    -w    直接将包写入文件中,并不分析和打印出来; 4 V% S2 v# ], d6 O. `9 b" O2 ~2 M5 f   -T    将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程 : b3 }+ C4 ]7 e# f4 l/ L调用)和snmp(简单       网络管理协议;)

# p. [: k' e) X/ Q/ Z- T: E

  2. tcpdump的表达式介绍 " G5 c! c8 C- C+ W5 R, w   表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表 3 U) ]% I1 o& D( N* @: p2 ]6 z达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会 ; ]. p5 Q f s- }4 x+ q( ?& f被截获。, K& M$ P; ]0 q0 x    在表达式中一般如下几种类型的关键字,一种是关于类型的关键字,主要包括host,' l. ], G+ C' Y9 }+ N net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明 - P d& p3 }+ J, c8 z& D: M202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是7 |3 b6 {4 z6 H/ L6 Z host.) s0 x+ h0 o, `7 Z9 ?    第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src , x/ W+ g! ]0 z0 e$ g" R; A1 ^: f 这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是210.27. ; q6 c8 Z6 G: @* x' P f6 a) f48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字,则 % l% ?8 y: D7 t缺省是src or dst关键字。 q9 [0 d# v9 S6 p0 T, a" _* ]    第三种是协议的关键字,主要包括fddi,ip ,arp,rarp,tcp,udp等类型。Fddi指明是在9 T) E3 z7 F8 u. x FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是"ether"的别名,fddi和e# y1 ^8 T+ p5 ^3 s ther具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。 3 J1 {) T% |$ |9 U3 [其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会. Z2 O9 l4 T8 e# i4 J 监听所有协议的信息包。 9 [6 N+ ^8 D% @- c `6 k   除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less, ( Y3 \% d. l) Sgreater,还有三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&';或运算 是'o % a9 _! z* y1 [* Q" [' Ar' ,'||'; q5 t) }1 A1 ]; w3 u    这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来8 L& v$ h- S) o 说明。 ! [3 q. `4 b+ c% N4 r9 F- O   (1)想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包: # K- Q/ o- d8 A- V# @/ L9 D5 m    #tcpdump host 210.27.48.1 9 z$ g7 ], E* `. R4 v' W+ b* y    (2) 想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令. w' R. O4 m6 R, i# d9 M8 c, N f :(在命令行中适用   括号时,一定要 f' D9 a' ] r! f* M7 q8 _0 Y    #tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) 7 N* R" y1 |: ?% q    (3) 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包) `* q. I7 R# _# r" p. ^, I ,使用命令:9 k7 `' F- f3 M# F# t4 W- x8 A, G     #tcpdump ip host 210.27.48.1 and ! 210.27.48.2. V6 @+ k- z( G. Z    (4)如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令: , u% G8 C D& |5 s7 K( B    #tcpdump tcp port 23 host 210.27.48.1

" s3 f$ {' g6 D" [3 w* x3 ^

  3. tcpdump 的输出结果介绍 ' y( Q% u6 P% `$ x; z   下面我们介绍几种典型的tcpdump命令的输出信息 9 I: L4 P6 B/ k& |4 i   (1) 数据链路层头信息 9 C. S7 i! Y$ }$ t. _( [1 V   使用命令#tcpdump --e host ice 2 c9 \2 h; f7 t5 c5 S% w" d( y% U6 ~   ice 是一台装有linux的主机,她的MAC地址是0:90:27:58:AF:1A: y# G6 d, D) J2 d    H219是一台装有SOLARIC的SUN工作站,它的MAC地址是8:0:20:79:5B:46;上一条0 k% @$ e& n* f7 d' u8 z9 B 命令的输出结果如下所示: q& s7 k5 o6 M; I: Q+ f21:50:12.847509 eth0 < 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 > ice.2 N, q6 `/ ^$ o- @* l9 z# G" r6 W telne/ V7 t0 B3 L9 S t 0:0(0) ack 22535 win 8760 (DF)* l7 A1 E' u9 X- y   分析:21:50:12是显示的时间, 847509是ID号,eth0 <表示从网络接口eth0 接受该( g/ f5 {+ c! r( D5 E0 ? 数据包,eth0 >表示从网络接口设备发送数据包, 8:0:20:79:5b:46是主机H219的MAC地址,它 3 P3 C1 q+ w) s" u- K+ J表明是从源地址H219发来的数据包. 0:90:27:58:af:1a是主机ICE的MAC地址,表示该数据包的 : x) T3 b ]: t目的地址是ICE . ip 是表明该数据包是IP数据包,60 是数据包的长度, h219.33357 > ice.$ e: P3 n. ]" Y$ C% O telnet 表明该数据包是从主机H219的33357端口发往主机ICE的TELNET(23)端口. ack 22535 0 w" Z) ~8 W2 Y' S' O1 W; c5 [表明对序列号是222535的包进行响应. win 8760表明发送窗口的大小是8760.

1 T( J& ] ^, g0 \7 }

  (2) ARP包的TCPDUMP输出信息 5 A* _6 ~+ T% ]: K/ ^8 r. K   使用命令#tcpdump arp 8 U/ y* ^& C) }1 z" F7 p0 R# Y1 t    得到的输出结果是:6 S6 W! N j" k! u6 S   22:32:42.802509 eth0 > arp who-has route tell ice (0:90:27:58:af:1a)5 Y+ I- x; C( _ Y   22:32:42.802902 eth0 < arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af + ]9 u. o: Z8 X F:1a) 1 a: B* U/ d+ f7 T8 C  分析: 22:32:42是时间戳, 802509是ID号, eth0 >表明从主机发出该数据包, arp表明是 v" k8 X8 F# Q" B* _ ARP请求包, who-has route tell ice表明是主机ICE请求主机ROUTE的MAC地址。 0:90:27:5 / {6 ^$ w+ n9 p' [6 o! I8:af:1a是主机ICE的MAC地址。

+ R3 C& _ V: c" Q; t9 _

  (3) TCP包的输出信息. \6 p' C' \9 l8 y7 R6 m4 ]' N3 b& F    用TCPDUMP捕获的TCP包的一般输出信息是: 8 J2 W- h! O9 y1 a5 H% c  src > dst: flags data-seqno ack window urgent options / ], m2 j- g7 j8 X% M  src > dst:表明从源地址到目的地址, flags是TCP包中的标志信息,S 是SYN标志, F (F; T" z: F7 a3 G7 v* b IN), P (PUSH) , R (RST) "." (没有标记); data-seqno是数据包中的数据的顺序号, ack是 1 U6 v3 }2 N i1 Z下次期望的顺序号, window是接收缓存的窗口大小, urgent表明数据包中是否有紧急指针. 6 s& i, N! y2 M: q. ^ Options是选项.

$ }+ @; a) ~$ _$ r: P6 c! a

  (4) UDP包的输出信息5 |1 f9 z$ l* K1 J* O8 I" d. l! u    用TCPDUMP捕获的UDP包的一般输出信息是: 7 N* [, j6 Q$ j! i  route.port1 > ice.port2: udp lenth; @5 B" a1 S. C+ p   UDP十分简单,上面的输出行表明从主机ROUTE的port1端口发出的一个UDP数据包到主机 " i, \, @ Y# z! b0 a% E6 S+ ZICE的port2端口,类型是UDP, 包的长度是lenth 0 A3 T6 ?% j* S4 c " S2 v4 j+ U+ T

; j# p- D, H# Z) I8 X

0 b& y( o' j1 @0 v `. T

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-8-7 15:59 , Processed in 0.664218 second(s), 51 queries .

回顶部