查找 setuid 二进制文件来执行 Linux 服务器强化 - Linux 安全
本教程的目的是在 Linux 上查找 setuid 二进制文件。您的 Linux 服务器安装的软件包很可能比您真正需要的多。更糟糕的是,这些额外的软件包可能包含一些打开了 setuid 和 setguid 的二进制文件。
在 Linux 系统上,某些二进制文件具有 setuid 权限,这是一种特殊的 Linux 权限,它会导致可执行文件不以启动它的用户的权限运行,而是以文件所有者的权限运行。
如果系统的一个或多个二进制文件设置了 setuid 权限,这可能会导致不必要的风险,因为某些 shell 用户利用此漏洞获取 root 权限可能只是时间问题。
在本教程中您将学习:
如何在 Linux 上查找 setuid 二进制文件
如何从二进制文件中删除 setuid 和 setgid 权限
通过消除 setuid 和 setgid 二进制文件来强化服务器
按照以下步骤编译系统上具有 setuid 或 setgid 权限集的二进制文件列表。
以下 Linux 命令使用 setuid 创建系统上所有可执行文件的列表。
# find / * -perm -4000 -type f -exec ls -ld {} \; > setuid.txt
由于前面的示例搜索系统上的每个文件,因此您可能会发现将搜索限制在通常存储二进制文件的目录(例如
/usr/bin
)中会更有效。# find /usr/bin * -perm -4000 -type f -exec ls -ld {} \; > setuid.txt
接下来,您可以获得所有具有 setgid 权限的文件的列表。
# find / * -perm -2000 -type f -exec ls -ld {} \; > setgid.txt
仔细查看
setuid.txt
和setgid.txt
中列出的文件,并使用以下命令从您希望的任何二进制文件中删除“s”位:# chmod a-s /path/to/binary/file
警告
请记住,您不必(也不应该)从找到的所有二进制文件中删除 setuid 和 setgid 权限。您应该只从未使用的二进制文件开始。
通过从可执行二进制文件中删除 setuid 和 setgid,您不会使该可执行文件变得不可用;但是,只有超级用户才能通过执行这些二进制文件来将其付诸实践。
结束语
在本教程中,我们了解了如何在 Linux 上查找 setuid 二进制文件。这些文件包含特殊权限,如果在错误的文件上使用,可能会为具有常规权限的用户提供漏洞。从不需要的二进制文件中删除 setuid 和 setgid 权限将有助于强化您的 Linux 服务器。