# Tcpdump截图
# Tcpdump简介
Tcpdump抓包工具是一款非常好用的系统工具软件,Tcpdump抓包工具最新版经过破解后,彻底消除了广告弹窗,同时完全不需要付费就可以使用,有需要的就来Tcpdump数据抓包免费版下载!
Tcpdump软件介绍
Tcpdump是Linux平台下一款非常知名的强大的网络数据抓包的分析工具,它可以将网络中传送的数据包完全截获下来提供分析。支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。其总的输出格式为:系统时间 来源主机.端口 > 目标主机.端口 数据包参数。作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的工具之一。
Tcpdump软件特色
参数
tcpdump支持相当多的不同参数,如使用-i参数指定tcpdump监听的网络接口,这在计算机具有多个网络接口时非常有用,使用-c参数指定要监听的数据包数量,使用-w参数指定将监听到的数据包写入文件中保存,等等。
然而更复杂的tcpdump参数是用于过滤目的,这是因为网络中流量很大,如果不加分辨将所有的数据包都截留下来,数据量太大,反而不容易发现需要的数据包。使用这些参数定义的过滤规则可以截留特定的数据包,以缩小目标,才能更好的分析网络中存在的问题。tcpdump使用参数指定要监视数据包的类型、地址、端口等,根据具体的网络问题,充分利用这些过滤规则就能达到迅速定位故障的目的。请使用man tcpdump查看这些过滤规则的具体用法。
安全
显然为了安全起见,不用作网络管理用途的计算机上不应该运行这一类的网络分析软件,为了屏蔽它们,可以屏蔽内核中的bpfilter伪设备。一般情况下网络硬件和TCP/IP堆栈不支持接收或发送与本计算机无关的数据包,为了接收这些数据包,就必须使用网卡的混杂模式,并绕过标准的TCP/IP 堆栈才行。在FreeBSD下,这就需要内核支持伪设备bpfilter。因此,在内核中取消bpfilter支持,就能屏蔽tcpdump之类的网络分析工具。
并且当网卡被设置为混杂模式时,系统会在控制台和日志文件中留下记录,提醒管理员留意这台系统是否被用作攻击同网络的其他计算机的跳板。
May 15 16:27:20 host1 /kernel: fxp0: promiscuous mode enabled
虽然网络分析工具能将网络中传送的数据记录下来,但是网络中的数据流量相当大,如何对这些数据进行分析、分类统计、发现并报告错误却是更关键的问题。网络中的数据包属于不同的协议,而不同协议数据包的格式也不同。因此对捕获的数据进行解码,将包中的信息尽可能的展示出来,对于协议分析工具来讲更为重要。昂贵的商业分析工具的优势就在于它们能支持很多种类的应用层协议,而不仅仅只支持tcp、udp等低层协议。
解码
从上面tcpdump的输出可以看出,tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。
软件教程
1、默认系统里边没有安装有tcpdump的,无法直接使用
2、里我们可以使用yum来直接安装它
yum install -y tcpdump
3、如果忘记了软件的用法,可以使用 tcpdump --help 来查看一下使用方法
4、一般我们的服务器里边只有一个网卡,使用tcpdump可以直接抓取数据包,但是这样查看太麻烦了,所以都会添加参数来进行获取的。
例如我截取本机(192.168.31.147)和主机114.114.114.114之间的数据
tcpdump -n -i eth0 host 192.168.31.147 and 114.114.114.114
5、还有截取全部进入服务器的数据可以使用以下的格式
tcpdump -n -i eth0 dst 192.168.31.147
或者服务器有多个IP 可以使用参数
tcpdump -n -i eth0 dst 192.168.31.147 or 192.168.31.157
6、抓取全部进入服务器的TCP数据包使用以下的格式,大家可以参考下
tcpdump -n -i eth0 dst 192.168.31.147 or 192.168.31.157 and tcp
从本机出去的数据包
tcpdump -n -i eth0 src 192.168.31.147 or 192.168.31.157
tcpdump -n -i eth0 src 192.168.31.147 or 192.168.31.157 and port ! 22 and tcp
或者可以条件可以是or 和 and 配合使用即可筛选出更好的结果。
相关介绍
一、抓取特定网卡 80端口的链接情况:
1、我们先用ifconfig查看网卡名称:
2、输入下来命令后,打开百度网页:
可以捕获到如下信息,截取一部分:
关于上面输出的内容,格式注释如下:
第二列:网络协议 IP
第三列:发送方的ip地址+端口号,其中 221.5.75.35是 ip,而 http是端口号,即80
第四列:箭头 >, 表示数据流向
第五列:接收方的ip地址+端口号,其中 localhost.localdomain.是 ip,本机,而 42884是端口号。
第六列:冒号
第七列:数据包内容,包括Flags 标识符,seq 号,ack 号,win 窗口,数据长度 length,其中 [P.] 表示 PUSH 标志位为 1。
其中Flags 标识符有以下几种:
[S] : SYN(开始连接)
[P] : PSH(推送数据)
[F] : FIN (结束连接)
[R] : RST(重置连接)
[.] : 没有 Flag,由于除了 SYN 包外所有的数据包都有ACK,所以一般这个标志也可表示 ACK
二、如果你觉得命令行不习惯,还是喜欢用wireshark来查看数据包,那么你还可以使用tcpdump来保存.cap文件,然后导出cap文件,就可以用wireshark软件来打开查看了。
tcpdump-i ens33 port80-w ./20210616.cap(左右滑动一下)
注释:
-w:参数指定将监听到的数据包写入文件中保存,file.cap就是该文件。
./:保存的路径。
通过ls,可以看到该文件已生成:
输入linux服务器ip地址(即我虚拟机的ip地址)、账号、密码
下载cap文件:
下载到window物理机上:
双击,我们就可以使用wireshark来查看数据包了
三、基于协议进行过滤,比如就只抓起icmp报文。
tcpdump icmp
输完上述命令后,我打开网页,又进行了ping测试,先ping8.8.8.8,然后中止了,再ping 114.114.114.114.
来看看,命令输出的结果:
23:05:28.009283 IP http://public1.114dns.com > localhost.localdomain: ICMP echo reply, id 24125, seq 3, length 64
四、-n参数
上面我们看到了,ping 114.114.114.114,tcpdump输出显示是域名形式,如果我们希望显示ip地址,可以加一个参数:-n (即不把ip转化成域名,直接显示 ip,避免执行 DNS lookups 的过程,速度会快很多)
tcpdump icmp -n
五、捕获特定的目的IP地址的数据包。
我在linux服务器上进行ping多个地址(114.114.114.114、223.5.5.5、223.6.6.6),然后我tcpdump只需114.114.114.114的。
tcpdumpicmp-nanddsthost114.114.114.114(左右滑动一下)
and:后面就是加了限制条件,只捕获指定的目的ip地址为114.114.114.114的报文。
软件评测
TcpDump最新版是一款优秀的网络数数分析软件。TcpDump提供了足够的参数来让我们选择如何处理得到的数据,同时不带任何参数的TcpDump将搜索系统中第一个网络接口,并显示它截获的所有数据。TcpDump最新版可以根据使用者的定义对网络上的数据包进行截获的包进行分析,软件以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的工具之一。