si1ent

CVE-2021-3156

2021-02-02

概述

sudo 用来执行需要提升权限(通常是作为 root 用户)的命令,主要作用于普通账户需要root权限时所使用,同时如ubuntu下root账户默认密码未知,可使用sudo -iroot账户重置密码即可。

环境搭建

Ubuntu 18.04.5

Sudo version 1.8.21p2

漏洞iso种子

漏洞实战分类

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Ubuntu 16.04.5 kernel 4.15.0-29-generic
Ubuntu 18.04.1 kernel 4.15.0-20-generic
Ubuntu 19.04 kernel 5.0.0-15-generic
Ubuntu Mate 18.04.2 kernel 4.18.0-15-generic
Linux Mint 19 kernel 4.15.0-20-generic
Xubuntu 16.04.4 kernel 4.13.0-36-generic
ElementaryOS 0.4.1 4.8.0-52-generic
Backbox 6 kernel 4.18.0-21-generic
Parrot OS 4.5.1 kernel 4.19.0-
parrot1-13t-amd64
Kali kernel 4.19.0-kali5-amd64
Redcore 1806 (LXQT) kernel 4.16.16-
redcoreMX 18.3 kernel 4.19.37-2~mx17+1
RHEL 8.0 kernel 4.18.0-80.el8.x86_64
Debian 9.4.0 kernel 4.9.0-6-amd64
Debian 10.0.0 kernel 4.19.0-5-amd64
Devuan 2.0.0 kernel 4.9.0-6-amd64
SparkyLinux 5.8 kernel 4.19.0-5-amd64
Fedora Workstation 30 kernel 5.0.9-301.fc30.x86_64
Manjaro 18.0.3 kernel 4.19.23-1-
MANJAROMageia 6 kernel 4.9.35-desktop-1.mga6
Antergos 18.7 kernel 4.17.6-1-ARCH
漏洞原理

使用-s或 -i标志运行sudoedit时,实际上并未进行转义,从而可能导致缓冲区溢出。

漏洞条件

对应版本的sudo

漏洞检测

1、手工检测

普通账户下执行以下命令

1
2
si1ent@si1ent:~$ sudoedit -s /
sudoedit: /: not a regular file

image-20210202115016765

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 …

image-20210202135032542

以上不存在漏洞

2、EXP检测

CVE-2021-3156

1
ubuntu不具备make、gcc环境程序须编译.提前安装处理;否则会出现报错.

3、程序编译

1
admin1@admin:~/CVE-2021-3156$ make

image-20210202133925293

4、生成对应exp程序

1
sudo-hax-me-a-sandwich

image-20210202134017109

5、执行exp需要选择目标服务类型

1
admin1@admin:~/CVE-2021-3156$ ./sudo-hax-me-a-sandwich 0

image-20210202134140799

6、如以上所示

获取root权限

漏洞修复

官方修复

1
https://www.sudo.ws/download.html

ubuntu

1
2
sudo apt-get update
sudo apt-get install sudo

centos

1
yum update sudo

更新后执行以上exp

image-20210202134924941

如上漏洞已修复

扩展

ubuntu设置root密码

1
2
3
4
5
6
7
admin1@admin:~/CVE-2021-3156$ sudo -i
root@admin:~# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@admin:~# exit
logout

Referer

1
2
3
https://www.sudo.ws/alerts/unescape_overflow.html
https://access.redhat.com/security/vulnerabilities/RHSB-2021-002
https://www.sudo.ws/download.html
Tags: CVE
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章