我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!!
一、劫持环境变量提权
1、提权背景
???????因为system函数是继承环境变量,可以通过替换环境变量可以达到执行任意命令。
2、提权原理
???????创建一个cat文件,并添加设置环境变量PATH为当前cat文件的所在目录,那么在执行cat命令的时候会优先从当前目录下查找二进制程序。所以原本的cat命令会被劫持,就可以执行任意命令!!!
3、提权限制
???????需要结合root下设置了suid二进制可执行文件中的某命令 ,简单地说就是需要结合suid漏洞
3、提权测试
在tmp目录下建立一个文件cat,然后开启一个shell
第一步: 在当前tmp目录下创建一个文件cat echo "/bin/bash">cat && chmod 777 cat
第二步: 查看当前环境变量 echo $PATH
第三步: 把当前tmp目录临时增加到环境变量 export PATH=.:$PATH
如下图所示,设置了PATH,那么在执行cat命令的时候会优先从当前目录下查找二进制程序。所以原本的cat命令会被劫持,就可以执行任意命令!!!
第四步: 单独执行cat命令,运行shell【失败】 第五步: 结合上一篇的suid-demo进行提权
如下图所示,因为上一篇中suid-demo是一个二进制的可执行文件,且在root下设置了suid临时权限,同时源码中还存在cat命令,又结合了我们此处的cat命令劫持,那么这里的cat命令执行的是!/bin/bash开启了一个shell
|