软链接提权的原理

低权限用户能够以 root 用户的权限执行某个脚本,该脚本中又使用到了诸如 chown 等命令修改文件的权限,且该文件又能够被低权限的用户所修改。因此低权限的用户可以删除该文件,然后创建一个同名的文件,但是这个文件是指向一个高权用户才能修改的文件,例如 /etc/passwd。这样在低权用户在执行命令的时候就能够修改 /etc/passwd 这个文件的权限了,这样就相当于低权限用户能够越权操作了。

实验验证

  • Linux上创建一个低权限用户 testuser,然后创建一个文件 sudotest,该文件的属主是 testuser

  • 创建一个脚本文件 test.sh,该脚本的属主是 testuser2testuser 有权限执行该脚本。 配置 sudo 免密切换执行,使得 testuser 能够免密切换到 root 执行 test.sh



  • 使用 root 用户在 /etc 目录下创建文件 zsudotest,然后切换到 testuser用户,删除 sudotest 文件,然后创建一个软链接指向 /etc/zsudotest



  • 执行脚本,可以看到脚本执行完成之后,本来是高权用户的文件/etc/zsudotest的属主被修改为了低权用户。



问题规避

针对这种提权的问题,我们可以有如下的方式来减少提权的风险:

  • 对于 chown 命令,我们使用的时候可以使用参数 -h,这样的话只会修改软链接这个文件的权限,不会修改链接到的文件的权限。
  • 如果还有其它的高危命令,比如 rmmv 这些命令,最好是能够切换到文件对应的用户,然后再执行操作

Linux sudo 提权之软链接攻击的更多相关文章

  1. Linux常见提权

    常见的linux提权 内核漏洞提权 查看发行版 cat /etc/issue cat /etc/*-release 查看内核版本 uname -a 查看已经安装的程序 dpkg -l rpm -qa ...

  2. 实战中的sudo提权漏洞的使用姿势(CVE-2021-3156)

    实战中的sudo提权漏洞的使用姿势 免责声明: 0x00 漏洞概述 0x01 漏洞原理 0x02 受影响版本 0x03 不受影响版本 0x04 漏洞复现(centos) 复现POC1: 复现POC2: ...

  3. 2019-10-16,sudo提权漏洞(CVE-2019-14287)实现

    sudo是linux系统命令,让普通账号以root身份执行某些命令,比如,安装软件,查看某些配置文件,关机,重启等,如果普通用户需要使用sudo需要修改配置文件,/etc/sudoers,将sudo使 ...

  4. [提权]sudo提权复现(CVE-2019-14287)

    2019年10月14日, sudo 官方在发布了 CVE-2019-14287 的漏洞预警. 0x00 简介 sudo 是所有 unix操作系统(BSD, MacOS, GNU/Linux) 基本集成 ...

  5. sudo 提权漏洞(CVE-2019-14287)复现 (10.16 第二十二天)

    sudo是Linux系统命令,让普通账号以root身份去执行某些命令,比,安装软件.查看某些配置文件.关机.重启等操作,如果普通账号需要使用sudo需要修改配置文件/etc/sudoers,将sudo ...

  6. sudo 提权漏洞(CVE-2019-14287)复现

    (该文参考网络他人资料,仅为学习,不许用于非法用途) 一.环境 1.sudo版本小于1.8.28的Linux系统 2.sudo 是Linux系统命令,让普通账号以root身份去执行某些命令,比如:安装 ...

  7. linux 全自动提权 exp perl脚本

    linux 全自动提权 exp perl脚本 作者: admin 日期: 2013/01/19发表评论 (0) 查看评论   国外流传过来的 地址 http://dl.packetstormsecur ...

  8. Linux下提权常用小命令

    有些新手朋友在拿到一个webshell后如果看到服务器是Linux或Unix操作系统的就直接放弃提权,认为Linux或Unix下的提权很难,不是大家能做的,其实Linux下的提权并没有很多人想象的那么 ...

  9. Ubuntu无法sudo提权,报当前用户不在sudoers文件中错误

    Ubuntu安装后默认root不能登陆系统,密码也是随机生成,其他用户使用root权限,可以使用sudo提权,前提是该用户在/etc/sudoers配置列表中. 但是有时用户名从/etc/sudoer ...

  10. ansible使用普通用户免密登陆+sudo提权

    前提:从ansible控制端使用test用户可以免密登陆所有被控制端,并且被控端test用户支持sudo提权 # ansible主机清单 cat /etc/ansible/hosts [online- ...

随机推荐

  1. 最详细CentOS7.6安装openGauss5.0.3教程

    一.环境准备 1.1 主机信息 项目 内容 操作系统 CentOS7.6 IP 192.168.4.201 主机名 opgs201 CPU 8core 内存 16GB 磁盘1 100GB 1.2 操作 ...

  2. 抽象队列同步器AQS

    AQS是AbstractQueuedSynchronizer的简称,即抽象队列同步器,从字面上可以这样理解: 抽象:抽象类,只实现一些主要逻辑,有些方法由子类实现: 队列:使用先进先出(FIFO)的队 ...

  3. Machine Learning Week_7 Support Vector Machines

    目录 1 Large Margin Classification 1.1 Optimization Objective 1.1 Logistic Regresson 1.2 Cost 1.3 Supp ...

  4. KNN算法:近朱者赤,近墨者黑

    文章目录 1.一个例子 2.算法原理 3.算法的优缺点 3.关于 K 的选取 4.代码实现 今天我要讲的这个算法是最近邻算法(K-NearestNeighbor),简称 KNN 算法. 1.一个例子 ...

  5. 为数据集而生的 SQL 控制台

    随着数据集的使用量急剧增加,Hugging Face 社区已经变成了众多数据集默认存放的仓库.每月,海量数据集被上传到社区,这些数据集亟需有效的查询.过滤和发现. 每个月在 Hugging Face ...

  6. 『玩转Streamlit』--页面布局

    一个优秀的数据应用不仅仅是功能的强大,更在于其用户体验的打造. 而良好的页面布局,作为用户体验的重要组成部分,不仅能够提升信息的可读性,还能引导用户高效地完成操作. 反之,混乱的布局会让人感到困惑和挫 ...

  7. 🎈Fluent Editor 富文本开源2个月的总结:增加格式刷、截屏、TypeScript 类型声明等新特性

    你好,我是 Kagol,个人公众号:前端开源星球. Fluent Editor 是一个基于 Quill 2.0 的富文本编辑器,在 Quill 基础上扩展了丰富的模块和格式,框架无关. 功能强大.开箱 ...

  8. 2款使用.NET开发的数据库系统

    前言 今天大姚给大家分享2款使用.NET开发且开源的数据库系统. Garnet Garnet是一款由微软研究院基于.NET开源的高性能.跨平台的分布式缓存存储数据库,该项目提供强大的性能(吞吐量和延迟 ...

  9. 3.20 什么是环境变量,Linux环境变量有哪些?

    变量是计算机系统用于保存可变值的数据类型,我们可以直接通过变量名称来提取到对应的变量值.在 Linux 系统中,环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录(HOME).邮件存放 ...

  10. P4253 SCOI2015 小凸玩密室

    P4253 SCOI2015 小凸玩密室 一道紫色的 dp. 思路 首先读题: 要保证任意时刻所有被点亮的灯泡必须连通 在点亮一个灯泡后必须先点亮其子树所有灯泡才能点亮其他灯泡 考虑设 \(g[u][ ...