听起来很愚蠢,但是您可以从数据包/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))