Linux抓包(wireshark+tcpdump)

Posted 何翰宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux抓包(wireshark+tcpdump)相关的知识,希望对你有一定的参考价值。

文章目录


一、Wireshark

Wireshark是一款图形化的抓包软件,在LInux和Windows下都可以下载。

1. 安装wireshark工具

用命令安装 wireshark相关软件包
命令:yum -y install wireshark* -y


rpm -ql wireshark查看安装wireshark产生了哪些文件

2.打开Wireshark

直接通过命令打开
wireshark


或者是图形化页面点开就好


3. Wireshark基本使用

点击Interface List,就可以看到接口列表,选择需要抓哪个网卡的包

这里我选择ens33网卡,点击start开始抓包

我们ping我们的主机地址,看看抓包情况

ping 工具使用的就是 ICMP协议,ICMP是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。它主要是用来提供有关通向目的地址的路径信息。

4. 抓包信息

通过 ip.addr == [端口号]可以过滤掉无关ip

1. 抓ping程序包

请求信息

数据帧

链路层


网络层


应用层

响应信息

因为是ping的响应,要响应给windows,所以源变成了LInux本机,目的变成了windows。
接着是协议类型,ping的请求是8,响应变成了0

ARP协议

2. 抓TCP三次握手、四次挥手

三次握手

通过 Xshell连接Linux虚拟机

四次挥手


3.抓telnet包

安装 telnet

telnet是和ssh类似的,都是用来远程登录Linux服务器,ssh的端口号是22,telnet的端口号是23

安装命令:yum -y install telnet-server

安装完后要启动服务

命令:systemctl start telnet.socket


查看是否有telnet服务的端口号
命令:netstat -nltp | grep :23


查看该应用产生哪些文件


测试telnet
测试时记得开发23端口或者关闭防火墙
关闭防火墙命令:systemctl stop firewalld
添加端口号:firewall-cmd --zone=public --add-port=[端口号]
注意:telnet 默认是不允许root用户登录的,只能登录普通用户

用 Woreshark抓包

抓包后发现,telnet传输的是明文数据。仔细找还能看到密码,所以这个命令基本是被淘汰了

二、tcpdump工具

tcpdump是 Linux下的抓包工具,但它是命令行的操作。用起来没有Wireshark方便

ARP:(地址解析协议IP-MAC)和RARP(逆地址解析协议MAC-IP)是某些网络接口(如以太网)使用的特殊协议,用来转换IP层和网络接口层使用的地址下层协议给上层协议提供了一些功能支撑,上层协议要依赖下层协议

1. 查看arp缓存

命令:arp -n
作用:查看arp缓存

arp缓存里记录了,我的主机曾经向拿台主机要过MAC地址

删除arp缓存
命令:arp -d [ip]

2. tcpdump基本使用

常用语法:tcpdump -i [网卡名] -nn host [主机ip]

  • -i :指定网络接口,对于多个网络接口有用
  • -n :显示IP地址,不查主机名。当DNS不起作用时常用到这个参数
  • -nn :不显示协议和端口名。即显示IP地址和端口

抓 ping包



每次询问的MAC地址都会保存到,arp缓存里

保存抓包数据到指定文件

通过 -w 选项可以将抓包数据保存到指定文件里,再通过Woreshark打开

命令:tcpdump -i [网卡名] -nn host [主机ip] -w [文件名]


找到保存抓包信息的文件,打开

其它用法

下面的命令可以查看所有送到主机hostname的数据包
tcpdump -i eth0 dst host [主机ip]

以上是关于Linux抓包(wireshark+tcpdump)的主要内容,如果未能解决你的问题,请参考以下文章

tcpdump-抓包工具-Linux

tcpdump抓包工具的基本使用

kali linux之wireshark/tcpdump

linux如何抓包

TCPDUMP 抓包 怎么查看 抓的包的内容

tcpdump+wireshark的使用教程,免证书抓包