赞
踩
在 Linux 系统中使用 Tcpdump 抓包后分析数据包不是很方便。
通常 Wireshark 比 tcpdump 更容易分析应用层协议。
一般的做法是在远程主机上先使用 tcpdump 抓取数据并写入文件,然后再将文件拷贝到本地工作站上用 Wireshark 分析。
还有一种更高效的方法,可以通过 ssh 连接将抓取到的数据实时发送给 Wireshark 进行分析。
经过我的测试,已经实现把 Tcpdump 抓到的数据包转到 Windows 环境中用 Wireshark 打开。
思路:Tcpdump 抓包并保存包数据文件,再把保存的包数据文件拷贝到 Windows 中,最后使用 Windows 上安装的 Wireshark 打开包数据文件。
使用工具:Xshell (使用 Xshell 连接远程主机)+ Xftp (把远程主机上的包数据拷贝到本地)
使用 Xshell 和 Xftp 连接远程主机的过程省略……
假设你已经很熟悉在 Linux 环境下使用 tcpdump 命令和在 Windows 环境下使用 wireshark 基础操作了。
tcpdump 官方文档:
tcpdump(1) man page | TCPDUMP & LIBPCAP
比如:我要在远程主机上抓取 eth0 网卡的 20 条 tcp 数据包,并保存为 test.pcap 文件:
tcpdump -i eth0 -c 20 tcp -w test.pcap
上面的命令,我是 cd 进入 /usr/local/tcpdump 目录下执行的。
所以,我用 Xftp工具打开此目录后就看到生成的包文件 test.pcap
用 Xftp 工具把 Linux 中的文件 test.pcap 下载到 Windows 中
接下来使用 Wireshark 打开 test.pcap 包文件,此时即可分析抓到的 20 条 tcp 数据包
思路:Windows 环境中使用 ssh 命令实现远程主机登录,登录后用 tcpdump 命令抓包并把数据包设置标准输出,运行 wireshark 程序从标准输入读取包数据。
工具:cmd 控制台 + Wireshark
2.1 先在打开的 cmd 控制台中测试这条命令:ssh root@xxx.xxx.xxx.xxx -p 22
ssh 命令用于通过 SSH 协议连接到远程主机,实现远程登录和执行命令,它加密会话中的所有通信,确保数据传输的安全性。
ssh root@xxx.xxx.xxx.xxx -p 22
参数说明
[root@]xxx.xxx.xxx.xxx
:要连接的远程主机的用户名和主机名。根据提示输入远程主机的密码,登录远程主机
2.2 登录成功后在远程主机抓取 eth0 网卡的 20 条 tcp 数据包的命令
tcpdump -i eth0 -c 20 tcp
通过以上两步可以知道目前和远程主机是建立连接的。
2.3 Wireshark 命令
在 wireshark 官网找到文档,选择自己需要的命令
线鲨(1) (wireshark.org)https://www.wireshark.org/docs/man-pages/wireshark.html比如:我后续会新打开 wireshark 安装目录进入 cmd 控制台,输入: Wireshark.exe -k -i -
命令拆分,说明:
(1)Wireshark.exe(可以看看你的安装目录是不是这个名称),在 cmd 控制台启动 wireshark 应用程序
(2)-k -i -
官网文档中说:-k 是立即捕获会话;-i - 表示从标准输入读取数据。
如果在 cmd 控制台执行命令:Wireshark.exe -k -i -
命令则会打开 Windows 中安装的 wireshark 程序并开始监听(-i - 从标准输入读取数据)。
命令组合初期的样子:
ssh root@xxx.xxx.xxx.xxx -p 22 tcpdump -i eth0 -c 20 tcp Wireshark.exe -k -i -
看起来是这个样子,但现在有个问题是“抓包的数据怎么传送?”,所以组合后的命令还不完整,接下来对 tcpdump 的抓包命令进行改进。查看 tcpdump 官方文档。
通过文档可以知道 -l -w - 对我接下来有用。
比如:抓取 eth0 网卡的 20 条 tcp 数据包输出到标准输出。
命令是:tcpdump -i etho -c 20 tcp -l -w -
回头看刚才的 “Wireshark.exe -k -i -”是从标准输入读取数据,那么现在“tcpdump -i etho -c 20 -l -w -”是输出到标准输出,再结合 ssh 命令则可以实现:远程 + 输出包数据 + 读取包数据
新打开一个wireshark安装目录的 cmd 控制台,输入命令:
ssh root@xxx.xxx.xxx.xxx -p 22 "tcpdump -i eth0 -c 20 tcp -l -w -" | Wireshark.exe -k -i -
接着 cmd 控制台会提示让输入登录远程主机的密码,同时 Wireshark 程序启动。
输入密码后回车,远程连接主机成功,然后执行 tcpdump 抓包,同时包数据在 wireshark 程序中呈现。
方式3参考下面的博客,但是没有成功。
因为方式一和方式二已经够用了,所以后续在测试方式三……
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。