zoukankan      html  css  js  c++  java
  • sudo+SETENV(环境变量)提权

    sudo运行时默认会启用env_reset选项将从命令行设置的环境变量复原,因此通常情况下,当使用sudo命令时,通过本地修改环境变量也没法替换目标文件来进行提权,但如果sudo在配置时为用户设置了SETENV选项,情况就不一样了。SETENV会允许用户禁用env_reset选项,允许sudo使用当前用户命令行中设置的环境变量,如下图:sudo允许当前用户以root身份执行一个shell脚本,并为当前用户配置了SETENV,shell脚本是打印syslog最后几行。

    如果没有配置SETENV,这里是无法通过改环境变量把tail替换成一个vim命令来进行提权的。这里有SETENV,那么就可以设置环境变量

    一、从/bin目录复制一个vim,并命名为tail存在/tmp目录下

    二、通过下面的命令,将/tmp目录放置在PATH环境变量的最前面

    export PATH=/tmp:$PATH

    三、通过下面的命令即可运行我们伪造的tail命令,从而用vim进行提权

    sudo --preserve-env=PATH /usr/bin/check_syslog.sh

    --preserve-env会使用当前新的PATH作为环境变量,并禁用env_reset选项,从而达到先执行我们伪造的tail命令的目的

  • 相关阅读:
    docker容器的本质
    golang 算法题 : 二维数组搜索值
    golang 算法题 : 两数相加
    golang 开源代理
    golang vue 使用 websocket 的例子
    互联网技术部门该如何管理
    大数据清洗第一天
    本周总结
    信息领域热词分析性能分析
    本周总结
  • 原文地址:https://www.cnblogs.com/zlgxzswjy/p/15471061.html
Copyright © 2011-2022 走看看