在Wireshark中按进程/ PID进行过滤

有没有一种方法来使用Wireshark根据特定的进程ID来过滤/遵循TCP / SSLstream?

我不明白 PID不会将它连接到networking上(一般来说),再加上Wireshark允许您查看networking上的内容 – 可能是所有通过networking进行通信的机器。 无论如何,进程ID在不同的机器上并不是唯一的。

以防万一您正在寻找一种替代方式,您使用的环境是Windows,Microsoft的networking监视器 3.3是一个不错的select。 它有进程名称列。 您可以使用上下文菜单轻松将其添加到filter,并应用filter。与往常一样,GUI非常直观。

你可以将wireshark中的端口号与netstat中的端口号进行匹配,这将告诉你监听该端口的进程的PID。

在Windows上,有一个实验性的构build,就像邮件列表中的“ 按本地进程名称筛选”所述

这对于监视某些进程尝试连接的位置来说是非常重要的,似乎在Linux上没有任何方便的方法来执行此操作。 不过,有几种解决方法是可能的,所以我觉得值得一提的是它们。

有一个叫做nonet的程序,它允许运行一个没有互联网访问的程序(我的系统上有大部分的程序启动程序)。 它使用setguid在组中运行一个进程,并设置一个iptables规则来拒绝来自这个组的所有连接。

更新:现在我使用一个更简单的系统,你可以很容易地用ferm来configuration可读的iptablesconfiguration,只需要使用sg程序来运行一个特定的程序组。 iptables也允许你重新路由stream量,所以你甚至可以路由到一个单独的接口或本地代理端口whith允许你过滤wireshark或直接从iptableslogging数据包,如果你不想禁用所有的互联网,而你正在检查交通。

使它适应在一个组中运行一个程序并且使用iptables切断执行生命周期的所有其他stream量并不是很复杂,然后你只能从这个进程中获取stream量。

如果我来写这篇文章,我会在这里发布一个链接。

在另一个说明中,你总是可以在虚拟机上运行一个进程,并嗅探正确的接口,以隔离它所做的连接,但这将是一个相当不好的解决scheme…

使用Microsoft消息分析器v1.4

从字段select器导航到ProcessId。

 Etw -> EtwProviderMsg --> EventRecord ---> Header ----> ProcessId 

右键单击并添加为列

使用netstat获取端口号:

 netstat -b 

然后使用Wiresharkfilter:

 tcp.port == portnumber 

在某些情况下,您无法通过进程ID进行筛选。 例如,在我的情况下,我需要嗅探一个进程的stream量。 但是我在configuration目标机器IP地址中发现,添加了filterip.dst==someipip.dst==someip 。 它不会在任何情况下工作,但对于一些它是有用的。

您可以在wireshark上使用以下命令示例检查端口号: –

tcp.port == 80

tcp.port == 14220