在 tcpdump 上设置 SUID 位是否存在严重问题?

在 tcpdump 上设置 SUID 位是否存在严重问题?

我在远程机器上运行 tcpdump,并通过 SSH 将输出传输到本地机器上的 Wireshark。为了做到这一点,我必须在 tcpdump 上设置 SUID 位。

背景是,远程计算机是运行“Amazon Linux AMI 2012.09”的 Amazon EC2。在此图像上,没有 root 密码,无法以 root 身份登录。如果没有 TTY,则无法使用 sudo,因此必须设置 SUID。

在 tcpdump 上设置此位有什么实际风险?有必要这么担心吗?我是否应该在不捕获时取消设置它?

答案1

这意味着任何有权访问此计算机 shell 的人都可以使用它tcpdump来捕获流量。当我们谈论安全时,偏执并不是坏事。您可能最终会忘记您将其设置为 suid,并且有一天您会将 shell 访问权限授予您无法完全信任的人。我相信,您不希望这样。我认为您应该考虑使用从您的帐户sudo运行tcpdump。可以设置sudo不提示特定用户和特定命令输入密码。

答案2

根据您的评论请求,下面是我如何通过 sudo 将远程 tcpdump 传输到 wireshark:

ssh user@host sudo tcpdump -s0 -w - | wireshark -k -i -

注意:我添加了 s0 来捕获整个数据包。

刚刚制作了一个包装器脚本,它完全可以运行,但你只需要提供 ssh 凭据和一个可选的 tcpdump 过滤器。你可以从这里下载它这里

相关内容