本文共 1591 字,大约阅读时间需要 5 分钟。
原文:
译者:
这个讲义的主要目标就是来讨论特权程序,为什么需要他们,他们如何工作,以及它们有什么安全问题。特权程序是可以给予用户额外权限的程序,这些权限超出了用户已有的权限。例如,Web 服务器是特权程序,因为他允许远程用户访问服务端的资源;Set-UID 程序也是个特权程序,因为他允许用户在程序执行期间获得 ROOT 权限。
这篇讲义中,我们会专注于 Set-UID 的机制,并且在我们的案例学习中使用它。但是,我们在这里讨论的许多安全原则也可以用在其他特权程序上。
/etc/shadow
中,普通用户不可读写。但是,passwd
程序允许用户修改它们自己的密码。也就是,当用户执行passwd
,它们可以突然修改/etc/shadow
,并且用户只能修改/etc/shadow
中的一项,但不是其他人的条目。如何实现?exec
系列函数之一,来执行文件(程序)时,进程相关的用户和组标识符会发生改变。如果执行的文件是个 Set-UID 文件,进程的有效和保存的 UID 会设为所执行文件的所有者。如果所执行文件是个 Set-GID 文件,有效 UID、保存的 UID 以及有效 GID、保存的 GID 不会改变。passwd
、chsh
和su
程序需要为 Set-UID 程序?如何打开 Set-UID 位:
% chmod 4755 file ---> -rwsr-xr-x
Set-UID 在 Minix 中如何实现?
/* This is the per-process information */ EXTERN struct fproc { uid_t fp_realuid; /* real user id */ uid_t fp_effuid; /* effective user id */ gid_t fp_realgid; /* real group id */ gid_t fp_effgid; /* effective group id */ ...}
Set-UID 机制的恶意使用:
% cp /bin/sh /tmp % chmod 4777 /tmp/sh
由此,攻击者创建了 Set-UID SHell 程序,你是这个程序的所有者。因此,当攻击者之后再运行 Shell 时,它使用你的权限运行。
chown
来将文件所有者修改为任何用户?转载地址:http://gdjko.baihongyu.com/