tcpdump

一、概述

tcpdump可以将网路中传送的数据包的“头”完全截获下来提供分析。支持网络层、协议、主机、网络或端口的过滤,并提供and、or、not等。

二、使用

默认启动

tcpdump普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。

监视指定的网络接口的数据包

tcpdump -i eth1

如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0

监视指定主机的数据包

tcpdump host sundown打印所有进入或离开sundown的数据包

tcpdump host 192.168.5.163截获指定ip的主机收到发出的所有数据包

tcpdump host A and \(B or C\)打印A与B或者与C之间通信的数据包(同样适用IP)

tcpdump ip host A and not B打印A与任何其他主机之间通信的IP数据包,但不包括与B之间的数据包

tcpdump ip host IP1 and ! IP2获取主机ip1除了和主机ip2之外所有主机通信的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

tcpdump抓包,wireshark解析

tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.1/24 -w ./target.cap

tcp: ip icmp arp rarp 和tcp、udp、icmp这些选项都要放在第一个参数位置,用来过滤数据报的类型

-i eht1: 只抓经过接口eht1的包

-t : 不显示时间戳

-s 0 : 抓取数据包时默认抓取长度为68字节。加上-s 0后可以抓到完整的数据包

-c 100 :只抓取100个包

dst port ! 22:不抓取目标端口是22的数据包

src net 192.168.1.1/24 :数据包的源网络地址为192.168.1.1/24

-w ./target.cap : 保存成cap文件,方便wireshark分析

抓取HTTP包

tcpdump -XvvennSs 0 -i eht0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854

0x4745为“GET”前两个字母“GE”,0x4854为“HTTP”前两个字母“HT”

tcpdump对截获的数据并没有彻底解析,使用-w参数保存用wireshark解析

来源

你可能感兴趣的:(tcpdump)