tcpdump是一个用于截取网络分组,并输出分组内容的工具。凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具
tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具
tcpdump 支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息
- 使用了独立于系统的libpcap的接口。libpcap是linux平台下的网络数据包捕获函数包,大多数网络监控软件都以它为基础。
- tcpdump将打印网络接口上与自己定义的布尔表达式相匹配的信息包的包头部分。
- -w选项可以将抓包数据保存下来,利用wireshark等工具进一步分析。解码分析时,分析的大部分对象都是16进制,所以一般都会用该参数配合wireshark使用
- -r选线可以指定从文件中读取抓包数据,而不是从网络接口(网卡)中读取数据包。
- -c选项可以指定tcpdump捕获一定数量的数据包,但是SIGINT(终止进程、ctrl+c)或SIGTERM(软件终止信号、kill(1))可以让tcpdump提前中断。
- 可以通过原语来进行针对某一协议、地址、主机或者端口的过滤。
- 使用tcpdump需要有root权限。
- 网卡的混杂模式:是网卡的一种工作模式,一般在抓取网卡数据包时使用。
- device eth0 entered promiscuous mode 是指网卡 eth0 进入了混杂模式。
- device eth0 left promiscuous mode 网卡 eth0 离开了混杂模式。
- ifconfig eth0 promisc 设置网卡eth0为混杂模式
- ifconfig eth0 -promisc 取消网卡eth0的混杂模式
具体指令:
sudo tcpdump tcp -i ens18 -s 0 and net 10.240.17.44 -w ~/Desktop/taret.cap