linux sudo root 权限绕过漏洞(CVE-2019-14287)

  • 内容
  • 相关

漏洞介绍

WebLogic是Oracle公司出品的基于JavaEE架构的中间件,用于开发、集成、部署和管理大型分布式 Web 应用、网络应用和数据库应用。

2019年10月14日,Sudo官方发布了Sudo 1.8.28版本,其中包含sudo root权限绕过漏洞的补丁修复。

漏洞编号是CVE-2019-14287,当sudo配置为允许用户以任意方式运行命令时用户通过Runas规范中的ALL关键字,可以通过指定用户ID -1或4294967295以root用户身份运行命令。

具有足够sudo权限的用户可以使用它来运行Runas规范明确禁止使用的root命令,以这种方式运行的命令的日志条目将列出目标用户为4294967295而不是root。

利用条件

1.sudo -v < 1.8.28
2.知道当前用户的密码
3.当前用户存在于sudo权限列表

漏洞分析

udo程序是为了让用户使用自己的登录密码来以其他用户身份执行命令,无需输入密码,有趣的是,攻击者可以利用此漏洞,只需指定用户ID“ -1”或“ 4294967295”即可以root身份运行命令。

因为将用户ID转换为用户名的函数将-1或其无符号等效4294967295误认为是0,该值始终是root用户的用户ID

1.png

利用漏洞要求用户具有 sudo 权限,从而以任意用户 ID 运行命令。一般而言,用户的 sudoers 条目在 Runas 规范中具有特殊值 ALL。
Sudo 支持在 sudoers 策略允许的情况下,以用户指定的名称或用户 ID 运行命令。
例如,如下 sudoers 条目允许 id 命令以任意用户身份运行,因为它包含 Runas 规范中的关键字ALL。

myhost alice = (ALL) /usr/bin/id
用户不仅能够以其它合法用户身份运行该 id 命令,还能使用 #uid 语法以任意用户 ID 运行该命令,例如:



sudo -u#12345 id -u
将返回12345,然而,sudo 在运行命令前用户修改用户 ID 的setresuid(2) 和 setreuid(2)系统调用将特殊对待用户 ID为-1(或其未签名的等同值 4294967295)而且并不会修改该值的用户 ID。因此,
sudo -u#-1 id -u
或者
sudo -u#4294967295 id -u
会返回 0。这是因为 sudo命令本身就已经以用户 ID 为0 运行,
因此当 sudo 试图将用户 ID 修改成 -1时,不会发生任何变化。
这就导致 sudo 日志条目将该命令报告为以用户 ID 为 4294967295而非 root (或者用户ID为 0)运行命令。此外,由于通过–u 选项指定的用户 ID 并不存在于密码数据库中,因此不会运行任何 PAM 会话模块。
如果sudoers 条目被写入允许用户以除 root 身份以外的用户身份运行命令,则可利用该 bug 绕过该限制。例如,给定如下 sudoers 条目:
myhost alice = /usr/bin/id

漏洞复现

查看sudo版本,确定sudo -v < 1.8.28

2.png

编辑/etc/sudoers文件,增加对test账户设置的权限


test  ALL=(ALL,!root) /bin/bash


3.png

保存后,退出。

4.png



参考信息


https://thehackernews.com/2019/10/linux-sudo-run-as-root-flaw.html

https://www.sudo.ws/alerts/minus_1_uid.htm

http://vulsee.com/archives/vulsee_2019/1015_9074.html

https://mp.weixin.qq.com/s/bb6Hd3JdYiLilqdP_-INtA


本文标签:

版权声明:若无特殊注明,本文皆为《颓废》原创,转载请保留文章出处。

收录状态:[百度已收录] | [360已收录] | [搜狗已收录]

本文链接:linux sudo root 权限绕过漏洞(CVE-2019-14287) - https://www.0dayhack.com/post-892.html

严重声明:本站内容来自于互联网,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规,黑客不是骇客,黑客维护网络安全

发表评论

电子邮件地址不会被公开。 必填项已用*标注