Wirewhark利用ssh/nc实现抓取Linux的网络包


概述

Wireshark是一个开源的网络数据包分析器,可以实时的从网络接口捕获数据包并分析。他支持多种协议类型,是最为流行的数据包分析器。

Wireshark支持Mac和Windows版本,但是对于Linux服务器上的包,以往只能通过服务器上tcpdump后,去离线分析数据包,较为不便。

之前的文章讲过利用rpcapd实现远程抓包https://blogs.92ac.cn/2024/08/06/rpcapd/, 这种方式要求在服务器上额外编译安装rpcapd。

这里再介绍其他的几种方式。

环境条件:

  1. Linux IP 192.168.3.2 ,安装了tcpdump
  2. Windows IP 192.168.3.3,已经安装了wireshark,开启安装了wsl2(笔者是用的Ubuntu24.04)

假如Wireshark.exe 的路径是C:\Program Files\Wireshark\Wireshark.exe, 将其转成wsl中的路径/mnt/c/Program Files/Wireshark/Wireshark.exe

1. ssh方式

ssh [email protected] tcpdump -U -s0 -w - | "/mnt/c/Program Files/Wireshark/Wireshark.exe" -k -i -

执行后,会打开一个wireshark的窗口,可以看到抓取的包。

2. nc方式

用 nc 监听9999,接收转发来的包

nc -l -p 9999 | "/mnt/c/Program Files/Wireshark/Wireshark.exe" -k -i - 

执行后,会打开一个wireshark的窗口,但里面的还没有任何信息

然后去抓取的目标机器上,执行下列命令,将tcpdump的包通过nc转发到Wireshark上

sudo tcpdump -w - | nc 192.168.3.3 9999

执行后,如果没有报错,就可以看到抓取的包。


Author: deepwzh
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source deepwzh !
  TOC