tcpdump

来源:互联网 发布:php九九乘法表代码解释 编辑:程序博客网 时间:2024/05/22 15:13
sudo tcpdump -helptcpdump version 4.5.1libpcap version 1.5.3Usage: tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]        [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]        [ -i interface ] [ -j tstamptype ] [ -M secret ]        [ -P in|out|inout ]        [ -r file ] [ -s snaplen ] [ -T type ] [ -V file ] [ -w file ]        [ -W filecount ] [ -y datalinktype ] [ -z command ]        [ -Z user ] [ expression ][-aAbdDefhHIJKlLnNOpqRStuUvxX][ -B size ][ -c count ][ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ][ -i interface ] 指定网卡 any表示任意网卡[ -j tstamptype ] [ -M secret ][ -P in|out|inout ][ -r file ][ -s snaplen ][ -T type ] [ -V file ] [ -w file ][ -W filecount ] [ -y datalinktype ] [ -z command ][ -Z user ] [ expression ]1. tcpdump host 10.10.10.1获得所有有关10.10.10.1的数据包2. tcpdump host 10.10.10.1 and \( 10.10.10.110 or 10.10.10.111)获得所有.1与.110或.1与.111之间的数据包3. tcpdump ip host 10.10.10.1 and not 10.10.10.110打印所有与.1通信但不与.110通信的IP数据包4. tcpdump -i eth0 src host 10.10.10.110获得所有从.110发出的所有数据5. tcpdump tcp port 80 and src host 10.10.10.110获得所有从.110发出的向80端口的http请求包6. tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) !=0 '打印TCP会话中的的开始和结束数据包7. tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0) '打印所有源或目的端口是80, 网络层协议为IPv4, 并且含有数据,而不是SYN,FIN以及ACK-only等不含数据的数据包ip[2:2] 表示整个ip数据包的长度(ip[0]&0xf)<<2) 表示ip数据包包头的长度(ip[0]&0xf代表包中的IHL域, 而此域的单位为32bit, 要换算成字节数需要乘以4, 即左移2. (tcp[12]&0xf0)>>4 表示tcp头的长度, 此域的单位也是32bit, 换算成比特数为 ((tcp[12]&0xf0) >> 4) << 2, 即 ((tcp[12]&0xf0)>>2). ((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0 表示: 整个ip数据包的长度减去ip头的长度,再减去tcp头的长度不为0, 这就意味着, ip数据包中确实是有数据.指定主机 host 指定协议 ip/tcp/udp/..指定方向 src/dstWireshark(以前是ethereal)是Windows下非常简单易用的抓包工具。但在Linux下很难找到一个好用的图形化抓包工具。还好有Tcpdump。我们可以用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)分析使用tcpdump抓取HTTP包tcpdump  -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x48540x4745 为"GET"前两个字母"GE",0x4854 为"HTTP"前两个字母"HT"。基本上tcpdump总的的输出格式为:系统时间 来源主机.端口 > 目标主机.端口 数据包参数
0 0
原创粉丝点击