概述
sudo 用来执行需要提升权限(通常是作为 root 用户)的命令,主要作用于普通账户需要root权限时所使用,同时如ubuntu下root账户默认密码未知,可使用sudo -i
对root
账户重置密码即可。
环境搭建
Ubuntu 18.04.5
Sudo version 1.8.21p2
漏洞实战分类
CVE-2021-3156
漏洞描述
1月26日,Sudo发布安全通告,修复了一个类Unix操作系统在命令参数中转义反斜杠时存在基于堆的缓冲区溢出漏洞。当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.5p1s
不受影响
Sudo =>1.9.5p2
成功主机
1 | Ubuntu 16.04.5 kernel 4.15.0-29-generic |
漏洞原理
使用-s或 -i标志运行sudoedit时,实际上并未进行转义,从而可能导致缓冲区溢出。
漏洞条件
对应版本的sudo
漏洞检测
1、手工检测
普通账户下执行以下命令
1 | si1ent@si1ent:~$ sudoedit -s / |
1.1、不存在漏洞
1 | admin1@admin:~/CVE-2021-3156$ sudoedit -s / |
usage: sudoedit [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] file …
2、EXP检测
1 | ubuntu不具备make、gcc环境程序须编译.提前安装处理;否则会出现报错. |
3、程序编译
1 | admin1@admin:~/CVE-2021-3156$ make |
4、生成对应exp程序
1 | sudo-hax-me-a-sandwich |
5、执行exp需要选择目标服务类型
1 | admin1@admin:~/CVE-2021-3156$ ./sudo-hax-me-a-sandwich 0 |
6、如以上所示
获取root权限
漏洞修复
官方修复
1 | https://www.sudo.ws/download.html |
ubuntu
1 | sudo apt-get update |
centos
1 | yum update sudo |
更新后执行以上exp
扩展
ubuntu设置root密码
1 | admin1@admin:~/CVE-2021-3156$ sudo -i |
Referer
1 | https://www.sudo.ws/alerts/unescape_overflow.html |
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
扫描二维码,分享此文章