linux 普通用户增加sudo_CVE-2019-14287:利用sudo提权

0x00 简介

sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。

0x01 漏洞概述

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

0x02 影响版本

Sudo版本 < 1.8.28

0x03 环境搭建

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

本人使用的环境为sudo 1.8.23

da292c0289c4709c76e17e495c564fd9.png

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

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

test    ALL=(ALL,!root) ALL

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

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

0x04 漏洞利用

切换到test用户:$su test

执行 $sudo id 失败

执行 $sudo -u#111 id 成功

5b32f68c9877bff4b54e76f09d8ce589.png

所以我们就可以直接是使用sudo -u#id指定用户 id 去执行命令,由于可以指定id,所以可以使用-u#-1或者-u#4294967295绕过限制,从而以root身份去执行任意代码:

34eb274f68f11f991d4bc14ac4cf8655.png

这是因为 sudo 命令本身就已经以用户 ID 为0 运行,因此当 sudo 试图将用户 ID 修改成 -1时,不会发生任何变化。这就导致 sudo 日志条目将该命令报告为以用户 ID 为 4294967295而非 root (或者用户ID为 0)运行命令。(来自代码卫士)

0x05 修复方式

更新至 Sudo 1.8.28 版本

5283b5fa2f1fcb5c0ed5e9d142f6cde8.png
TimeLine Sec团队公众号
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值