本文作者:violin(Timeline Sec核心成员)
本文共847字,阅读大约需要2分钟
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
由于需要特定的配置,所以首先修改配置文件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 漏洞利用
切换到test用户:$su test
执行 $sudo id 失败
执行 $sudo -u#111 id 成功
所以我们就可以直接是使用 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 版本
参考链接:
https://mp.weixin.qq.com/s/FV1V_CguP1PQE68yJnEkvQ
https://www.exploit-db.com/exploits/47502
本文分享自 Timeline Sec 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!