tcpdump抓包

上一篇 / 下一篇  2013-05-29 09:25:44 / 个人分类:网络

命令行参数
tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]
          [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]
          [ -T 类型 ] [ -w 文件名 ] [表达式 ]
  -n: 不把网络地址转换成名字
  -a: 将网络地址和广播地址转变成名字;
 -e: 在输出行打印出数据链路层的头部信息;
 -t: 在输出的每一行不打印时间戳;
 -v: 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;
 -vv:输出详细的报文信息;
 -c: 在收到指定的包的数目后,tcpdump就会停止;
 -F: 从指定的文件中读取表达式,忽略其它的表达式;
 -i: 指定监听的网络接口;
 -r: 从指定的文件中读取包(这些包一般通过-w选项产生);
 -w: 直接将包写入文件中,并不分析和打印出来;
  -s: 指定数据报的大小(默认68个byte)

表达式
tcpdump利用它作为过滤报文的条件,如果一个报文满足表
达式的条件,则这个报文将会被捕获。如果没有给出任何条件,
则网络上所有的信息包将会被截获。
1. 类型关键字
   host: 指定主机
   net: 指定网络地址
   port: 指定端口号
   默认类型为host
2. 方向关键字
   src: 指定源  
   dst: 指定目的
   src or dst
   src and dst
   默认为src or dst
 
3. 协议关键字
   包括fddi,ip ,arp,rarp,tcp,udp等类型
4. 逻辑运算
   取非运算是 'not ' '!'
   与运算是'and','&&'
   或运算 是'or' ,'||';  

示例
1. 截获所有135.252.142.150 的主机收到的和发出的所有的数据包
   tcpdump host 135.252.142.150 -i eth0
2. 获取主机135.252.33.186除了和主机135.252.142.150之外所有
   主机通信的ip包,使用命令
   tcpdump ip host 210.27.48.1 and ! 210.27.48.2
3. 获取主机135.252.33.186接收或发出的telnet包
   tcpdump tcp port 23 host 135.252.142.150
4. 获取主机135.252.142.121端口5060上的所有数据报
   tcpdump port 5060 and host 135.252.142.121
5. 获取主机135.252.142.150所有udp数据报
   tcpdump udp and host 135.252.142.150
   or:
   tcpdump ip proto\\udpand host 135.252.142.150
6. 获取主机和135.252.142.150的源端口为5060, 目的端口为
   45413的数据报
   tcpdump src port 5060 and dst port 45413 and host 135.252.142.150
 
7. 打印所有包含数据的数据报, 就是说除了SYN, ACk和Fin的数据报
   tcpdump 'tcp port 80 and
   (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
  
8. 打印所有经过网关135.252.33.1长度大于576的数据报
   tcpdump 'gateway snup and ip[2:2] > 576'
   ip[2:2]: 从第二个byte开始的两个byte.

实现
 tcpdump     |------------------------------------------     |                           |     |                        +-------+      |                        |tcp/udp|     |                        +-------+      |                           |     |                       +--------+       |                       |IP stack|+------------+               +--------+| Filter     |                   |+------------+             +------------+ | BPF driver |-------------| eth driver | +------------+ packet recv +------------+
-----------------------------------------------------
note: 如果linux(或unix)没装xwindow, 可以考虑用tcpdump, 如果这个协议tcpdump不支持, 可以使用tcpdump抓包, 使用wireshare(或者ethereal)来看所抓的数据包

TAG:

 

评分:0

我来说两句

Open Toolbar