从原始数据包中提取应用程序名称

从原始数据包中提取应用程序名称

听起来很愚蠢,但是您可以从数据包/pcap 中提取应用程序名称吗?

例如:如果数据包目的地是 chrome 进程,您可以从数据包中提取该信息吗?

答案1

进程名称或类似名称不是数据包的一部分。在许多情况下,人们可以查看数据包本身,以使用启发式方法确定应用程序协议的类型。还可以从数据包中提取源和目标 IP 地址以及端口。这可以用来对导致数据包的过程进行有根据的猜测,但这种猜测也可能是错误的。

答案2

IP 数据包标头不包含有关导致它们的进程的信息(如果有);不过,IP 数据包有效负载可能会。相同的数据包可能在不同的时间由不同的应用程序发送。

但是您可以(作为 root)询问 Linux 内核该地址的套接字属于哪个应用程序。

您可以通过 grep 查找eg的输出ss -ntup或者直接询问ss

ss -anp 'src = 192.168.122.3:22'
Netid             State             Recv-Q             Send-Q                           Local Address:Port                            Peer Address:Port              Process                                      
tcp               ESTAB             0                  0                                192.168.122.3:22                             192.168.122.1:58552              users:(("sshd",pid=27425,fd=4))             
tcp               ESTAB             0                  0                                192.168.122.3:22                             192.168.122.1:40662              users:(("sshd",pid=7228,fd=4),("sshd",pid=7217,fd=4))

相关内容