tcpdump的使用
tcpdump 介绍
tcpdump, a powerful command-line packet analyzer; and libpcap, a portable C/C++ library for network traffic capture.
Tcpdump prints out a description of the contents of packets on a network interface that match the boolean expression; the description is preceded by a time stamp, printed, by default, as hours, minutes, seconds, and fractions of a second since midnight. It can also be run with the -w flag, which causes it to save the packet data to a file for later analysis, and/or with the -r flag, which causes it to read from a saved packet file rather than to read packets from a network interface. It can also be run with the -V flag, which causes it to read a list of saved packet files. In all cases, only packets that match expression will be processed by tcpdump.
tcpdump 是一款用于截取网络分组,并过滤输出分组内容的工具。tcpdump 凭借强大的功能和灵活的截取策略,使其成为类 UNIX 系统下用于网络分析和问题排查的首选工具。 tcpdump 提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump 存在于基本的 Linux 系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备 root 权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。tcpdump 可以将网络中传送的数据包的 “头” 完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not 等逻辑语句来帮助我们去掉无用的信息。
tcpdump 常用命令解释
tcpdump [协议] [ 选项 ] [ -c 数量 ] [ -i 网络接口 ] [ -w 文件名 ] [ 表达式 ]
1 |
|
协议有TCP/UDP/ARP/IP/ETHER/ICMP等
tcpdump 参数实例
1 |
|
源端口不是22的数据包,抓取50个包后停止。(若不指定-c,默认不停止直到ctl+c)
1 |
|
抓取目的与原端口不是22的数据TCP数据包
1 |
|
抓取经由本地的数据包,排除22端口
抓DNS的数据包
1 |
|
文件回转(rotate)
1 |
|
-G
回转时间,单位是秒。-W
回转周期数,这里的100,回转100个周期
可以加上-C
文件大小(单位M),与-G
谁先到,先回转
other cmd
1 |
|
抓包小结
- ubuntu中默认混杂模式,可以抓到局域网中所有的包
- ICMP和ARP 就算是限定是TCP协议时,也会被抓到
- LLMNR