2.tcpdump(2)

来源:互联网 发布:o reilly 知乎 编辑:程序博客网 时间:2024/06/03 07:34

实用命令实例

监视指定网络接口的数据包tcpdump -i eth1   // 如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0,下面的例子都没有指定网络接口
监视指定主机的数据包tcpdump host sundown // 打印所有进入或离开sundown的数据包.tcpdump host 210.27.48.1 // 也可以指定ip,例如截获所有210.27.48.1 的主机收到的和发出的所有的数据包tcpdump host helios and \( hot or ace \) //打印helios 与 hot 或者与 ace 之间通信的数据包tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) //截获主机210.27.48.1 和主机210.27.48.2210.27.48.3的通信tcpdump ip host ace and not helios // 打印ace与任何其他主机之间通信的IP 数据包, 但不包括与helios之间的数据包.tcpdump ip host 210.27.48.1 and ! 210.27.48.2//如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令tcpdump -i eth0 src host hostname//截获主机hostname发送的所有数据tcpdump -i eth0 dst host hostname //监视所有送到主机hostname的数据包
监视指定主机和端口的数据包tcpdump tcp port 23 and host 210.27.48.1//如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令tcpdump udp port 123 //对本机的udp 123 端口进行监视 123 为ntp的服务端口

tcpdump 与wireshark

 在Linux 里抓包,然后在Windows 里分析包。tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型(2)-i eth1 : 只抓经过接口eth1的包(3)-t : 不显示时间戳(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包(5)-c 100 : 只抓取100个数据包(6)dst port ! 22 : 不抓取目标端口是22的数据包(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

表达式

表达式由一个或多个'表达元'组成(nt: primitive, 表达元, 可理解为组成表达式的基本元素). 一个表达元通常由一个或多个修饰符(qualifiers)后跟一个名字或数字表示的id 组成(nt: 即, 'qualifiers id').有三种不同类型的修饰符:type, dir 以及proto.type 可以为 host, net, port 以及portrang portrange(nt: host 表明id 表示主机, net 表明id 是网络, port 表明id 是端口,而portrange 表明id 是一个端口范围).如, 'host foo', 'net 128.3', 'port 20', 'portrange 6000-6008'(nt:分别表示主机foo,网络128.3, 端口20, 端口范围6000-6008). 如果不指定type 修饰符, id 默认的修饰符为host.dir 修饰符描述id 所对应的传输方向, 即发往id 还是从id 接收(nt: 而id 到底指什么需要看其前面的type 修饰符).可取的方向为: src, dst, src 或dst, src 并且dst.(nt:分别表示, id 是传输源, id 是传输目的, id 是传输源或者传输目的, id 是传输源并且是传输目的). 例如, 'src foo','dst net 128.3', 'src or dst port ftp-data'.(nt: 分别表示符合条件的数据包中,源主机是foo, 目的网络是128.3, 源或目的端口为ftp-data).如果不指定dir 修饰符, id 默认的修饰符为src 或dstproto 修饰符描述id 所属的协议. 可选的协议有: ether, fddi, tr, wlan, ip, ip6, arp,rarp, decnet, tcp以及udp.例如, `ether src foo', `arp net 128.3', `tcp port 21', `udp portrange 7000-7009'分别表示'从以太网地址foo 来的数据包','发往或来自128.3网络的arp 协议数据包', '发送或接收端口为21的tcp 协议数据包', '发送或接收端口范围为7000-7009的udp 协议数据包'.表达元之间还可以通过关键字and, or 以及not 进行连接, 从而可组成比较复杂的条件表达式.`host foo and not port ftp and not port ftp-data'less length 如果数据包的长度比length 小或等于lengthgreater length 如果数据包的长度比length 大或等于length,

捉包时打印包数据到屏幕上(加-X) tcpdump -X -i eth1 -v tcp port 12345指定捉包数据的长度(加-s $num) tcpdump -X -s 1024 -i eth1 -v tcp port 12345

http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

0 0
原创粉丝点击