目录
一、tcpdump
1、作用
行tcpdump指令可列出经过指定网络界面的数据包文件头,可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你摘取有用信息。
由于它需要将网络接口设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息
其他抓包工具
wireshark,具有图形化和命令行两种版本,可以对tcpdump抓的包进行分析,其主要功能就是分析数据包。
ngrep,它将抓到的包数据以文本形式直接显示出来,适用于包数据包含文本的抓包分析(如HTTP、MySQL)
2、命令选项
3、tcpdump表达式
关于数据类型的关键字
包括host、port、net:
host 192.168.100.1表示一台主机,net 192.168.100.0表示一个网络网段,port 80 指明端口号为80,在这里如果没有指明数据类型,那么默认就是host
数据传输方向的关键字
包括src、dst、dst or src、dst and src,这些关键字指明了传输的方向,比如src 192.168.100.1说明数据包源地址是192.168.100.1。dst net 192.168.100.0指明目的网络地址是192.168.100.0,默认是监控主机对主机的src和dst,即默认监听本机和目标主机的所有数据
协议关键字
包括 ip、arp、rarp、udp
其他关键字
运算类型:or、and、not、!
辅助功能型:gateway、less、broadcast、greater
4、tcpdump捕获方式
tcpdump ip dst 192.168.10.1 and src 192.168.10.10 and port 80 and host ! www.baidu.com
5、常用的过滤条件
tcpdump可以支持逻辑运算符
tcpdump icmp and src 192.168.100.10 -i ens33 -n
过滤icmp报文并且源IP是192.168.100.10
过滤源地址是192.168.100.1并且目的地址是192.168.20.20的数据包或者ARP协议的包
二、wireshark
1、什么是wireshark
Wireshark是一个网络封包分析软件。网络封包分析软件的功能是捕获网络数据包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换
2、安装wireshark
Linux中有两个版本的wireshark,一个是 wireshark,这个版本是无图形化界面,基本命令是”tshark“。
一个是 wireshark-gnome(界面版本),这个版本只能安装在支持GUI功能的Linux的版本中。
注:这里的通过yum进行安装,需要提前做好epel源(即红帽操作系统额外拓展包),装上了 EPEL之后,就相当于添加了一个第三方源。官方的rpm repository提供的rpm包也不够丰富,很多时候需要自己编译那太辛苦了,而EPEL可以解决官方yum源数据包不够丰富的情况。
3、tshark 命令
tshark -f " icmp " -i ens33 -V -c 1
过滤icmp报文,并展开详细信息
4、图形化界面
三、Tcpdump和wireshark合用
Tcpdump解析报文信息没有wireshark详细,所以可以通过Tcpdump捕获数据并输出,再通过wireshark进行解析,输出文件格式为.pcap 或者其他
在虚拟机上通过wireshark 读取
使用ip.addr == [ip地址号]可以过滤掉无关ip
图形读取
用wireshark直接打开查看
总结
tcpdump和wireshark两种单以抓包的功能来看,是相似的,两者的命令行的选项也是有相同,但是tcpdump对数据包分析的能力不是很好,同时目前很多Linux内置安装了tcpdump这个工具,所以我们可以通过tcpdump把数据包抓出并存放到我们自定义的文件(.pcap)中,再通过把文件取出用wireshark进行分析排障