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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2017-7184 — 概念验证本地权限提升利用,针对CVE-2017-7184(Linux内核XFRM netlink栈溢出)。演示了命名空间滥用和内核ROP,以无需sudo获取root权限。 | Kitploit
工具/GitHubGitHub/grish-pradhan/cve-2017-7184
权限提升漏洞分析漏洞利用学习与教育二进制利用
GitHubgrish-pradhan/cve-2017-7184

CVE-2017-7184

概念验证本地权限提升利用,针对CVE-2017-7184(Linux内核XFRM netlink栈溢出)。演示了命名空间滥用和内核ROP,以无需sudo获取root权限。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2017-7184 – Linux 内核 XFRM 权限提升(无需 sudo)

概述

本仓库包含一个针对 CVE-2017-7184 的 本地权限提升概念验证攻击程序,该漏洞是 Linux 内核中 XFRM(IPsec)netlink 子系统的一个安全漏洞。

该攻击程序演示了无特权用户如何通过以下步骤获取真正 root(UID 0):

  1. 创建一个无特权的用户 + 网络命名空间

  2. 在命名空间内获取 CAP_NET_ADMIN

  3. 触发 XFRM netlink 处理中的内核栈溢出

  4. 执行内核 ROP 链以调用:

    • prepare_kernel_cred(NULL)
    • commit_creds()
  5. 安全返回用户空间并拥有完整的 root 权限

不需要 sudo。


漏洞详情

字段值
CVECVE-2017-7184
组件Linux 内核 – XFRM Netlink
漏洞类型内核栈溢出
影响本地权限提升
攻击向量本地(无特权用户)
攻击类别命名空间滥用 + ROP
首次受影响Linux 内核 ≤ 4.8
修复版本2017 年发布的内核补丁

利用策略(高层概览)

  1. 无特权用户命名空间

    • 使用 unshare(CLONE_NEWUSER | CLONE_NEWNET)
    • 将当前用户映射为命名空间内的 UID 0
    • 无需 sudo 授权 CAP_NET_ADMIN
  2. XFRM Netlink 滥用

    • 创建 NETLINK_XFRM 套接字
    • 发送格式错误的 XFRM_MSG_NEWSA 消息
    • 通过过大的属性触发内核栈溢出
  3. 内核 ROP 执行

    • 覆写内核栈
    • 执行受控的 ROP 链
    • 在内核上下文中提升凭证
  4. 返回用户空间

    • 使用 swapgs; iretq
    • 生成交互式 root shell

要求

  • 存在漏洞的 Linux 内核(测试环境为 4.8.0-36-generic)
  • unprivileged_userns_clone = 1
  • 可用内核符号 或 已知偏移量
  • 支持 pthread 的 gcc

检查命名空间支持:

root@kitploit:~
cat /proc/sys/kernel/unprivileged_userns_clone

预期输出:

root@kitploit:~
1

编译

root@kitploit:~
gcc exploit.c -o exploit -pthread

执行

root@kitploit:~
./exploit

不要使用 sudo。

如果成功,你将获得一个真正的 root shell:

root@kitploit:~
uid=0(root) gid=0(root) groups=0(root)

内核地址解析

该攻击程序尝试:

  1. 从 /proc/kallsyms 泄露符号

  2. 如果受限,则回退到硬编码偏移量,用于:

    • commit_creds
    • prepare_kernel_cred
    • 内核基址

⚠️ ROP 小工具和偏移量是内核版本相关的。 你需要针对其他编译版本进行调整。


预期结果

完全成功利用

  • UID = 0
  • GID = 0
  • 交互式 root shell

部分成功(仍存在漏洞)

  • 命名空间创建成功
  • XFRM 套接字创建成功
  • 溢出 payload 已发送
  • 内核崩溃或未提升权限

这仍然证实系统存在漏洞。


局限性

  • 硬编码的 ROP 小工具(内核特定)
  • 除了 kallsyms 外,没有 KASLR 绕过
  • 对加固内核没有 SMEP/SMAP 绕过
  • 在现代内核上不可靠

缓解措施

  • 更新内核到已修补版本
  • 禁用无特权用户命名空间:
root@kitploit:~
sysctl -w kernel.unprivileged_userns_clone=0
  • 启用 KASLR、SMEP、SMAP
  • 限制 netlink 能力

免责声明

此代码仅用于教育和安全研究目的。

  • 不要在你未拥有或未获授权测试的系统上使用
  • 作者对滥用或损坏不承担任何责任
  • 旨在用于学习内核利用技术

参考

  • CVE-2017-7184
  • Linux 内核 XFRM 子系统
  • 用户命名空间权限提升
  • 内核 ROP 与 commit_creds 利用
下载工具