1、安装前系统信息
ifconfig查看系统网络接口情况。这里可以看到3个interface,ens160是正常使用的网口,lo是主机的loopback地址127.0.0.1。另外,由于centos安装在虚拟主机上,virbr0是KVM默认创建的一个Bridge,其作用是为连接其上的虚机网卡提供NAT访问外网的功能等。后续用tcpdump抓包使用的是ens160网络接口。
tcpdump --v命令查看系统是否已经安装tcpdump或者已经安装的版本。
若未安装,则通过yum install tcpdump安装即可。
2、默认命令启动抓包
这时可以用命令tcpdump启动抓包试试了....... 是不是满窗口的字符刷屏,ctrl+c可以让抓包停下来。tcpdump会显示有多少packets captured。用默认tcpdump命令抓包意义不大,我们需要借助命令参数过滤目标数据包,且保存下来供分析(一般在Linux主机不方便详细分析tcpdump抓取的数据包,采取的方式是把抓包保存后放到windows主机上使用wireshark分析)
3、使用tcpdump参数过滤目标报文
(1)使用tcpdump -i指定抓包的网络接口,如tcpdump -i ens160
(2)使用tcpdump host指定数据包发送或接收主机名称/ip地址, 如 tcpdump host 192.168.3.100。这里192.168.3.100是我随便指定的,没有相关的数据包,所以得到如下空空如也。更进一步可以使用src host 和 dst host来具体指定是数据包的源host还是接收host。tcpdump当然也可以过滤网段,比如tcpdump net 192.168
(3)使用tcpdump tcp port 或者 tcpdump udp port指定端口,比如tcpdump tcp port 23抓telnet报文,或者tcpdump tcp port 22抓ssh报文。这里也可以不写端口号,直接写成tcpdump tcp port ssh。
(4)使用tcpdump udp或者 tcpdump tcp、tcpdump icmp等命令,指定具体的协议抓包。注意的是ip、icmp、arp、rarp、tcp、udp这些选项等都要放到第一个参数的位置。
tcpdump具体参数还有很多,可参考tcpdump --h命令或网上有很多资源查找。
4、包数据保存和导出
tcpdump -i ens160 -w ./ssh_target_68.pcap
tcpdump -i ens160 -s0 -w ./ssh_target_all.pcap
第一个命令没有使用-s0即默认抓取数据包前68字节,第二个命令抓取全部报文。抓取的数据包被保存到pcap文件中,命令行不再回显。crtl+c停止抓包后,可以看到结果。
将pcap文件导出到windows wireshark即可查看分析如下