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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2023-4911-Lab — 基于 Docker 的 CVE-2023-4911 实验室,用于分析 glibc ld.so 缓冲区溢出并使用 GDB 调试开发本地权限提升漏洞利用。 | Kitploit
工具/GitHubGitHub/0xmoga/cve-2023-4911-lab
权限提升漏洞分析漏洞利用逆向工程调试器渗透测试学习与教育二进制利用实验室与实践
GitHub0xmoga/cve-2023-4911-lab

CVE-2023-4911-Lab

基于 Docker 的 CVE-2023-4911 实验室,用于分析 glibc ld.so 缓冲区溢出并使用 GDB 调试开发本地权限提升漏洞利用。

155个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

CVE-2023-4911 "Looney Tunables" 分析环境

基于 Docker 的实践环境,用于分析 GNU C Library (glibc) 动态加载器中的缓冲区溢出漏洞(本地权限提升)并开发利用代码。


CVE 信息

项目内容
CVE 编号CVE-2023-4911
别名Looney Tunables
影响对象GNU C Library (glibc) 2.34 ~ 2.38
受影响版本Ubuntu 22.04 — libc6 2.35-0ubuntu3.3 及以下
补丁版本libc6 2.35-0ubuntu3.4 (USN-6404-1, 2023-10-04)
类型Buffer Overflow in ld.so
影响本地权限提升(普通用户 → root)
发现者Qualys Security Research Team

漏洞机制

glibc 动态加载器 (ld.so) 在程序执行时解析 GLIBC_TUNABLES 环境变量。
当执行 SUID 二进制 时,会设置 __libc_enable_secure = 1,ld.so 进入使该环境变量失效(nullify)的代码路径。
在此过程中,对于 tunable1=tunable2=value 格式的输入,由于长度计算错误,导致缓冲区溢出。

普通二进制:    __libc_enable_secure = 0  →  不进入 nullify 代码  →  无漏洞
SUID 二进制:   __libc_enable_secure = 1  →  进入 nullify 代码   →  缓冲区溢出

利用流程:

GLIBC_TUNABLES 溢出
        ↓
覆盖 ld.so BSS 域中的 link_map 指针
        ↓
将库搜索路径篡改为 evil_lib/ 路径
        ↓
加载 evil.so → 自动执行构造函数
        ↓
setuid(0) + execve("/bin/bash") → 获取 root shell

环境构建目标与方向

本环境的设计目标超越简单的 PoC 执行,旨在直接分析漏洞原理并开发利用代码。

  • 重现存在漏洞的 glibc 版本(2.35-0ubuntu3.3)实际运行环境
  • 提供可同时分析 ld.so 源代码与可执行文件的环境
  • 支持通过 GDB / gef / gdbserver 进行动态分析
  • 直接实践普通用户(researcher)→ root 权限提升场景
  • 通过 Docker 完全隔离,确保团队成员从相同环境开始分析

项目结构

CVE-2023-4911/
├── Dockerfile                  # 漏洞环境镜像定义(多阶段构建)
├── run.sh                      # Docker 构建/运行管理脚本
├── check_environment.sh        # 容器启动时自动验证环境
├── poc/
│   ├── exploit.py              # 基本 PoC — 验证崩溃(SIGSEGV)
│   ├── exploit_lpe.py          # LPE 利用 — GDB 分析后完成
│   └── evil_lib/
│       ├── evil.c              # 执行 root shell 的恶意共享库
│       └── Makefile
└── test_targets/
    ├── test_suid.c             # SUID 测试二进制源码
    └── test_heap.c             # 堆分配测试二进制源码

环境要求

  • Docker
  • Linux 或 WSL2 (Windows)

使用方法

1. 构建镜像并运行容器

./run.sh build && ./run.sh run

2. 输入 sudo 密码

容器启动时会要求输入 sudo 密码。

密码: password

3. 验证漏洞

# 检查是否触发 SIGSEGV
python3 /workspace/poc/exploit.py --check-only

# 手动触发
GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=AAAA \
  /workspace/test_targets/test_suid

4. GDB 分析

# 在容器内直接分析
gdb -q /workspace/test_targets/test_suid

# 远程调试 (gdbserver)
# 容器内
gdbserver :1234 /workspace/test_targets/test_suid

# 本地主机
gdb
(gdb) target remote localhost:1234

5. 执行 LPE 利用

使用 GDB 分析 OVERFLOW_OFFSET 和 TARGET_ADDR 后,更新 exploit_lpe.py 顶部的值并执行。

python3 /workspace/poc/exploit_lpe.py

run.sh 选项

命令说明
./run.sh build构建 Docker 镜像
./run.sh run以交互模式运行容器
./run.sh analysis运行分析模式
./run.sh test快速验证漏洞
./run.sh clean清理镜像和容器

分析环境信息

项目内容
基础镜像ubuntu:jammy-20230916(补丁之前)
glibc 版本2.35-0ubuntu3.3(存在漏洞)
ld.so 版本2.35-0ubuntu3.3(存在漏洞)
分析账户researcher / password
glibc 源码/workspace/glibc-source (2.35)
主要端口1234 (gdbserver)
容器选项--privileged、--pid=host

分析要点

静态分析

# 漏洞函数位置
/workspace/glibc-source/elf/dl-tunables.c

# 主要函数
__tunables_init()   # 入口点
parse_tunables()    # 溢出发生点
tunables_strdup()   # 缓冲区分配

动态分析

# 使用 strace 跟踪系统调用
strace -e trace=mmap GLIBC_TUNABLES="..." /workspace/test_targets/test_suid

# 使用 GDB 分析 __tunables_init
gdb /workspace/test_targets/test_suid
(gdb) break __tunables_init
(gdb) set environment GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=AAAA
(gdb) run

注意事项

本环境仅用于教育和安全研究目的。

  • 本环境旨在学习漏洞和开发利用研究
  • 切勿在真实运行系统或未经授权的目标上使用
  • 容器以 --privileged 模式运行,请仅在隔离环境中使用
  • 因滥用本仓库代码所产生的一切法律责任由使用者自行承担

参考资源

  • Qualys Security Advisory
  • glibc 官方仓库
  • Ubuntu Security Notice USN-6404-1
下载工具