Linux提权1
公司的实训平台可以实现仿真环境练习,省去了每次搭环境的时间,直接利用平台实操学习
本次练习Linux 环境变量提权
实验原理
$PATH是Linux和类Unix操作系统中的环境变量,它指定了存储所有可执行程序的bin和sbin目录。当用户在终端运行任何命令时,它向shell发出请求,在环境变量的帮助下搜索可执行文件以响应用户执行的命令。超级用户通常还具有/sbin和/usr/sbin条目,以便轻松执行系统管理命令。
在Shell输入命令时,Shell将按PATH环境变量中的路径依次去找命令,会执行最先找到的命令。若是PATH中加入了当前目录,也就是【.】符号,则可能会被黑客利用。例如在/tmp目录下黑客新建了一个恶意文件ls,若root用户在/tmp目录下运行ls命令时,那么将会运行黑客创建的恶意文件。
实验步骤
攻击机先用普通用户登录目标设备
查找具有root权限的SUID文件,
find / -user root -perm -4000 -exec ls -ldb {} \;
发现/test文件,且具有执行权限
尝试执行test文件
发现test会调用cat命令,此时test文件具有suid权限,如果借助环境变量的执行顺序,再伪造一个cat文件,把cat文件伪造成/bin/bash,那么test调用cat时就会获取一个root权限的shell
测试发现在tmp目录下有权限生成cat文件
赋予cat文件可执行权限
查看环境变量信息
尝试将伪造的cat文件所在路径添加到环境变量中
再次执行test文件,成功获取root权限