Linux|Linux抓包(wireshark+tcpdump)


文章目录

  • 一、Wireshark
    • 1. 安装wireshark工具
    • 2.打开Wireshark
    • 3. Wireshark基本使用
    • 4. 抓包信息
      • 1. 抓ping程序包
        • 请求信息
        • 响应信息
        • ARP协议
      • 2. 抓TCP三次握手、四次挥手
        • 三次握手
        • 四次挥手
    • 3.抓telnet包
      • 安装 telnet
      • 用 Woreshark抓包
  • 二、tcpdump工具
    • 1. 查看arp缓存
    • 2. tcpdump基本使用
      • 抓 ping包
      • 保存抓包数据到指定文件
      • 其它用法

一、Wireshark Wireshark是一款图形化的抓包软件,在LInux和Windows下都可以下载。
1. 安装wireshark工具 用命令安装 wireshark相关软件包
命令:yum -y install wireshark* -y
Linux|Linux抓包(wireshark+tcpdump)
文章图片

rpm -ql wireshark查看安装wireshark产生了哪些文件
Linux|Linux抓包(wireshark+tcpdump)
文章图片

2.打开Wireshark 直接通过命令打开
wireshark
Linux|Linux抓包(wireshark+tcpdump)
文章图片

或者是图形化页面点开就好
Linux|Linux抓包(wireshark+tcpdump)
文章图片

Linux|Linux抓包(wireshark+tcpdump)
文章图片

3. Wireshark基本使用 点击Interface List,就可以看到接口列表,选择需要抓哪个网卡的包
Linux|Linux抓包(wireshark+tcpdump)
文章图片

这里我选择ens33网卡,点击start开始抓包
Linux|Linux抓包(wireshark+tcpdump)
文章图片

Linux|Linux抓包(wireshark+tcpdump)
文章图片

我们ping我们的主机地址,看看抓包情况
Linux|Linux抓包(wireshark+tcpdump)
文章图片

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

4. 抓包信息 通过 ip.addr == [端口号]可以过滤掉无关ip
Linux|Linux抓包(wireshark+tcpdump)
文章图片

1. 抓ping程序包
请求信息 Linux|Linux抓包(wireshark+tcpdump)
文章图片

数据帧
Linux|Linux抓包(wireshark+tcpdump)
文章图片

链路层
Linux|Linux抓包(wireshark+tcpdump)
文章图片

网络层
Linux|Linux抓包(wireshark+tcpdump)
文章图片

应用层
Linux|Linux抓包(wireshark+tcpdump)
文章图片

响应信息 因为是ping的响应,要响应给windows,所以源变成了LInux本机,目的变成了windows。
接着是协议类型,ping的请求是8,响应变成了0
Linux|Linux抓包(wireshark+tcpdump)
文章图片

ARP协议 Linux|Linux抓包(wireshark+tcpdump)
文章图片

2. 抓TCP三次握手、四次挥手
三次握手 通过 Xshell连接Linux虚拟机
Linux|Linux抓包(wireshark+tcpdump)
文章图片

Linux|Linux抓包(wireshark+tcpdump)
文章图片

四次挥手 Linux|Linux抓包(wireshark+tcpdump)
文章图片

Linux|Linux抓包(wireshark+tcpdump)
文章图片

3.抓telnet包 安装 telnet
telnet是和ssh类似的,都是用来远程登录Linux服务器,ssh的端口号是22,telnet的端口号是23
安装命令:yum -y install telnet-server
安装完后要启动服务
命令:systemctl start telnet.socket
Linux|Linux抓包(wireshark+tcpdump)
文章图片

查看是否有telnet服务的端口号
命令:netstat -nltp | grep :23
Linux|Linux抓包(wireshark+tcpdump)
文章图片

查看该应用产生哪些文件
Linux|Linux抓包(wireshark+tcpdump)
文章图片

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

用 Woreshark抓包
抓包后发现,telnet传输的是明文数据。仔细找还能看到密码,所以这个命令基本是被淘汰了
Linux|Linux抓包(wireshark+tcpdump)
文章图片

二、tcpdump工具 tcpdump是 Linux下的抓包工具,但它是命令行的操作。用起来没有Wireshark方便
Linux|Linux抓包(wireshark+tcpdump)
文章图片

ARP:(地址解析协议IP-MAC)和RARP(逆地址解析协议MAC-IP)是某些网络接口(如以太网)使用的特殊协议,用来转换IP层和网络接口层使用的地址下层协议给上层协议提供了一些功能支撑,上层协议要依赖下层协议
1. 查看arp缓存 命令:arp -n
作用:查看arp缓存
arp缓存里记录了,我的主机曾经向拿台主机要过MAC地址
Linux|Linux抓包(wireshark+tcpdump)
文章图片

删除arp缓存
命令:arp -d [ip]
Linux|Linux抓包(wireshark+tcpdump)
文章图片

2. tcpdump基本使用 常用语法:tcpdump -i [网卡名] -nn host [主机ip]
  • -i :指定网络接口,对于多个网络接口有用
  • -n :显示IP地址,不查主机名。当DNS不起作用时常用到这个参数
  • -nn :不显示协议和端口名。即显示IP地址和端口
抓 ping包
Linux|Linux抓包(wireshark+tcpdump)
文章图片

Linux|Linux抓包(wireshark+tcpdump)
文章图片

每次询问的MAC地址都会保存到,arp缓存里
Linux|Linux抓包(wireshark+tcpdump)
文章图片

保存抓包数据到指定文件
通过 -w 选项可以将抓包数据保存到指定文件里,再通过Woreshark打开
命令:tcpdump -i [网卡名] -nn host [主机ip] -w [文件名]
Linux|Linux抓包(wireshark+tcpdump)
文章图片

Linux|Linux抓包(wireshark+tcpdump)
文章图片

找到保存抓包信息的文件,打开
Linux|Linux抓包(wireshark+tcpdump)
文章图片

Linux|Linux抓包(wireshark+tcpdump)
文章图片

其它用法
【Linux|Linux抓包(wireshark+tcpdump)】下面的命令可以查看所有送到主机hostname的数据包
tcpdump -i eth0 dst host [主机ip]

    推荐阅读