Linux下抓包工具tcpdump的使用

知道抓包的基本都知道Wireshark,但是没做过服务器运维或者无线破解的却很少知道Linux下有个抓包利器tcpdump.

之所以是利器不仅仅是抓包功能的全面,更重要的是命令行的操作,快捷方便极客。


如上图基本的命令格式。系统一般自带,没有的自行谷歌安装命令。


先看看tcpdump的具体参数及意义:
 
-i:指定tcpdump监听的网络接口
 
-s:指定要监听数据包的长度 
 
-c:指定要监听的数据包数量,达到指定数量后自动停止抓包
 
-w:指定将监听到的数据包写入文件中保存
 
-A:指定将每个监听到的数据包以ACSII可见字符打印
 
-n:指定将每个监听到数据包中的域名转换成IP地址后显示
 
-nn:指定将每个监听到的数据包中的域名转换成IP、端口从应用名称转换成端口号后显示

-v :输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;

-vv :输出更详细的报文信息

-e:指定将监听到的数据包链路层的信息打印出来,包括源mac和目的mac,以及网络层的协议
 
-p:将网卡设置为非混杂模式,不能与host或broadcast一起使用
 
-r:指定从某个文件中读取数据包
 
-S:指定打印每个监听到的数据包的TCP绝对序列号而非相对序列号


下边简单介绍一些常用的,顺便备份一下以待便用。

默认启动

tcpdump

直接启动tcpdump,抓eth0接口上流过的所有数据包。

 

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

tcpdump -i eth1

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

监视指定主机的数据包

打印所有进入或离开Kali的数据包.

tcpdump host Kali

也可以指定ip,例如截获所有192.168.0.22 的主机收到的和发出的所有的数据包

tcpdump host 192.168.0.22 

非 : ! or not
且 : && or and
或 : || 或 or

打印Kali与 hot 或者与 cool 之间通信的数据包

tcpdump host Kali and \( hot or cool \)

截获主机192.168.0.1 和主机192.168.0.2 192.168.0.3的通信

tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) 

如果想要获取主机192.168.0.1除了和主机192.168.0.2之外所有主机通信的ip包,使用命令:

tcpdump ip host 192.168.0.1 and ! 192.168.0.2

截获主机hostname发送的所有数据

tcpdump -i eth0 src host hostname

监视所有送到主机hostname的数据包

tcpdump -i eth0 dst host hostname

监视指定主机和端口的数据包

如果想要获取主机192.168.0.1接收或发出的telnet包,使用如下命令

tcpdump tcp port 23 and host 192.168.0.1

对本机的udp 123 端口进行监视 (123 ntp的服务端口)

tcpdump udp port 123 

比如指定端口号9996上做NetFlow流量监控,需要采集数据:

 tcpdump -i eth0 -nnA port 9996 -c 2000 -w aa.cap (-c指定抓包数目,-w将抓取数据输出保存到当前目录下的aa.cap文件)

命令可以根据需求自由选择,把数据包保存再拷出来,然后用wireshark进行图形查看更利于分析。

猜你喜欢

转载自blog.csdn.net/liushulin183/article/details/71512356
今日推荐