译文声明:
本文为翻译文章,原文地址:http://www.hackingarticles.in/linux-privilege-escalation-using-path-variable/
介绍
PATH是Linux和类Unix操作系统中的的环境变量,它指定可执行程序的所有bin和sbin存储目录。当前用户在终端上运行任何命令时,它会向shell发送请求以在PATH变量中搜索可执行文件来响应用户执行的命令。超级用户通常还可以使用/sbin和/usr/sbin以便于执行系统管理命令。
查看当前用户的PATH:
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
如果PATH中出现了”.”,则表明当前用户可以执行当前目录中的二进制文件/脚本文件,对于攻击者来说,这可能是一个很好的提权技术。这是因为管理员在编写程序时缺乏注意 ,没有指定程序的完整路径。
方法 1
Ubuntu LAB SET_UP
目前,我们位于/home/raj目录,我们将在其中创建一个名为/script的新目录。现在在脚本目录中,我们将编写一个小型c程序来调用系统二进制文件的函数。1
2
3
4pwd
mkdir script
cd /script
nano demo.c
在demo.c文件中写入如下代码1
2
3
4
5
6
7
void main(){
setuid(0);
setgid(0);
system("ps");
}
然后使用gcc编译demo.c文件,并将编译文件提升到SUID权限1
2
3
4ls
gcc demo.c -o shell
chmod u+s shell
ls -la shell