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权限
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】