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)的主要内容,如果未能解决你的问题,请参考以下文章