在查看 Wireshark 上的流量时,我注意到我的计算机每三秒通过广播地址向端口 8765 发送一个 UDP 数据包,内容为“*”(ASCII 中的 42)。这似乎不是对任何内容的响应。源端口会在每个数据包中发生变化。
我试图找出是什么发出了这个数据包,但没有成功。我尝试过:
- 停止我能想到的所有非重要服务。
- 添加一个 iptables 规则来丢弃数据包(这会停止数据包,但并不能帮助我了解是什么发出了这些数据包)。
- 添加一个 iptables 规则来停止转发,看看它是否以某种方式被我的电脑转发,但没有。
- 使用auditd和各种参数,但没有一个匹配,我甚至找不到
write(*,*,1)/send(*,*,1)/sendto(*,*,1,*,*)/sendmsg/sendmmsg
具有正确频率的。然而,我对auditd不熟悉。auditctl -a exit,always -F arch=b64 -S socket -F a0=2 -F a1=2
搜索 IPv4 UDP 套接字的创建。auditctl -a exit,always -F arch=b64 -S connect
只是为了寻找任何联系。auditctl -a exit,always -F arch=b64 -S write -S send -S sendto -F a2=1
匹配长度为 1 的系统调用send
。write
audictl -a exit,always -F arch=b64 -S sendmsg -S sendmmsg
- 以上皆用
-F arch=b32
代替。
- 使用 netstat/ss 但套接字可能寿命很短,所以它不会显示任何内容。
还有其他什么方法可以确定传输该数据包的是什么?如果它来自内核或内核模块怎么办?我怎么知道?