Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2021-3156-Baron-Samedit — CVE-2021-3156 sudo 堆缓冲区溢出漏洞的利用与缓解分析 | Kitploit
工具/GitHubGitHub/kranti08/cve-2021-3156-baron-samedit
权限提升漏洞分析漏洞利用渗透测试学习与教育二进制利用实验室与实践
GitHubkranti08/cve-2021-3156-baron-samedit

CVE-2021-3156-Baron-Samedit

CVE-2021-3156 sudo 堆缓冲区溢出漏洞的利用与缓解分析

查看仓库
113个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2021-3156 – Baron Samedit

sudo 中的堆缓冲区溢出 | 利用与缓解分析

CVE Severity OS Status Language

概述

CVE-2021-3156,即 Baron Samedit,是 sudo 程序中的一个堆缓冲区溢出漏洞。它允许任何无特权的本地用户无需身份验证即可在存在漏洞的系统上获得 root 权限。

本项目记录了该漏洞的完整利用与缓解过程,是卢森堡大学 软件漏洞:利用与缓解 课程的一部分。


漏洞详情

属性详情
CVE IDCVE-2021-3156
别名Baron Samedit
类型堆缓冲区溢出
组件sudo(sudoedit 模式)
影响本地权限提升至 Root
受影响版本sudo ≤ 1.8.31(Ubuntu)、≤ 1.9.5p1(其他系统)
修复版本sudo 1.8.31-1ubuntu1.5
CVSS 评分7.8(高危)

环境与配置

OS:           Ubuntu 20.04.1
sudo version: 1.8.31-1ubuntu1 (vulnerable)
libc version: 2.31
User:         Non-root account

要复现漏洞状态:

sudo apt install sudo=1.8.31-1ubuntu1

漏洞原理

当 sudo 以 sudoedit 模式 执行,并带有经过精心构造的命令行参数导致内部堆缓冲区溢出时,便会触发该漏洞。

该漏洞利用通过内存分析精心调优了四个关键参数:

参数大小用途
A56 字节溢出初始缓冲区
B54 字节溢出第二个堆块
Nulls63 字节构造内存对齐
LC_ALL212 字节通过环境变量控制堆布局

漏洞利用结构

exploit_launcher.c — 主攻击程序

通过以下 5 个步骤触发漏洞:

  1. 目标设定 — 针对 Ubuntu 20.04.1、sudo 1.8.31 和 libc-2.31 硬编码计算的值
  2. 参数构造 — 创建带有反斜杠的精心构造的命令行参数以触发溢出
  3. 环境设置 — 用反斜杠和一个特殊字符串填充环境,以加载恶意库
  4. 区域设置变量 — 构造 LC_ALL 以控制堆内存布局
  5. 执行 — 使用恶意参数和环境调用 sudoedit

exploit_payload.c — 恶意负载

漏洞利用成功时,通过 _init 函数自动执行:

  1. 将所有用户/组 ID 设置为 0(root)
  2. 生成一个 root shell

漏洞利用结果

$ make
$ ./exploit_it

[!] CVE-2021-3156 Exploit
[+] Target: Ubuntu 20.04.1 (sudo 1.8.31, libc-2.31)
[+] Parameters: A=56, B=54, Nulls=63, LC_ALL=212
[+] Launching exploit...
[+] Exploit successful. Root privileges obtained.
# whoami
root

✅ 成功从无特权用户提升至 root。


缓解措施与补丁验证

将 sudo 升级到已修复版本:

sudo apt install sudo=1.8.31-1ubuntu1.5

升级后,相同的漏洞利用 无法执行,root 权限未被授予——证实补丁有效。

关键要点:保持 sudo 等系统工具更新对于防止权限提升攻击至关重要。


文件

├── exploit_launcher.c    # Main exploit triggering the heap overflow
├── exploit_payload.c     # Malicious payload spawning root shell
├── libnss_X/             # Malicious library loaded during exploitation
└── Makefile              # Build configuration

构建与运行

# Build
make

# Run exploit
./exploit_it

参考资料

  • Qualys 安全公告
  • NVD – CVE-2021-3156

下载工具