共计 1484 个字符,预计需要花费 4 分钟才能阅读完成。
导读 | 什么是 tcpdump?tcpdump 命令 –> 用来将网络中传送的数据包的 ” 头 ” 完全截获下来提供分析,常见的有 Wireshark。在 Linux 中输入命令 man tcpdump 给出的定义如下所示: |
tcpdump – 转储网络上的数据流
是不是感觉很懵?我们用通俗、形象、学术的表达方式来全方位描述 tcpdump:
该命令支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not 等逻辑语句来帮助你去掉无用的信息。tcpdump 就是一种免费的网络分析工具,尤其其提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump 存在于基本的 FreeBSD 系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备 root 权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。经典的系统管理员分析工具!
tcpdump 命令中几种关键字:
1) 抓取回环网口的包:
$ tcpdump -i lo
2) 防止包截断的方法:
$ tcpdump -s 0
3) 以数字显示主机及端口:
$ tcpdump -n
$ tcpdump tcp -i eth1 -t -s0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
1)tcp: # ip,icmp,arp,rarp,udp 这些选项要放第一个参数,用来过滤数据报的类型
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 文件,方便用 wireshark 工具进行分析
$ tcpdump host 192.168.0.1 and /(192.168.0.2 or 192.168.0.3 /)
# 截取主机 1 与主机 2 或 3 之间的通信包
$ tcpdump ip host 192.168.0.1 and ! 192.168.0.2
# 截取主机 1 除了和主机 2 之外所有主机通信的 ip 包
$ tcpdump tcp port 23 host 210.27.48.1
# 截取主机 192.168.0.1 接收或发出的 telnet 包
$ tcpdump -i eth0 host ! 192.168.0.1 and ! 192.168.0.2 and dst port 80
# 截获除了主机 1、2 外访问本机 http 端口的数据包