【发布时间】:2014-08-30 18:51:43
【问题描述】:
我正在研究 Set-UID Privileged Programs,似乎一个程序以其自己的所有者权限执行。 示例:passwd 可以读/写影子文件,因为它属于 root 用户。我如何才能找到其他程序的此类信息?
【问题讨论】:
我正在研究 Set-UID Privileged Programs,似乎一个程序以其自己的所有者权限执行。 示例:passwd 可以读/写影子文件,因为它属于 root 用户。我如何才能找到其他程序的此类信息?
【问题讨论】:
当您为可执行文件设置用户标识(4755 模式)权限时,运行该文件的进程将根据文件的所有者获得访问权限。
在这种情况下,您将 /bin/zsh 复制为 root 用户,然后设置 4755 模式,/tmp/zsh 因此将授予运行文件的用户 root 权限而不是用户权限。
此特殊权限允许用户访问通常只有所有者才能访问的文件和目录。
您是否尝试过按要求完成?
【讨论】:
适当地使用getuid(2)、geteuid(2)、getresuid(2)和对应的setuid(2)、setreuid(2)。另请参阅capabilities(7) 和credentials(7) 以及仔细execve(2)。阅读proc(5)
阅读Setuid 维基页面。运行 setuid 可执行文件的进程可以调用seteuid 来获得特权。
【讨论】:
root,你可以做像mkdir /hacked这样的普通用户做不到的事情。 (记得自己清理。)
/tmp 文件系统经常被挂载,因此二进制文件上的 setuid 位在那里不受尊重。这是一项安全功能,可精确禁用此类黑客攻击。 mount | grep nosuid